trunk/hash/psx.xml
| r242231 | r242232 | |
| 1119 | 1119 | </part> |
| 1120 | 1120 | </software> |
| 1121 | 1121 | |
| 1122 | <!-- boot ok --> |
| 1123 | <software name="akagawaj" supported="no"> |
| 1124 | <description>Akagawa Jirou - Yasoukyoku 2 (Japan)</description> |
| 1125 | <year>2001</year> |
| 1126 | <publisher>Victor</publisher> |
| 1127 | <info name="alt_title" value="夜想曲2"/> |
| 1128 | <info name="serial" value="SLPS-03213" /> |
| 1129 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 1130 | <part name="cdrom" interface="psx_cdrom"> |
| 1131 | <diskarea name="cdrom"> |
| 1132 | <disk name="akagawa jirou - yasoukyoku 2 (japan) [slps-03213]" sha1="2469c7c6d8d69835aae534b91c59b03aa4d2dd96"/> |
| 1133 | </diskarea> |
| 1134 | </part> |
| 1135 | </software> |
| 1136 | |
| 1122 | 1137 | <software name="alabamaj" supported="no"> |
| 1123 | 1138 | <description>Pop de Cute na Shinri Test - Alabama (Japan)</description> |
| 1124 | 1139 | <year>2000</year> |
| r242231 | r242232 | |
| 2797 | 2812 | <software name="chikichi" supported="no"> |
| 2798 | 2813 | <description>Chiki Chiki Machine Mou Race - Wacky Races (Japan)</description> |
| 2799 | 2814 | <year>2001</year> |
| 2800 | | <publisher>Hudson / Infogrames</publisher> |
| 2815 | <publisher>Hudson/Infogrames</publisher> |
| 2801 | 2816 | <info name="alt_title" value="ドタバタ爆笑レースゲーム チキチキマシン猛レース"/> |
| 2802 | 2817 | <info name="serial" value="SLPM-86845" /> |
| 2803 | 2818 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| r242231 | r242232 | |
| 8875 | 8890 | </part> |
| 8876 | 8891 | </software> |
| 8877 | 8892 | |
| 8893 | <software name="nankuro" supported="no"> |
| 8894 | <description>Nankuro (SuperLite 1500 Series) (Japan)</description> |
| 8895 | <year>1999</year> |
| 8896 | <publisher>Success</publisher> |
| 8897 | <info name="alt_title" value="SuperLite1500 EXTRAシリーズ Vol.2 ナンクロ"/> |
| 8898 | <info name="serial" value="SLPS-02067" /> |
| 8899 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 8900 | <part name="cdrom" interface="psx_cdrom"> |
| 8901 | <diskarea name="cdrom"> |
| 8902 | <disk name="superlite 1500 extra series vol.02 - nankuro (japan) [slps-02067]" sha1="8f17ac2169a351af67437fd79cfd66a13e51062e"/> |
| 8903 | </diskarea> |
| 8904 | </part> |
| 8905 | </software> |
| 8906 | |
| 8878 | 8907 | <!-- missing Disc 2? --> |
| 8879 | 8908 | <software name="natsuiro" supported="no"> |
| 8880 | 8909 | <description>Natsuiro Kenjutsu Komachi (Limited Edition) (Japan) (Disc 1 Only)</description> |
| r242231 | r242232 | |
| 9478 | 9507 | |
| 9479 | 9508 | <software name="pacapaca" supported="no"> |
| 9480 | 9509 | <description>Pacapaca Passion (Japan)</description> |
| 9481 | | <year>199?</year> |
| 9482 | | <publisher><unknown></publisher> |
| 9510 | <year>1999</year> |
| 9511 | <publisher>Produce!</publisher> |
| 9512 | <info name="alt_title" value="パカパカパッション"/> |
| 9483 | 9513 | <info name="serial" value="SLPS-02122" /> |
| 9484 | 9514 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9485 | 9515 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9491 | 9521 | |
| 9492 | 9522 | <software name="pacapac2" supported="no"> |
| 9493 | 9523 | <description>Pacapaca Passion 2 (Japan)</description> |
| 9494 | | <year>199?</year> |
| 9495 | | <publisher><unknown></publisher> |
| 9524 | <year>2000</year> |
| 9525 | <publisher>Produce!</publisher> |
| 9526 | <info name="alt_title" value="パカパカパッション2"/> |
| 9496 | 9527 | <info name="serial" value="SLPS-02720" /> |
| 9497 | 9528 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9498 | 9529 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9504 | 9535 | |
| 9505 | 9536 | <software name="pachipac" supported="no"> |
| 9506 | 9537 | <description>Pachi Pachi Saga (Japan)</description> |
| 9507 | | <year>199?</year> |
| 9508 | | <publisher><unknown></publisher> |
| 9538 | <year>1996</year> |
| 9539 | <publisher>TEN Institute</publisher> |
| 9540 | <info name="alt_title" value="パチパチサーガ"/> |
| 9509 | 9541 | <info name="serial" value="SLPS-00288" /> |
| 9510 | 9542 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9511 | 9543 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9516 | 9548 | </software> |
| 9517 | 9549 | |
| 9518 | 9550 | <software name="psao5" supported="no"> |
| 9519 | | <description>Pachi-Slot Aruze Oukoku 5 (Japan)</description> |
| 9520 | | <year>199?</year> |
| 9521 | | <publisher><unknown></publisher> |
| 9551 | <description>Pachi-Slot Aruze Oukoku 5 - Slotmachine Simulator (Japan)</description> |
| 9552 | <year>2001</year> |
| 9553 | <publisher>Aruze</publisher> |
| 9554 | <info name="alt_title" value="パチスロ アルゼ王国5"/> |
| 9522 | 9555 | <info name="serial" value="SLPS-03280" /> |
| 9523 | 9556 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9524 | 9557 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9530 | 9563 | |
| 9531 | 9564 | <software name="pstbk" supported="no"> |
| 9532 | 9565 | <description>Pachi-Slot Teiou - Battle Knight & Atlantis Doom (Japan)</description> |
| 9533 | | <year>199?</year> |
| 9534 | | <publisher><unknown></publisher> |
| 9566 | <year>2000</year> |
| 9567 | <publisher>Media</publisher> |
| 9568 | <info name="alt_title" value="パチスロ帝王〜バトルナイト・アトランチスドーム〜"/> |
| 9535 | 9569 | <info name="serial" value="SLPS-03108" /> |
| 9536 | 9570 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9537 | 9571 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9542 | 9576 | </software> |
| 9543 | 9577 | |
| 9544 | 9578 | <software name="pststwis" supported="no"> |
| 9545 | | <description>Pachi-Slot Teiou - Shimauta-30 - Twiste - Nangoku Monogarari-30 (Japan)</description> |
| 9546 | | <year>199?</year> |
| 9547 | | <publisher><unknown></publisher> |
| 9579 | <description>Pachi-Slot Teiou - Twist - Shimauta 30 - Nankoku Monogatari (Japan)</description> |
| 9580 | <year>2002</year> |
| 9581 | <publisher>Media</publisher> |
| 9582 | <info name="alt_title" value="パチスロ帝王〜島唄-30・ツイスト・南国物語-30〜"/> |
| 9548 | 9583 | <info name="serial" value="SLPS-03442" /> |
| 9549 | 9584 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9550 | 9585 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9555 | 9590 | </software> |
| 9556 | 9591 | |
| 9557 | 9592 | <software name="pst2" supported="no"> |
| 9558 | | <description>Pachi-Slot Teiou 2 (Japan)</description> |
| 9559 | | <year>199?</year> |
| 9560 | | <publisher><unknown></publisher> |
| 9593 | <description>Pachi-Slot Teiou 2 - Kagetsu - 2 Pair - Beaver X (Japan)</description> |
| 9594 | <year>1999</year> |
| 9595 | <publisher>Mecko</publisher> |
| 9596 | <info name="alt_title" value="パチスロ帝王II 花月・ツーペア・マイマイ"/> |
| 9561 | 9597 | <info name="serial" value="SLPS-02217" /> |
| 9562 | 9598 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9563 | 9599 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9568 | 9604 | </software> |
| 9569 | 9605 | |
| 9570 | 9606 | <software name="pst3" supported="no"> |
| 9571 | | <description>Pachi-Slot Teiou 3 (Japan)</description> |
| 9572 | | <year>199?</year> |
| 9573 | | <publisher><unknown></publisher> |
| 9607 | <description>Pachi-Slot Teiou 3 - Sea Master - Epsilon R - Wai Wai Pulsa (Japan)</description> |
| 9608 | <year>1999</year> |
| 9609 | <publisher>Media</publisher> |
| 9610 | <info name="alt_title" value="パチスロ帝王3"/> |
| 9574 | 9611 | <info name="serial" value="SLPS-02413" /> |
| 9575 | 9612 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9576 | 9613 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9581 | 9618 | </software> |
| 9582 | 9619 | |
| 9583 | 9620 | <software name="pst6" supported="no"> |
| 9584 | | <description>Pachi-Slot Teiou 6 (Japan)</description> |
| 9585 | | <year>199?</year> |
| 9586 | | <publisher><unknown></publisher> |
| 9621 | <description> Pachi-Slot Teiou 6 - Kung Fu Lady - BangBang - Prelude 2 (Japan)</description> |
| 9622 | <year>2000</year> |
| 9623 | <publisher>Media</publisher> |
| 9624 | <info name="alt_title" value="パチスロ帝王6"/> |
| 9587 | 9625 | <info name="serial" value="SLPS-02657" /> |
| 9588 | 9626 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9589 | 9627 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9595 | 9633 | |
| 9596 | 9634 | <software name="pst7" supported="no"> |
| 9597 | 9635 | <description>Pachi-Slot Teiou 7 (Japan)</description> |
| 9598 | | <year>199?</year> |
| 9599 | | <publisher><unknown></publisher> |
| 9636 | <year>2000</year> |
| 9637 | <publisher>Media</publisher> |
| 9638 | <info name="alt_title" value="パチスロ帝王7 メーカー推奨マニュアル1 〜ビートザドラゴン2・ルパン三世・ホッドロッドクィーン〜"/> |
| 9600 | 9639 | <info name="serial" value="SLPS-02991" /> |
| 9601 | 9640 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9602 | 9641 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9607 | 9646 | </software> |
| 9608 | 9647 | |
| 9609 | 9648 | <software name="pstmsm3" supported="no"> |
| 9610 | | <description>Pachi-Slot Teiou Maker Suishou Manual 3 - I'm Angel - White 2 & Blue 2 (Japan)</description> |
| 9611 | | <year>199?</year> |
| 9612 | | <publisher><unknown></publisher> |
| 9649 | <description> Pachi-Slot Teiou - Maker Suishou Manual 3 - I'm Angel White 2 & Blue 2 (Japan)</description> |
| 9650 | <year>2001</year> |
| 9651 | <publisher>Media</publisher> |
| 9652 | <info name="alt_title" value="パチスロ帝王 メーカー推奨マニュアル3 アイムエンジェル〜ホワイト2&ブルー2〜"/> |
| 9613 | 9653 | <info name="serial" value="SLPS-03130" /> |
| 9614 | 9654 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9615 | 9655 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9620 | 9660 | </software> |
| 9621 | 9661 | |
| 9622 | 9662 | <software name="pstmsm5" supported="no"> |
| 9623 | | <description>Pachi-Slot Teiou Maker Suishou Manual 5 - Race Queen 2 - Tomcat (Japan)</description> |
| 9624 | | <year>199?</year> |
| 9625 | | <publisher><unknown></publisher> |
| 9663 | <description>Pachi-Slot Teiou - Maker Suishou Manual 5 - Race Queen 2 - Tomcat (Japan)</description> |
| 9664 | <year>2001</year> |
| 9665 | <publisher>Media</publisher> |
| 9666 | <info name="alt_title" value="パチスロ帝王 メーカー推奨マニュアル5 〜レースクイーン2・トムキャット〜"/> |
| 9626 | 9667 | <info name="serial" value="SLPS-03245" /> |
| 9627 | 9668 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9628 | 9669 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9634 | 9675 | |
| 9635 | 9676 | <software name="pstmsm6" supported="no"> |
| 9636 | 9677 | <description>Pachi-Slot Teiou Maker Suishou Manual 6 - Takarabune (Japan)</description> |
| 9637 | | <year>199?</year> |
| 9678 | <year>2001</year> |
| 9638 | 9679 | <publisher><unknown></publisher> |
| 9680 | <info name="alt_title" value="パチスロ帝王 メーカー推奨マニュアル6 宝船"/> |
| 9639 | 9681 | <info name="serial" value="SLPS-03329" /> |
| 9640 | 9682 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9641 | 9683 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9646 | 9688 | </software> |
| 9647 | 9689 | |
| 9648 | 9690 | <software name="pstmsm7" supported="no"> |
| 9649 | | <description>Pachi-Slot Teiou Maker Suishou Manual 7 - Trick Monster 2 (Japan)</description> |
| 9650 | | <year>199?</year> |
| 9651 | | <publisher><unknown></publisher> |
| 9691 | <description>Pachi-Slot Teiou - Maker Suishou Manual 7 - Trick Monster 2 (Japan)</description> |
| 9692 | <year>2002</year> |
| 9693 | <publisher>Media</publisher> |
| 9694 | <info name="alt_title" value="パチスロ帝王 メーカー推奨マニュアル7 トリックモンスター2"/> |
| 9652 | 9695 | <info name="serial" value="SLPS-03391" /> |
| 9653 | 9696 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9654 | 9697 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9660 | 9703 | |
| 9661 | 9704 | <software name="pstmda" supported="no"> |
| 9662 | 9705 | <description>Pachi-Slot Teiou Mini - Dr. A7 (Japan)</description> |
| 9663 | | <year>199?</year> |
| 9664 | | <publisher><unknown></publisher> |
| 9706 | <year>1999</year> |
| 9707 | <publisher>Media</publisher> |
| 9708 | <info name="alt_title" value="パチスロ帝王 Mini"/> |
| 9665 | 9709 | <info name="serial" value="SLPS-02114" /> |
| 9666 | 9710 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9667 | 9711 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9673 | 9717 | |
| 9674 | 9718 | <software name="palmtown" supported="no"> |
| 9675 | 9719 | <description>Palm Town (Japan)</description> |
| 9676 | | <year>199?</year> |
| 9677 | | <publisher><unknown></publisher> |
| 9720 | <year>1999</year> |
| 9721 | <publisher>MyCom</publisher> |
| 9722 | <info name="alt_title" value="ぱーむたうん"/> |
| 9678 | 9723 | <info name="serial" value="SLPS-01820" /> |
| 9679 | 9724 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9680 | 9725 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9686 | 9731 | |
| 9687 | 9732 | <software name="panzerba" supported="no"> |
| 9688 | 9733 | <description>Panzer Bandit (Japan)</description> |
| 9689 | | <year>199?</year> |
| 9690 | | <publisher><unknown></publisher> |
| 9734 | <year>1997</year> |
| 9735 | <publisher>Banpresto</publisher> |
| 9736 | <info name="alt_title" value="パンツァーバンディット"/> |
| 9691 | 9737 | <info name="serial" value="SLPS-00899" /> |
| 9692 | 9738 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9693 | 9739 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9699 | 9745 | |
| 9700 | 9746 | <software name="panzerfr" supported="no"> |
| 9701 | 9747 | <description>Panzer Front bis. (Japan)</description> |
| 9702 | | <year>199?</year> |
| 9703 | | <publisher><unknown></publisher> |
| 9748 | <year>2001</year> |
| 9749 | <publisher>Enterbrain</publisher> |
| 9750 | <info name="alt_title" value="PANZER FRONT bis."/> |
| 9704 | 9751 | <info name="serial" value="SLPS-03111" /> |
| 9705 | 9752 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9706 | 9753 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9712 | 9759 | |
| 9713 | 9760 | <software name="paranoia" supported="no"> |
| 9714 | 9761 | <description>Paranoia Scape (Japan)</description> |
| 9715 | | <year>199?</year> |
| 9716 | | <publisher><unknown></publisher> |
| 9762 | <year>1998</year> |
| 9763 | <publisher>Mathilda</publisher> |
| 9764 | <info name="alt_title" value="PARANOIA SCAPE"/> |
| 9717 | 9765 | <info name="serial" value="SLPS-01375" /> |
| 9718 | 9766 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9719 | 9767 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9725 | 9773 | |
| 9726 | 9774 | <software name="parlorpr" supported="no"> |
| 9727 | 9775 | <description>Parlor! Pro Jr. Collection (Japan)</description> |
| 9728 | | <year>199?</year> |
| 9729 | | <publisher><unknown></publisher> |
| 9776 | <year>2000</year> |
| 9777 | <publisher>Nihon Telenet</publisher> |
| 9778 | <info name="alt_title" value="Parlor!PRO Jr. Collection"/> |
| 9730 | 9779 | <info name="serial" value="SLPS-02781" /> |
| 9731 | 9780 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9732 | 9781 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9738 | 9787 | |
| 9739 | 9788 | <software name="parowars" supported="no"> |
| 9740 | 9789 | <description>Paro Wars (Japan)</description> |
| 9741 | | <year>199?</year> |
| 9742 | | <publisher><unknown></publisher> |
| 9790 | <year>1997</year> |
| 9791 | <publisher>Konami</publisher> |
| 9792 | <info name="alt_title" value="パロウォーズ"/> |
| 9743 | 9793 | <info name="serial" value="SLPM-86016" /> |
| 9744 | 9794 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9745 | 9795 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9751 | 9801 | |
| 9752 | 9802 | <software name="pdultram" supported="no"> |
| 9753 | 9803 | <description>PD Ultraman Invader (Japan)</description> |
| 9754 | | <year>199?</year> |
| 9755 | | <publisher><unknown></publisher> |
| 9804 | <year>1995</year> |
| 9805 | <publisher>Bandai</publisher> |
| 9806 | <info name="alt_title" value="PDウルトラマンインベーダー"/> |
| 9756 | 9807 | <info name="serial" value="SLPS-00195" /> |
| 9757 | 9808 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9758 | 9809 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9763 | 9814 | </software> |
| 9764 | 9815 | |
| 9765 | 9816 | <software name="pepsiman" supported="no"> |
| 9766 | | <description>Pepsiman The Running Hero (Japan)</description> |
| 9767 | | <year>199?</year> |
| 9768 | | <publisher><unknown></publisher> |
| 9817 | <description>Pepsiman (Japan)</description> |
| 9818 | <year>1999</year> |
| 9819 | <publisher>KID</publisher> |
| 9820 | <info name="alt_title" value="ペプシマン"/> |
| 9769 | 9821 | <info name="serial" value="SLPS-01762" /> |
| 9770 | 9822 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9771 | 9823 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9776 | 9828 | </software> |
| 9777 | 9829 | |
| 9778 | 9830 | <software name="perfectf" supported="no"> |
| 9779 | | <description>Perfect Fishing - Iso Zuri (Japan)</description> |
| 9780 | | <year>199?</year> |
| 9781 | | <publisher><unknown></publisher> |
| 9831 | <description>Perfect Fishing - Rock Fishing (Japan)</description> |
| 9832 | <year>2000</year> |
| 9833 | <publisher>Seta</publisher> |
| 9834 | <info name="alt_title" value="パーフェクトフィッシング(磯釣り)"/> |
| 9782 | 9835 | <info name="serial" value="SLPS-02410" /> |
| 9783 | 9836 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9784 | 9837 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9788 | 9841 | </part> |
| 9789 | 9842 | </software> |
| 9790 | 9843 | |
| 9791 | | <!-- missing GFX --> |
| 9792 | | <software name="petitcar" supported="no"> |
| 9793 | | <description>Petit Carat (Japan)</description> |
| 9794 | | <year>199?</year> |
| 9795 | | <publisher><unknown></publisher> |
| 9796 | | <info name="serial" value="SLPS-01435" /> |
| 9797 | | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9798 | | <part name="cdrom" interface="psx_cdrom"> |
| 9799 | | <diskarea name="cdrom"> |
| 9800 | | <disk name="petit carat (japan) [slps-01435]" sha1="d5a4844ddc86dbc9ac5a3b783a93e5dbf0c1bace"/> |
| 9801 | | </diskarea> |
| 9802 | | </part> |
| 9803 | | </software> |
| 9804 | | |
| 9805 | 9844 | <!-- boot OK --> |
| 9806 | | <software name="picnicex" supported="no"> |
| 9807 | | <description>Picnic! Excellent (Japan)</description> |
| 9808 | | <year>199?</year> |
| 9809 | | <publisher><unknown></publisher> |
| 9845 | <software name="pikinecx" supported="no"> |
| 9846 | <description>Pikinya! Excellent(Japan)</description> |
| 9847 | <year>1998</year> |
| 9848 | <publisher>ASCII</publisher> |
| 9849 | <info name="alt_title" value="ピキーニャ エクセレンテ"/> |
| 9810 | 9850 | <info name="serial" value="SLPS-01345" /> |
| 9811 | 9851 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9812 | 9852 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9819 | 9859 | <!-- boot OK --> |
| 9820 | 9860 | <software name="pinballf" supported="no"> |
| 9821 | 9861 | <description>Pinball Fantasies Deluxe (Japan)</description> |
| 9822 | | <year>199?</year> |
| 9823 | | <publisher><unknown></publisher> |
| 9862 | <year>1996</year> |
| 9863 | <publisher>VAP (NTV)</publisher> |
| 9864 | <info name="alt_title" value="Pinball Fantasies DELUXE"/> |
| 9824 | 9865 | <info name="serial" value="SLPS-00482" /> |
| 9825 | 9866 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9826 | 9867 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9832 | 9873 | |
| 9833 | 9874 | <software name="pitfall3" supported="no"> |
| 9834 | 9875 | <description>Pitfall 3D - Beyond the Jungle (Japan)</description> |
| 9835 | | <year>199?</year> |
| 9836 | | <publisher><unknown></publisher> |
| 9876 | <year>1998</year> |
| 9877 | <publisher>Victor</publisher> |
| 9878 | <info name="alt_title" value="ピットフォール3D"/> |
| 9837 | 9879 | <info name="serial" value="SLPS-01669" /> |
| 9838 | 9880 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9839 | 9881 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9845 | 9887 | |
| 9846 | 9888 | <software name="planetdo" supported="no"> |
| 9847 | 9889 | <description>Planet Dob (Japan)</description> |
| 9848 | | <year>199?</year> |
| 9849 | | <publisher><unknown></publisher> |
| 9890 | <year>1999</year> |
| 9891 | <publisher>Hudson</publisher> |
| 9892 | <info name="alt_title" value="PLANET DOB"/> |
| 9850 | 9893 | <info name="serial" value="SLPS-02111" /> |
| 9851 | 9894 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9852 | 9895 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9857 | 9900 | </software> |
| 9858 | 9901 | |
| 9859 | 9902 | <software name="planetla" supported="no"> |
| 9860 | | <description>Planet Laika - Kasei Mokushiroku (Japan)</description> |
| 9861 | | <year>199?</year> |
| 9862 | | <publisher><unknown></publisher> |
| 9903 | <description>Planet Laika (Japan)</description> |
| 9904 | <year>1999</year> |
| 9905 | <publisher>Enix</publisher> |
| 9906 | <info name="alt_title" value="PLANET LAIKA 火星黙示録"/> |
| 9863 | 9907 | <info name="serial" value="SLPM-86264" /> |
| 9864 | 9908 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9865 | 9909 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9870 | 9914 | </software> |
| 9871 | 9915 | |
| 9872 | 9916 | <software name="pocketdi" supported="no"> |
| 9873 | | <description>Pocket Digimon World (Japan)</description> |
| 9874 | | <year>199?</year> |
| 9875 | | <publisher><unknown></publisher> |
| 9917 | <description>Pocket DigimonWorld (Japan)</description> |
| 9918 | <year>2000</year> |
| 9919 | <publisher>Bandai</publisher> |
| 9920 | <info name="alt_title" value="ポケットデジモンワールド"/> |
| 9876 | 9921 | <info name="serial" value="SLPS-02800" /> |
| 9877 | 9922 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9878 | 9923 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9883 | 9928 | </software> |
| 9884 | 9929 | |
| 9885 | 9930 | <software name="pocketwb" supported="no"> |
| 9886 | | <description>Pocket Digimon World - Wind Battle Disc (Japan)</description> |
| 9887 | | <year>199?</year> |
| 9888 | | <publisher><unknown></publisher> |
| 9931 | <description>Pocket DigimonWorld - Wind Battle Disc (Japan)</description> |
| 9932 | <year>2000</year> |
| 9933 | <publisher>Bandai</publisher> |
| 9934 | <info name="alt_title" value="ポケットデジモンワールド ウイングバトルディスク"/> |
| 9889 | 9935 | <info name="serial" value="SLPS-02992" /> |
| 9890 | 9936 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9891 | 9937 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9896 | 9942 | </software> |
| 9897 | 9943 | |
| 9898 | 9944 | <software name="pocketwc" supported="no"> |
| 9899 | | <description>Pocket Digimon World Cool & Nature Battle (Japan)</description> |
| 9900 | | <year>199?</year> |
| 9901 | | <publisher><unknown></publisher> |
| 9945 | <description>Pocket DigimonWorld Cool & Nature Battle Disc (Japan)</description> |
| 9946 | <year>2001</year> |
| 9947 | <publisher>Bandai</publisher> |
| 9948 | <info name="alt_title" value="ポケットデジモンワールド クール&ネイチャー バトルディスク"/> |
| 9902 | 9949 | <info name="serial" value="SLPS-03146" /> |
| 9903 | 9950 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9904 | 9951 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9910 | 9957 | |
| 9911 | 9958 | <software name="pocketfi" supported="no"> |
| 9912 | 9959 | <description>Pocket Fighter (Japan)</description> |
| 9913 | | <year>199?</year> |
| 9914 | | <publisher><unknown></publisher> |
| 9960 | <year>1998</year> |
| 9961 | <publisher>Capcom</publisher> |
| 9962 | <info name="alt_title" value="ポケットファイター"/> |
| 9915 | 9963 | <info name="serial" value="SLPS-01360" /> |
| 9916 | 9964 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9917 | 9965 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9923 | 9971 | |
| 9924 | 9972 | <software name="pocketmu" supported="no"> |
| 9925 | 9973 | <description>Pocket Muumuu (Japan)</description> |
| 9926 | | <year>199?</year> |
| 9927 | | <publisher><unknown></publisher> |
| 9974 | <year>1999</year> |
| 9975 | <publisher>Sony</publisher> |
| 9976 | <info name="alt_title" value="ポケットムームー"/> |
| 9928 | 9977 | <info name="serial" value="SCPS-10076" /> |
| 9929 | 9978 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9930 | 9979 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9935 | 9984 | </software> |
| 9936 | 9985 | |
| 9937 | 9986 | <software name="poitters" supported="no"> |
| 9938 | | <description>Poitter's Point 2 (Japan)</description> |
| 9939 | | <year>199?</year> |
| 9940 | | <publisher><unknown></publisher> |
| 9987 | <description>Poitter's Point 2 - Sodom no Inbou (Japan)</description> |
| 9988 | <year>1998</year> |
| 9989 | <publisher>Konami</publisher> |
| 9990 | <info name="alt_title" value="ポイッターズポイント2"/> |
| 9941 | 9991 | <info name="serial" value="SLPM-86061" /> |
| 9942 | 9992 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9943 | 9993 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9949 | 9999 | |
| 9950 | 10000 | <software name="policena" supported="no"> |
| 9951 | 10001 | <description>Policenauts - Private Collection (Japan)</description> |
| 9952 | | <year>199?</year> |
| 9953 | | <publisher><unknown></publisher> |
| 10002 | <year>1996</year> |
| 10003 | <publisher>Konami</publisher> |
| 10004 | <info name="alt_title" value="ポリスノーツ プライベートコレクション"/> |
| 9954 | 10005 | <info name="serial" value="SLPS-00228" /> |
| 9955 | 10006 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9956 | 10007 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9962 | 10013 | |
| 9963 | 10014 | <software name="popnmusi" supported="no"> |
| 9964 | 10015 | <description>Pop'n Music - Disney Tunes (Japan)</description> |
| 9965 | | <year>199?</year> |
| 9966 | | <publisher><unknown></publisher> |
| 10016 | <year>2000</year> |
| 10017 | <publisher>Konami</publisher> |
| 10018 | <info name="alt_title" value="ポップンミュージックディズニーチューンズ"/> |
| 9967 | 10019 | <info name="serial" value="SLPM-86670" /> |
| 9968 | 10020 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9969 | 10021 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9976 | 10028 | <!-- boot OK --> |
| 9977 | 10029 | <software name="popnpopj" supported="no"> |
| 9978 | 10030 | <description>Pop'n Pop (Japan)</description> |
| 9979 | | <year>199?</year> |
| 9980 | | <publisher><unknown></publisher> |
| 10031 | <year>1998</year> |
| 10032 | <publisher>Taito</publisher> |
| 10033 | <info name="alt_title" value="ぽっぷんぽっぷ"/> |
| 9981 | 10034 | <info name="serial" value="SLPS-01636" /> |
| 9982 | 10035 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9983 | 10036 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 9990 | 10043 | <!-- black screen after logos --> |
| 9991 | 10044 | <software name="popntank" supported="no"> |
| 9992 | 10045 | <description>Pop'n Tanks! (Japan)</description> |
| 9993 | | <year>199?</year> |
| 9994 | | <publisher><unknown></publisher> |
| 10046 | <year>1999</year> |
| 10047 | <publisher>Enix</publisher> |
| 10048 | <info name="alt_title" value="POPN TANKS"/> |
| 9995 | 10049 | <info name="serial" value="SLPM-86146" /> |
| 9996 | 10050 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 9997 | 10051 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10003 | 10057 | |
| 10004 | 10058 | <software name="potestas" supported="no"> |
| 10005 | 10059 | <description>Potestas (Japan)</description> |
| 10006 | | <year>199?</year> |
| 10007 | | <publisher><unknown></publisher> |
| 10060 | <year>1996</year> |
| 10061 | <publisher>Nexus</publisher> |
| 10062 | <info name="alt_title" value="ポテスタス"/> |
| 10008 | 10063 | <info name="serial" value="SLPS-00324" /> |
| 10009 | 10064 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10010 | 10065 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10016 | 10071 | |
| 10017 | 10072 | <software name="powersho" supported="no"> |
| 10018 | 10073 | <description>Power Shovel ni Norou!! (Japan)</description> |
| 10019 | | <year>199?</year> |
| 10020 | | <publisher><unknown></publisher> |
| 10074 | <year>2000</year> |
| 10075 | <publisher>Taito</publisher> |
| 10076 | <info name="alt_title" value="パワーショベルに乗ろう!!"/> |
| 10021 | 10077 | <info name="serial" value="SLPM-86629" /> |
| 10022 | 10078 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10023 | 10079 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10029 | 10085 | |
| 10030 | 10086 | <software name="powersta" supported="no"> |
| 10031 | 10087 | <description>Power Stakes (Japan)</description> |
| 10032 | | <year>199?</year> |
| 10033 | | <publisher><unknown></publisher> |
| 10088 | <year>1997</year> |
| 10089 | <publisher>Aques</publisher> |
| 10090 | <info name="alt_title" value="パワーステークス"/> |
| 10034 | 10091 | <info name="serial" value="SLPM-86032" /> |
| 10035 | 10092 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10036 | 10093 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10042 | 10099 | |
| 10043 | 10100 | <software name="powersg1" supported="no"> |
| 10044 | 10101 | <description>Power Stakes Grade 1 (Japan)</description> |
| 10045 | | <year>199?</year> |
| 10046 | | <publisher><unknown></publisher> |
| 10102 | <year>1997</year> |
| 10103 | <publisher>Aques</publisher> |
| 10104 | <info name="alt_title" value="パワーステークス Grade1"/> |
| 10047 | 10105 | <info name="serial" value="SLPM-86050" /> |
| 10048 | 10106 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10049 | 10107 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10055 | 10113 | |
| 10056 | 10114 | <software name="princess" supported="no"> |
| 10057 | 10115 | <description>Princess Maker - Go! Go! Princess (Japan)</description> |
| 10058 | | <year>199?</year> |
| 10059 | | <publisher><unknown></publisher> |
| 10116 | <year>1999</year> |
| 10117 | <publisher>NineLives</publisher> |
| 10118 | <info name="alt_title" value="プリンセスメーカー GO!GO!プリンセス"/> |
| 10060 | 10119 | <info name="serial" value="SLPS-01505" /> |
| 10061 | 10120 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10062 | 10121 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10068 | 10127 | |
| 10069 | 10128 | <software name="prismcou" supported="no"> |
| 10070 | 10129 | <description>Prism Court (Japan)</description> |
| 10071 | | <year>199?</year> |
| 10072 | | <publisher><unknown></publisher> |
| 10130 | <year>1998</year> |
| 10131 | <publisher>FPS</publisher> |
| 10132 | <info name="alt_title" value="プリズムコート"/> |
| 10073 | 10133 | <info name="serial" value="SLPS-01226" /> |
| 10074 | 10134 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10075 | 10135 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10081 | 10141 | |
| 10082 | 10142 | <software name="prisoner" supported="no"> |
| 10083 | 10143 | <description>Prisoner (Japan)</description> |
| 10084 | | <year>199?</year> |
| 10085 | | <publisher><unknown></publisher> |
| 10144 | <year>1999</year> |
| 10145 | <publisher>Mainichi</publisher> |
| 10146 | <info name="alt_title" value="PRISONER(プリズナー)"/> |
| 10086 | 10147 | <info name="serial" value="SLPS-02387" /> |
| 10087 | 10148 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10088 | 10149 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10094 | 10155 | |
| 10095 | 10156 | <software name="promahpl" supported="no"> |
| 10096 | 10157 | <description>Pro Mahjong Kiwame Plus (Japan)</description> |
| 10097 | | <year>199?</year> |
| 10098 | | <publisher><unknown></publisher> |
| 10158 | <year>1996</year> |
| 10159 | <publisher>Athena</publisher> |
| 10160 | <info name="alt_title" value="プロ麻雀 極PLUS"/> |
| 10099 | 10161 | <info name="serial" value="SLPS-00402" /> |
| 10100 | 10162 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10101 | 10163 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10107 | 10169 | |
| 10108 | 10170 | <software name="promahjo" supported="no"> |
| 10109 | 10171 | <description>Pro Mahjong Kiwame Tengensenhen (Japan)</description> |
| 10110 | | <year>199?</year> |
| 10111 | | <publisher><unknown></publisher> |
| 10172 | <year>1999</year> |
| 10173 | <publisher>Athena</publisher> |
| 10174 | <info name="alt_title" value="プロ麻雀 極 天元戦編"/> |
| 10112 | 10175 | <info name="serial" value="SLPS-02347" /> |
| 10113 | 10176 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10114 | 10177 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10120 | 10183 | |
| 10121 | 10184 | <software name="prowrest" supported="no"> |
| 10122 | 10185 | <description>Pro Wrestling Sengokuden - Hyper Tag Match (Japan)</description> |
| 10123 | | <year>199?</year> |
| 10124 | | <publisher><unknown></publisher> |
| 10186 | <year>1997</year> |
| 10187 | <publisher>KSS</publisher> |
| 10188 | <info name="alt_title" value="プロレス戦国伝 〜HYPER TAG MATCH〜"/> |
| 10125 | 10189 | <info name="serial" value="SLPS-01006" /> |
| 10126 | 10190 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10127 | 10191 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10132 | 10196 | </software> |
| 10133 | 10197 | |
| 10134 | 10198 | <software name="prologic" supported="no"> |
| 10135 | | <description>Pro-Logic Mah-Jong Hai-Shin (Japan)</description> |
| 10136 | | <year>199?</year> |
| 10137 | | <publisher><unknown></publisher> |
| 10199 | <description>Pro Logic Mahjong Hai-Shin (Japan)</description> |
| 10200 | <year>1996</year> |
| 10201 | <publisher>Aques</publisher> |
| 10202 | <info name="alt_title" value="プロロジック麻雀 牌神"/> |
| 10138 | 10203 | <info name="serial" value="SLPM-86018" /> |
| 10139 | 10204 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10140 | 10205 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10144 | 10209 | </part> |
| 10145 | 10210 | </software> |
| 10146 | 10211 | |
| 10212 | <!-- missing GFX --> |
| 10213 | <software name="puchicar" supported="no"> |
| 10214 | <description>Puchi Carat (Japan)</description> |
| 10215 | <year>1998</year> |
| 10216 | <publisher>Taito</publisher> |
| 10217 | <info name="alt_title" value="プチカラット"/> |
| 10218 | <info name="serial" value="SLPS-01435" /> |
| 10219 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10220 | <part name="cdrom" interface="psx_cdrom"> |
| 10221 | <diskarea name="cdrom"> |
| 10222 | <disk name="petit carat (japan) [slps-01435]" sha1="d5a4844ddc86dbc9ac5a3b783a93e5dbf0c1bace"/> |
| 10223 | </diskarea> |
| 10224 | </part> |
| 10225 | </software> |
| 10226 | |
| 10147 | 10227 | <software name="pukunpaj" supported="no"> |
| 10148 | | <description>Pukunpa - Joshi Kousei no Houkago... (Japan)</description> |
| 10149 | | <year>199?</year> |
| 10150 | | <publisher><unknown></publisher> |
| 10228 | <description>Pukunpa Joshikousei No Houkago... (Japan)</description> |
| 10229 | <year>1996</year> |
| 10230 | <publisher>Athena</publisher> |
| 10231 | <info name="alt_title" value="ぷくんパ 女子高生の放課後…"/> |
| 10151 | 10232 | <info name="serial" value="SLPS-00409" /> |
| 10152 | 10233 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10153 | 10234 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10160 | 10241 | <!-- boot OK --> |
| 10161 | 10242 | <software name="puyopubx" supported="no"> |
| 10162 | 10243 | <description>Puyo Puyo Box (Japan)</description> |
| 10163 | | <year>199?</year> |
| 10164 | | <publisher><unknown></publisher> |
| 10244 | <year>2000</year> |
| 10245 | <publisher>Compile</publisher> |
| 10246 | <info name="alt_title" value="ぷよぷよBOX"/> |
| 10165 | 10247 | <info name="serial" value="SLPS-03114" /> |
| 10166 | 10248 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10167 | 10249 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10171 | 10253 | </part> |
| 10172 | 10254 | </software> |
| 10173 | 10255 | |
| 10174 | | <software name="puypuyoo" supported="no"> |
| 10175 | | <description>Puyo Puyoon - Car-Kun to Issho (Japan)</description> |
| 10176 | | <year>199?</year> |
| 10177 | | <publisher><unknown></publisher> |
| 10256 | <software name="puyopuy4" supported="no"> |
| 10257 | <description>Puyo Puyo 4 - Car-Kun to Issho (Japan)</description> |
| 10258 | <year>1999</year> |
| 10259 | <publisher>Compile</publisher> |
| 10260 | <info name="alt_title" value="ぷよぷよ〜ん カーくんといっしょ"/> |
| 10178 | 10261 | <info name="serial" value="SLPS-02412" /> |
| 10179 | 10262 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10180 | 10263 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10186 | 10269 | |
| 10187 | 10270 | <!-- boot OK --> |
| 10188 | 10271 | <software name="puzzlear" supported="no"> |
| 10189 | | <description>Puzzle Arena Toshinden (Japan)</description> |
| 10190 | | <year>199?</year> |
| 10191 | | <publisher><unknown></publisher> |
| 10272 | <description>Puzzle Arena To Shin Den (Japan)</description> |
| 10273 | <year>1997</year> |
| 10274 | <publisher>Takara</publisher> |
| 10275 | <info name="alt_title" value="パズルアリーナ闘神伝"/> |
| 10192 | 10276 | <info name="serial" value="SLPS-00879" /> |
| 10193 | 10277 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10194 | 10278 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10201 | 10285 | <!-- boot ok --> |
| 10202 | 10286 | <software name="pbobl3dx" supported="no"> |
| 10203 | 10287 | <description>Puzzle Bobble 3 DX (Japan)</description> |
| 10204 | | <year>199?</year> |
| 10205 | | <publisher><unknown></publisher> |
| 10288 | <year>1997</year> |
| 10289 | <publisher>Taito</publisher> |
| 10290 | <info name="alt_title" value="パズルボブル3デラックス"/> |
| 10206 | 10291 | <info name="serial" value="SLPS-01065" /> |
| 10207 | 10292 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10208 | 10293 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10215 | 10300 | <!-- boot ok --> |
| 10216 | 10301 | <software name="pbobl4" supported="no"> |
| 10217 | 10302 | <description>Puzzle Bobble 4 (Japan)</description> |
| 10218 | | <year>199?</year> |
| 10219 | | <publisher><unknown></publisher> |
| 10303 | <year>1998</year> |
| 10304 | <publisher>Taito</publisher> |
| 10305 | <info name="alt_title" value="パズルボブル4"/> |
| 10220 | 10306 | <info name="serial" value="SLPS-01492" /> |
| 10221 | 10307 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10222 | 10308 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10228 | 10314 | |
| 10229 | 10315 | <!-- boot ok, must skip fmv before it begins or black screen --> |
| 10230 | 10316 | <software name="qix2000j" supported="no"> |
| 10231 | | <description>Qix 2000 (Japan)</description> |
| 10232 | | <year>199?</year> |
| 10233 | | <publisher><unknown></publisher> |
| 10317 | <description>Qix 2000 (Superlite 1500 Series) (Japan)</description> |
| 10318 | <year>2000</year> |
| 10319 | <publisher>Success</publisher> |
| 10320 | <info name="alt_title" value="SuperLite1500シリーズ クイックス2000"/> |
| 10234 | 10321 | <info name="serial" value="SLPM-86659" /> |
| 10235 | 10322 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10236 | 10323 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10242 | 10329 | |
| 10243 | 10330 | <software name="quantumg" supported="no"> |
| 10244 | 10331 | <description>Quantum Gate I - Akumu no Joshou (Japan)</description> |
| 10245 | | <year>199?</year> |
| 10246 | | <publisher><unknown></publisher> |
| 10332 | <year>1997</year> |
| 10333 | <publisher>Gaga</publisher> |
| 10334 | <info name="alt_title" value="QUANTUM GATE 〜悪夢の序章〜"/> |
| 10247 | 10335 | <info name="serial" value="SLPS-00399" /> |
| 10248 | 10336 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10249 | 10337 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10255 | 10343 | |
| 10256 | 10344 | <software name="quizchar" supported="no"> |
| 10257 | 10345 | <description>Quiz Charaokedon! Toei Tokusatsu Hero Part 2 (Japan)</description> |
| 10258 | | <year>199?</year> |
| 10259 | | <publisher><unknown></publisher> |
| 10346 | <year>1999</year> |
| 10347 | <publisher>Banpresto</publisher> |
| 10348 | <info name="alt_title" value="クイズキャラおけドン! 東映特撮ヒーローPART2"/> |
| 10260 | 10349 | <info name="serial" value="SLPS-02310" /> |
| 10261 | 10350 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10262 | 10351 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10268 | 10357 | |
| 10269 | 10358 | <!-- boot ok --> |
| 10270 | 10359 | <software name="quizdara" supported="no"> |
| 10271 | | <description>Quiz Darake no Jinsei Game - Un to Atama de Daifugou (Japan)</description> |
| 10272 | | <year>199?</year> |
| 10273 | | <publisher><unknown></publisher> |
| 10360 | <description>Quiz Darake No Jinsei Game (Japan)</description> |
| 10361 | <year>1997</year> |
| 10362 | <publisher>Takara</publisher> |
| 10363 | <info name="alt_title" value="クイズだらけの人生ゲーム 運と頭で大富豪!?"/> |
| 10274 | 10364 | <info name="serial" value="SLPS-02282" /> |
| 10275 | 10365 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10276 | 10366 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10282 | 10372 | |
| 10283 | 10373 | <!-- hang starting new game --> |
| 10284 | 10374 | <software name="quizmill" supported="no"> |
| 10285 | | <description>Quiz Millionaire (Japan)</description> |
| 10286 | | <year>199?</year> |
| 10287 | | <publisher><unknown></publisher> |
| 10375 | <description>Quiz$Millionaire (Japan)</description> |
| 10376 | <year>2001</year> |
| 10377 | <publisher>Eidos</publisher> |
| 10378 | <info name="alt_title" value="クイズ$ミリオネア"/> |
| 10288 | 10379 | <info name="serial" value="SLPS-03364" /> |
| 10289 | 10380 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10290 | 10381 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10297 | 10388 | <!-- boot ok --> |
| 10298 | 10389 | <software name="quovadis" supported="no"> |
| 10299 | 10390 | <description>Quo Vadis - Iberukatsu Seneki (Japan)</description> |
| 10300 | | <year>199?</year> |
| 10301 | | <publisher><unknown></publisher> |
| 10391 | <year>1997</year> |
| 10392 | <publisher>Glams</publisher> |
| 10393 | <info name="alt_title" value="クオバディス 〜イベルカーツ戦役〜"/> |
| 10302 | 10394 | <info name="serial" value="SLPS-00733" /> |
| 10303 | 10395 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10304 | 10396 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10310 | 10402 | |
| 10311 | 10403 | <!-- boot OK --> |
| 10312 | 10404 | <software name="racedriv" supported="no"> |
| 10313 | | <description>Race Drivin' a Go! Go! (Japan)</description> |
| 10314 | | <year>199?</year> |
| 10315 | | <publisher><unknown></publisher> |
| 10405 | <description>Race Driving' A Go! Go! (Japan)</description> |
| 10406 | <year>1996</year> |
| 10407 | <publisher>Time Warner</publisher> |
| 10408 | <info name="alt_title" value="RACE DRIVIN' a GO! GO!"/> |
| 10316 | 10409 | <info name="serial" value="SLPS-00167" /> |
| 10317 | 10410 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10318 | 10411 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10325 | 10418 | <!-- boot ok --> |
| 10326 | 10419 | <software name="rakugaki" supported="no"> |
| 10327 | 10420 | <description>Rakugaki Showtime (Japan)</description> |
| 10328 | | <year>199?</year> |
| 10329 | | <publisher><unknown></publisher> |
| 10421 | <year>1999</year> |
| 10422 | <publisher>Enix</publisher> |
| 10423 | <info name="alt_title" value="ラクガキショータイム"/> |
| 10330 | 10424 | <info name="serial" value="SLPM-86272" /> |
| 10331 | 10425 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10332 | 10426 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10339 | 10433 | <!-- boot ok --> |
| 10340 | 10434 | <software name="rallydea" supported="no"> |
| 10341 | 10435 | <description>Rally de Africa (Japan)</description> |
| 10342 | | <year>199?</year> |
| 10343 | | <publisher><unknown></publisher> |
| 10436 | <year>1998</year> |
| 10437 | <publisher>Prism Arts</publisher> |
| 10438 | <info name="alt_title" value="ラリー・デ・アフリカ"/> |
| 10344 | 10439 | <info name="serial" value="SLPS-01601" /> |
| 10345 | 10440 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10346 | 10441 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10353 | 10448 | <!-- boot ok --> |
| 10354 | 10449 | <software name="rallydee" supported="no"> |
| 10355 | 10450 | <description>Rally de Europe (Japan)</description> |
| 10356 | | <year>199?</year> |
| 10357 | | <publisher><unknown></publisher> |
| 10451 | <year>2000</year> |
| 10452 | <publisher>Prism Arts</publisher> |
| 10453 | <info name="alt_title" value="ラリー・デ・ヨーロッパ"/> |
| 10358 | 10454 | <info name="serial" value="SLPS-02679" /> |
| 10359 | 10455 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10360 | 10456 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10366 | 10462 | |
| 10367 | 10463 | <!-- black screen after some movies --> |
| 10368 | 10464 | <software name="ramichan" supported="no"> |
| 10369 | | <description>Ramichan no Odeo Surogoku - Keio Yugekitai Gaiden (Japan)</description> |
| 10370 | | <year>199?</year> |
| 10371 | | <publisher><unknown></publisher> |
| 10465 | <description>Rami-Chan No Ooeto Surogoku: Keio Yugekitai Gaiden (Japan)</description> |
| 10466 | <year>1998</year> |
| 10467 | <publisher>Victor</publisher> |
| 10468 | <info name="alt_title" value="蘭未ちゃんの大江戸すごろく"/> |
| 10372 | 10469 | <info name="serial" value="SLPS-01546" /> |
| 10373 | 10470 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10374 | 10471 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10380 | 10477 | |
| 10381 | 10478 | <!-- boot ok --> |
| 10382 | 10479 | <software name="ranma12b" supported="no"> |
| 10383 | | <description>Ranma 1-2 - Battle Renaissance (Japan)</description> |
| 10384 | | <year>199?</year> |
| 10385 | | <publisher><unknown></publisher> |
| 10480 | <description>Ranma 1/2 Battle Renaissance (Japan)</description> |
| 10481 | <year>1996</year> |
| 10482 | <publisher>Shogakukan</publisher> |
| 10483 | <info name="alt_title" value="らんま1/2 バトルルネッサンス"/> |
| 10386 | 10484 | <info name="serial" value="SLPS-00522" /> |
| 10387 | 10485 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10388 | 10486 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10395 | 10493 | <!-- boot ok --> |
| 10396 | 10494 | <software name="raytrace" supported="no"> |
| 10397 | 10495 | <description>Ray Tracers (Japan)</description> |
| 10398 | | <year>199?</year> |
| 10399 | | <publisher><unknown></publisher> |
| 10496 | <year>1997</year> |
| 10497 | <publisher>Taito</publisher> |
| 10498 | <info name="alt_title" value="レイ・トレーサー"/> |
| 10400 | 10499 | <info name="serial" value="SLPS-00098" /> |
| 10401 | 10500 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10402 | 10501 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10409 | 10508 | <!-- hangs at company logo --> |
| 10410 | 10509 | <software name="raymanja" supported="no"> |
| 10411 | 10510 | <description>Rayman (Japan)</description> |
| 10412 | | <year>199?</year> |
| 10413 | | <publisher><unknown></publisher> |
| 10511 | <year>1995</year> |
| 10512 | <publisher>Ubisoft</publisher> |
| 10513 | <info name="alt_title" value="ユービーアイ ソフト(株)"/> |
| 10414 | 10514 | <info name="serial" value="SLPS-00026" /> |
| 10415 | 10515 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10416 | 10516 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10423 | 10523 | <!-- boot ok --> |
| 10424 | 10524 | <software name="readymai" supported="no"> |
| 10425 | 10525 | <description>Ready Maid (Japan)</description> |
| 10426 | | <year>199?</year> |
| 10427 | | <publisher><unknown></publisher> |
| 10526 | <year>2002</year> |
| 10527 | <publisher>Princess</publisher> |
| 10528 | <info name="alt_title" value="れでぃめいど"/> |
| 10428 | 10529 | <info name="serial" value="SLPM-87157" /> |
| 10429 | 10530 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10430 | 10531 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10437 | 10538 | <!-- boot OK --> |
| 10438 | 10539 | <software name="rbffsdm" supported="no"> |
| 10439 | 10540 | <description>Real Bout Garou Densetsu Special - Dominated Mind (Limited Edition) (Japan) (Disc 1)</description> |
| 10440 | | <year>199?</year> |
| 10441 | | <publisher><unknown></publisher> |
| 10541 | <year>1998</year> |
| 10542 | <publisher>SNK</publisher> |
| 10543 | <info name="alt_title" value="リアルバウト餓狼伝説スペシャル DOMINATED MIND 限定版"/> |
| 10442 | 10544 | <info name="serial" value="SLPM-86090, SLPM-86091" /> |
| 10443 | 10545 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10444 | 10546 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10456 | 10558 | <!-- boot OK --> |
| 10457 | 10559 | <software name="realrobo" supported="no"> |
| 10458 | 10560 | <description>Real Robots - Final Attack (Japan)</description> |
| 10459 | | <year>199?</year> |
| 10460 | | <publisher><unknown></publisher> |
| 10561 | <year>1998</year> |
| 10562 | <publisher>Banpresto</publisher> |
| 10563 | <info name="alt_title" value="リアルロボッツ ファイナルアタック"/> |
| 10461 | 10564 | <info name="serial" value="SLPS-01125" /> |
| 10462 | 10565 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10463 | 10566 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10470 | 10573 | <!-- boot OK --> |
| 10471 | 10574 | <software name="reciproh" supported="no"> |
| 10472 | 10575 | <description>Recipro Heat 5000 (Japan)</description> |
| 10473 | | <year>199?</year> |
| 10474 | | <publisher><unknown></publisher> |
| 10576 | <year>1997</year> |
| 10577 | <publisher>Xing</publisher> |
| 10578 | <info name="alt_title" value="レシプロヒート5000"/> |
| 10475 | 10579 | <info name="serial" value="SLPS-00744" /> |
| 10476 | 10580 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10477 | 10581 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10484 | 10588 | <!-- boot ok, needs gun --> |
| 10485 | 10589 | <software name="rsbhdemo" supported="no"> |
| 10486 | 10590 | <description>Rescue Shot Bubibo & BioHazard - Gun Survivor (Demo) (Japan)</description> |
| 10487 | | <year>199?</year> |
| 10488 | | <publisher><unknown></publisher> |
| 10591 | <year>200?</year> |
| 10592 | <publisher>SCEI</publisher> |
| 10593 | <info name="alt_title" value="レスキューショットブービーぼー&バイオハザードガンサバイバー ガンコン"/> |
| 10489 | 10594 | <info name="serial" value="SLPM-80522" /> |
| 10490 | 10595 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10491 | 10596 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10498 | 10603 | <!-- black screen, MESS crash --> |
| 10499 | 10604 | <software name="retzork" supported="no"> |
| 10500 | 10605 | <description>Return to Zork (Japan)</description> |
| 10501 | | <year>199?</year> |
| 10502 | | <publisher><unknown></publisher> |
| 10606 | <year>1996</year> |
| 10607 | <publisher>Bandai</publisher> |
| 10608 | <info name="alt_title" value="リターン・トゥ・ゾーク"/> |
| 10503 | 10609 | <info name="serial" value="SLPS-00192, SLPS-00193" /> |
| 10504 | 10610 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10505 | 10611 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10517 | 10623 | <!-- boot ok --> |
| 10518 | 10624 | <software name="ridegear" supported="no"> |
| 10519 | 10625 | <description>Ridegear Guybrave II (Japan)</description> |
| 10520 | | <year>199?</year> |
| 10521 | | <publisher><unknown></publisher> |
| 10626 | <year>1998</year> |
| 10627 | <publisher>Axela</publisher> |
| 10628 | <info name="alt_title" value="雷弩機兵ガイブレイブII"/> |
| 10522 | 10629 | <info name="serial" value="SLPS-01643, SLPS-01644" /> |
| 10523 | 10630 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10524 | 10631 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10536 | 10643 | <!-- boot ok --> |
| 10537 | 10644 | <software name="rikujoub" supported="no"> |
| 10538 | 10645 | <description>Rikujou Boueitai Maochan (Deluxe Pack) (Japan)</description> |
| 10539 | | <year>199?</year> |
| 10540 | | <publisher><unknown></publisher> |
| 10646 | <year>2003</year> |
| 10647 | <publisher>Marvelous</publisher> |
| 10648 | <info name="alt_title" value="陸上防衛隊まおちゃん DXパック"/> |
| 10541 | 10649 | <info name="serial" value="SLPM-87198" /> |
| 10542 | 10650 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10543 | 10651 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10550 | 10658 | <!-- black screen after company logos --> |
| 10551 | 10659 | <software name="riotstar" supported="no"> |
| 10552 | 10660 | <description>Riot Stars (Japan)</description> |
| 10553 | | <year>199?</year> |
| 10554 | | <publisher><unknown></publisher> |
| 10661 | <year>1997</year> |
| 10662 | <publisher>Hect</publisher> |
| 10663 | <info name="alt_title" value="ライアット・スターズ"/> |
| 10555 | 10664 | <info name="serial" value="SLPS-00829" /> |
| 10556 | 10665 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10557 | 10666 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10563 | 10672 | |
| 10564 | 10673 | <!-- company logos shown, broken into incorrect parts, then hang --> |
| 10565 | 10674 | <software name="riseofro" supported="no"> |
| 10566 | | <description>Rise of Robots 2 - Resurection (Japan)</description> |
| 10567 | | <year>199?</year> |
| 10568 | | <publisher><unknown></publisher> |
| 10675 | <description>Rise of Robots 2 - Resurrection (Japan)</description> |
| 10676 | <year>1996</year> |
| 10677 | <publisher>Acclaim</publisher> |
| 10678 | <info name="alt_title" value="ライズ オブ ザ ロボット 2"/> |
| 10569 | 10679 | <info name="serial" value="SLPS-00259" /> |
| 10570 | 10680 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10571 | 10681 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10578 | 10688 | <!-- boot ok --> |
| 10579 | 10689 | <software name="risingza" supported="no"> |
| 10580 | 10690 | <description>Rising Zan - The Samurai Gunman (Japan)</description> |
| 10581 | | <year>199?</year> |
| 10582 | | <publisher><unknown></publisher> |
| 10691 | <year>1999</year> |
| 10692 | <publisher>UEP</publisher> |
| 10693 | <info name="alt_title" value="RISING ZAN"/> |
| 10583 | 10694 | <info name="serial" value="SLPS-01691" /> |
| 10584 | 10695 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10585 | 10696 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10590 | 10701 | </software> |
| 10591 | 10702 | |
| 10592 | 10703 | <software name="robinllo" supported="no"> |
| 10593 | | <description>Robin Lloyd no Bouken (Japan)</description> |
| 10594 | | <year>199?</year> |
| 10595 | | <publisher><unknown></publisher> |
| 10704 | <description>Robin Lloyd no Daibouken (Japan)</description> |
| 10705 | <year>2000</year> |
| 10706 | <publisher>Gust</publisher> |
| 10707 | <info name="alt_title" value="ロビン・ロイドの冒険"/> |
| 10596 | 10708 | <info name="serial" value="SLPS-02501" /> |
| 10597 | 10709 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10598 | 10710 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10603 | 10715 | </software> |
| 10604 | 10716 | |
| 10605 | 10717 | <software name="robotxro" supported="no"> |
| 10606 | | <description>Robot X Robot (Japan)</description> |
| 10607 | | <year>199?</year> |
| 10608 | | <publisher><unknown></publisher> |
| 10609 | | <info name="serial" value="SLPS-02231" /> |
| 10718 | <description>Robot-X-Robot (Japan)</description> |
| 10719 | <year>1999</year> |
| 10720 | <publisher>Nemesys</publisher> |
| 10721 | <info name="alt_title" value="ロボット×ロボット"/> |
| 10722 | <info name="serial" value="SLPS-02331" /> |
| 10610 | 10723 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10611 | 10724 | <part name="cdrom" interface="psx_cdrom"> |
| 10612 | 10725 | <diskarea name="cdrom"> |
| 10613 | | <disk name="robot x robot (japan) [slps-02231]" sha1="fd0813351a8bbcf57cecb2e3f5481d88592140fe"/> |
| 10726 | <disk name="robot x robot (japan) [slps-02331]" sha1="fd0813351a8bbcf57cecb2e3f5481d88592140fe"/> |
| 10614 | 10727 | </diskarea> |
| 10615 | 10728 | </part> |
| 10616 | 10729 | </software> |
| 10617 | 10730 | |
| 10618 | 10731 | <software name="roommate" supported="no"> |
| 10619 | 10732 | <description>Roommate - Inoue Ryoko (Japan)</description> |
| 10620 | | <year>199?</year> |
| 10621 | | <publisher><unknown></publisher> |
| 10733 | <year>1999</year> |
| 10734 | <publisher>Datam Polystar</publisher> |
| 10735 | <info name="alt_title" value="ルームメイト〜井上涼子〜"/> |
| 10622 | 10736 | <info name="serial" value="SLPS-02140" /> |
| 10623 | 10737 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10624 | 10738 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10631 | 10745 | <!-- boot OK --> |
| 10632 | 10746 | <software name="runningh" supported="no"> |
| 10633 | 10747 | <description>Running High (Japan)</description> |
| 10634 | | <year>199?</year> |
| 10635 | | <publisher><unknown></publisher> |
| 10748 | <year>1997</year> |
| 10749 | <publisher>REX</publisher> |
| 10750 | <info name="alt_title" value="ランニング・ハイ"/> |
| 10636 | 10751 | <info name="serial" value="SLPS-00751" /> |
| 10637 | 10752 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10638 | 10753 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10642 | 10757 | </part> |
| 10643 | 10758 | </software> |
| 10644 | 10759 | |
| 10760 | <software name="soundqub" supported="no"> |
| 10761 | <description>S.Q. - Sound Qube (Japan)</description> |
| 10762 | <year>1998</year> |
| 10763 | <publisher><unknown></publisher> |
| 10764 | <info name="alt_title" value="S.Q. サウンドキューブ"/> |
| 10765 | <info name="serial" value="SLPS-01309" /> |
| 10766 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10767 | <part name="cdrom" interface="psx_cdrom"> |
| 10768 | <diskarea name="cdrom"> |
| 10769 | <disk name="sound qube (japan) [slps-01309]" sha1="54139ab64577aec717ca75daa26d87b67887a673"/> |
| 10770 | </diskarea> |
| 10771 | </part> |
| 10772 | </software> |
| 10773 | |
| 10645 | 10774 | <software name="sakkyoku" supported="no"> |
| 10646 | | <description>Sakkyoku Surundamon - Dance Remix-hen (Japan)</description> |
| 10647 | | <year>199?</year> |
| 10648 | | <publisher><unknown></publisher> |
| 10775 | <description>Sakkyoku Surundamon - Dance Remix (Japan)</description> |
| 10776 | <year>2000</year> |
| 10777 | <publisher>Ving</publisher> |
| 10778 | <info name="alt_title" value="作曲するんだもん ダンスリミックス編"/> |
| 10649 | 10779 | <info name="serial" value="SLPS-02808" /> |
| 10650 | 10780 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10651 | 10781 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10657 | 10787 | |
| 10658 | 10788 | <software name="sakumash" supported="no"> |
| 10659 | 10789 | <description>Sakuma-shiki Jinsei Game (Japan)</description> |
| 10660 | | <year>199?</year> |
| 10661 | | <publisher><unknown></publisher> |
| 10790 | <year>1998</year> |
| 10791 | <publisher>Takara</publisher> |
| 10792 | <info name="alt_title" value="さくま式人生ゲーム"/> |
| 10662 | 10793 | <info name="serial" value="SLPS-01740" /> |
| 10663 | 10794 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10664 | 10795 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10670 | 10801 | |
| 10671 | 10802 | <software name="salaryma" supported="no"> |
| 10672 | 10803 | <description>Salary Man Champ - Tatakau Salary Man (Japan)</description> |
| 10673 | | <year>199?</year> |
| 10674 | | <publisher><unknown></publisher> |
| 10804 | <year>2001</year> |
| 10805 | <publisher>Success</publisher> |
| 10806 | <info name="alt_title" value="サラリーマンチャンプ たたかうサラリーマン"/> |
| 10675 | 10807 | <info name="serial" value="SLPM-86820" /> |
| 10676 | 10808 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10677 | 10809 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10682 | 10814 | </software> |
| 10683 | 10815 | |
| 10684 | 10816 | <software name="salarytg" supported="no"> |
| 10685 | | <description>Salary Man Kintaro - The Game (Japan)</description> |
| 10686 | | <year>199?</year> |
| 10687 | | <publisher><unknown></publisher> |
| 10817 | <description>Salaryman Kintarou - The Game (Japan)</description> |
| 10818 | <year>2000</year> |
| 10819 | <publisher>Bandai</publisher> |
| 10820 | <info name="alt_title" value="サラリーマン金太郎 THE GAME"/> |
| 10688 | 10821 | <info name="serial" value="SLPS-02806" /> |
| 10689 | 10822 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10690 | 10823 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10696 | 10829 | |
| 10697 | 10830 | <software name="salarysm" supported="no"> |
| 10698 | 10831 | <description>Salary Man Settai Mahjong (Japan)</description> |
| 10699 | | <year>199?</year> |
| 10700 | | <publisher><unknown></publisher> |
| 10832 | <year>2001</year> |
| 10833 | <publisher>Visit</publisher> |
| 10834 | <info name="alt_title" value="サラリーマン接待麻雀"/> |
| 10701 | 10835 | <info name="serial" value="SLPS-03175" /> |
| 10702 | 10836 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10703 | 10837 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10708 | 10842 | </software> |
| 10709 | 10843 | |
| 10710 | 10844 | <software name="samuraid" supported="no"> |
| 10711 | | <description>Samurai Deeper Kyo (Japan)</description> |
| 10712 | | <year>199?</year> |
| 10713 | | <publisher><unknown></publisher> |
| 10845 | <description>Samurai Deeper Kyo (Limited Edition) (Japan)</description> |
| 10846 | <year>2002</year> |
| 10847 | <publisher>Bandai</publisher> |
| 10848 | <info name="alt_title" value="サムライディーパー キョウ"/> |
| 10714 | 10849 | <info name="serial" value="SLPS-03505" /> |
| 10715 | 10850 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10716 | 10851 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10722 | 10857 | |
| 10723 | 10858 | <software name="samurais" supported="no"> |
| 10724 | 10859 | <description>Samurai Spirits - Kenkaku Yubinan Pack (Japan)</description> |
| 10725 | | <year>199?</year> |
| 10726 | | <publisher><unknown></publisher> |
| 10860 | <year>1998</year> |
| 10861 | <publisher>SNK</publisher> |
| 10862 | <info name="alt_title" value="サムライスピリッツ 剣客指南パック"/> |
| 10727 | 10863 | <info name="serial" value="SLPS-00647" /> |
| 10728 | 10864 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10729 | 10865 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10735 | 10871 | |
| 10736 | 10872 | <!-- odd gfx problems --> |
| 10737 | 10873 | <software name="samsho3" supported="no"> |
| 10738 | | <description>Samurai Spirits - Zankurou Musouken (Japan)</description> |
| 10739 | | <year>199?</year> |
| 10740 | | <publisher><unknown></publisher> |
| 10874 | <description>Samurai Spirits - Zankurou Musouken (PlayStation the Best) (Japan)</description> |
| 10875 | <year>1997</year> |
| 10876 | <publisher>SNK</publisher> |
| 10877 | <info name="alt_title" value="サムライスピリッツ 斬紅郎無双剣 PlayStation the Best"/> |
| 10741 | 10878 | <info name="serial" value="SLPS-91024" /> |
| 10742 | 10879 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10743 | 10880 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10749 | 10886 | |
| 10750 | 10887 | <software name="sangokus" supported="no"> |
| 10751 | 10888 | <description>Sangokushi Eiketsuden (Japan)</description> |
| 10752 | | <year>199?</year> |
| 10753 | | <publisher><unknown></publisher> |
| 10889 | <year>1996</year> |
| 10890 | <publisher>Koei</publisher> |
| 10891 | <info name="alt_title" value="三國志英傑伝"/> |
| 10754 | 10892 | <info name="serial" value="SLPS-00309" /> |
| 10755 | 10893 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10756 | 10894 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10760 | 10898 | </part> |
| 10761 | 10899 | </software> |
| 10762 | 10900 | |
| 10901 | <software name="sangokou" supported="no"> |
| 10902 | <description>Sangokushi Koumeiden (Japan)</description> |
| 10903 | <year>1997</year> |
| 10904 | <publisher>Koei</publisher> |
| 10905 | <info name="alt_title" value="三國志孔明伝"/> |
| 10906 | <info name="serial" value="SLPS-00688" /> |
| 10907 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10908 | <part name="cdrom" interface="psx_cdrom"> |
| 10909 | <diskarea name="cdrom"> |
| 10910 | <disk name="sangokushi koumeiden (japan) [slps-00688]" sha1="2719dea19adbb7f9adf3ed4325cc7254bd09c1d4"/> |
| 10911 | </diskarea> |
| 10912 | </part> |
| 10913 | </software> |
| 10914 | |
| 10763 | 10915 | <software name="sangoku2" supported="no"> |
| 10764 | 10916 | <description>Sangokushi II (Japan)</description> |
| 10765 | | <year>199?</year> |
| 10766 | | <publisher><unknown></publisher> |
| 10917 | <year>1998</year> |
| 10918 | <publisher>Koei</publisher> |
| 10919 | <info name="alt_title" value="三國志II"/> |
| 10767 | 10920 | <info name="serial" value="SLPS-01596" /> |
| 10768 | 10921 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10769 | 10922 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10775 | 10928 | |
| 10776 | 10929 | <software name="sangoku3" supported="no"> |
| 10777 | 10930 | <description>Sangokushi III (Japan)</description> |
| 10778 | | <year>199?</year> |
| 10779 | | <publisher><unknown></publisher> |
| 10931 | <year>2001</year> |
| 10932 | <publisher>Koei</publisher> |
| 10933 | <info name="alt_title" value="三國志III"/> |
| 10780 | 10934 | <info name="serial" value="SLPM-86747" /> |
| 10781 | 10935 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10782 | 10936 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10786 | 10940 | </part> |
| 10787 | 10941 | </software> |
| 10788 | 10942 | |
| 10789 | | <software name="sangokou" supported="no"> |
| 10790 | | <description>Sangokushi Koumeiden (Japan)</description> |
| 10791 | | <year>199?</year> |
| 10792 | | <publisher><unknown></publisher> |
| 10793 | | <info name="serial" value="SLPS-00688" /> |
| 10794 | | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10795 | | <part name="cdrom" interface="psx_cdrom"> |
| 10796 | | <diskarea name="cdrom"> |
| 10797 | | <disk name="sangokushi koumeiden (japan) [slps-00688]" sha1="2719dea19adbb7f9adf3ed4325cc7254bd09c1d4"/> |
| 10798 | | </diskarea> |
| 10799 | | </part> |
| 10800 | | </software> |
| 10801 | | |
| 10802 | 10943 | <software name="sangokrt" supported="no"> |
| 10803 | 10944 | <description>Sangokushi Returns (Japan)</description> |
| 10804 | | <year>199?</year> |
| 10805 | | <publisher><unknown></publisher> |
| 10945 | <year>1997</year> |
| 10946 | <publisher>Koei</publisher> |
| 10947 | <info name="alt_title" value="三國志リターンズ"/> |
| 10806 | 10948 | <info name="serial" value="SLPS-00474" /> |
| 10807 | 10949 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10808 | 10950 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10814 | 10956 | |
| 10815 | 10957 | <software name="sangoku5" supported="no"> |
| 10816 | 10958 | <description>Sangokushi V (Japan)</description> |
| 10817 | | <year>199?</year> |
| 10818 | | <publisher><unknown></publisher> |
| 10959 | <year>1997</year> |
| 10960 | <publisher>Koei</publisher> |
| 10961 | <info name="alt_title" value="三国志5繁体中文版"/> |
| 10819 | 10962 | <info name="serial" value="SCPS-45128" /> |
| 10820 | 10963 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10821 | 10964 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10827 | 10970 | |
| 10828 | 10971 | <software name="sangoku6" supported="no"> |
| 10829 | 10972 | <description>Sangokushi VI (Japan)</description> |
| 10830 | | <year>199?</year> |
| 10831 | | <publisher><unknown></publisher> |
| 10973 | <year>1998</year> |
| 10974 | <publisher>Koei</publisher> |
| 10975 | <info name="alt_title" value="三國志VI"/> |
| 10832 | 10976 | <info name="serial" value="SLPM-86129" /> |
| 10833 | 10977 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10834 | 10978 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10839 | 10983 | </software> |
| 10840 | 10984 | |
| 10841 | 10985 | <software name="sanyopac" supported="no"> |
| 10842 | | <description>Sanyo Pachinko Paradise 2 (Japan)</description> |
| 10843 | | <year>199?</year> |
| 10844 | | <publisher><unknown></publisher> |
| 10986 | <description>Sanyo Pachinko Paradise 2 - Umi Monogatari Special (Japan)</description> |
| 10987 | <year>1999</year> |
| 10988 | <publisher>Irem</publisher> |
| 10989 | <info name="alt_title" value="三洋パチンコパラダイス2"/> |
| 10845 | 10990 | <info name="serial" value="SLPS-02389" /> |
| 10846 | 10991 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10847 | 10992 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10853 | 10998 | |
| 10854 | 10999 | <software name="sarugety" supported="no"> |
| 10855 | 11000 | <description>Saru! Get You! (Japan)</description> |
| 10856 | | <year>199?</year> |
| 10857 | | <publisher><unknown></publisher> |
| 11001 | <year>1999</year> |
| 11002 | <publisher>Sony</publisher> |
| 11003 | <info name="alt_title" value="サルゲッチュ"/> |
| 10858 | 11004 | <info name="serial" value="SCPS-10091" /> |
| 10859 | 11005 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10860 | 11006 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10866 | 11012 | |
| 10867 | 11013 | <software name="satellit" supported="no"> |
| 10868 | 11014 | <description>Satelli TV (Japan)</description> |
| 10869 | | <year>199?</year> |
| 10870 | | <publisher><unknown></publisher> |
| 11015 | <year>1998</year> |
| 11016 | <publisher>Nippon Ichi</publisher> |
| 11017 | <info name="alt_title" value="サテライTV"/> |
| 10871 | 11018 | <info name="serial" value="SLPS-01203" /> |
| 10872 | 11019 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10873 | 11020 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10879 | 11026 | |
| 10880 | 11027 | <software name="satomino" supported="no"> |
| 10881 | 11028 | <description>Satomi no Nazo (Japan)</description> |
| 10882 | | <year>199?</year> |
| 10883 | | <publisher><unknown></publisher> |
| 11029 | <year>1996</year> |
| 11030 | <publisher>Sound Technology Japan</publisher> |
| 11031 | <info name="alt_title" value="里見の謎"/> |
| 10884 | 11032 | <info name="serial" value="SLPS-00613" /> |
| 10885 | 11033 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10886 | 11034 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10891 | 11039 | </software> |
| 10892 | 11040 | |
| 10893 | 11041 | <software name="schrodin" supported="no"> |
| 10894 | | <description>Schrodinger no Neko - Die Katze von Schrodinger (Japan)</description> |
| 10895 | | <year>199?</year> |
| 10896 | | <publisher><unknown></publisher> |
| 11042 | <description>Schrödinger no Neko - Die Katze von Schrödinger (Japan)</description> |
| 11043 | <year>1997</year> |
| 11044 | <publisher>Takara</publisher> |
| 11045 | <info name="alt_title" value="シュレディンガーの猫"/> |
| 10897 | 11046 | <info name="serial" value="SLPS-00780" /> |
| 10898 | 11047 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10899 | 11048 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10904 | 11053 | </software> |
| 10905 | 11054 | |
| 10906 | 11055 | <software name="sdgkvm" supported="no"> |
| 10907 | | <description>SD Gundam Eiyuuden - Daikessen!! Knight vs. Musha (Japan)</description> |
| 10908 | | <year>199?</year> |
| 10909 | | <publisher><unknown></publisher> |
| 11056 | <description>SD Gundam Eiyuuden Daikessen - Knight vs. Musha (Japan)</description> |
| 11057 | <year>2001</year> |
| 11058 | <publisher>Bandai</publisher> |
| 11059 | <info name="alt_title" value="SDガンダム英雄伝 大決戦!!騎士VS武者"/> |
| 10910 | 11060 | <info name="serial" value="SLPS-03145" /> |
| 10911 | 11061 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10912 | 11062 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10917 | 11067 | </software> |
| 10918 | 11068 | |
| 10919 | 11069 | <software name="sdgggf" supported="no"> |
| 10920 | | <description>SD Gundam G-Generation F (Japan)</description> |
| 10921 | | <year>199?</year> |
| 10922 | | <publisher><unknown></publisher> |
| 11070 | <description>SD Gundam G Generation-F (Limited Edition)(Japan)</description> |
| 11071 | <year>2000</year> |
| 11072 | <publisher>Bandai</publisher> |
| 11073 | <info name="alt_title" value="SDガンダムG GENERATION-F(限定版)"/> |
| 10923 | 11074 | <info name="serial" value="SLPS-02900, SLPS-02901, SLPS-02902" /> |
| 10924 | 11075 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10925 | 11076 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10940 | 11091 | </software> |
| 10941 | 11092 | |
| 10942 | 11093 | <software name="sdgggfif" supported="no"> |
| 10943 | | <description>SD Gundam G-Generation F if (Japan)</description> |
| 10944 | | <year>199?</year> |
| 10945 | | <publisher><unknown></publisher> |
| 11094 | <description>SD Gundam G - Generation-F.I.F (Japan)</description> |
| 11095 | <year>2001</year> |
| 11096 | <publisher>Bandai</publisher> |
| 11097 | <info name="alt_title" value="SDガンダム GGENERATION-F.I.F"/> |
| 10946 | 11098 | <info name="serial" value="SLPS-03195" /> |
| 10947 | 11099 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10948 | 11100 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10953 | 11105 | </software> |
| 10954 | 11106 | |
| 10955 | 11107 | <software name="sdggg0" supported="no"> |
| 10956 | | <description>SD Gundam G-Generation Zero (Japan)</description> |
| 10957 | | <year>199?</year> |
| 10958 | | <publisher><unknown></publisher> |
| 11108 | <description>SD Gundam G - Generation Zero (Japan)</description> |
| 11109 | <year>1999</year> |
| 11110 | <publisher>Bandai</publisher> |
| 11111 | <info name="alt_title" value="SDガンダム ジージェネレーション・ゼロ"/> |
| 10959 | 11112 | <info name="serial" value="SLPS-02200, SLPS-02201, SLPS-02202" /> |
| 10960 | 11113 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10961 | 11114 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10977 | 11130 | |
| 10978 | 11131 | <software name="seabassf" supported="no"> |
| 10979 | 11132 | <description>Seabass Fishing 2 (Japan)</description> |
| 10980 | | <year>199?</year> |
| 10981 | | <publisher><unknown></publisher> |
| 11133 | <year>1997</year> |
| 11134 | <publisher>Victor</publisher> |
| 11135 | <info name="alt_title" value="シーバス・フィッシング2"/> |
| 10982 | 11136 | <info name="serial" value="SLPS-00992" /> |
| 10983 | 11137 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10984 | 11138 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 10989 | 11143 | </software> |
| 10990 | 11144 | |
| 10991 | 11145 | <software name="seikaino" supported="no"> |
| 10992 | | <description>Seikai no Monshou (Japan)</description> |
| 10993 | | <year>199?</year> |
| 10994 | | <publisher><unknown></publisher> |
| 11146 | <description>Seikai no Monshou (Crest of the Stars) (Japan)</description> |
| 11147 | <year>2000</year> |
| 11148 | <publisher>Bandai</publisher> |
| 11149 | <info name="alt_title" value="星界の紋章"/> |
| 10995 | 11150 | <info name="serial" value="SLPS-02323" /> |
| 10996 | 11151 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 10997 | 11152 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11001 | 11156 | </part> |
| 11002 | 11157 | </software> |
| 11003 | 11158 | |
| 11159 | <software name="seikende" supported="no"> |
| 11160 | <description>Seiken Densetsu - Legend of Mana (Demo) (Japan)</description> |
| 11161 | <year>1999</year> |
| 11162 | <publisher>Squaresoft</publisher> |
| 11163 | <info name="alt_title" value=""/> |
| 11164 | <info name="serial" value="SCPS-45417" /> |
| 11165 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11166 | <part name="cdrom" interface="psx_cdrom"> |
| 11167 | <diskarea name="cdrom"> |
| 11168 | <disk name="square's preview 5 (japan) (demo) [scps-45417]" sha1="2e84ab79573ce07bb78480a9d75d601e14d07895"/> |
| 11169 | </diskarea> |
| 11170 | </part> |
| 11171 | </software> |
| 11172 | |
| 11004 | 11173 | <software name="seireish" supported="no"> |
| 11005 | | <description>Seirei Shoukan - Princess of Darkness (Japan)</description> |
| 11006 | | <year>199?</year> |
| 11007 | | <publisher><unknown></publisher> |
| 11174 | <description>Seirishoukan - Princess of Darkness (Japan)</description> |
| 11175 | <year>1998</year> |
| 11176 | <publisher>Shoeisha</publisher> |
| 11177 | <info name="alt_title" value="精霊召喚 〜プリンセス オブ ダークネス〜"/> |
| 11008 | 11178 | <info name="serial" value="SLPS-01271" /> |
| 11009 | 11179 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11010 | 11180 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11016 | 11186 | |
| 11017 | 11187 | <software name="sengokum" supported="no"> |
| 11018 | 11188 | <description>Sengoku Mugen (Japan)</description> |
| 11019 | | <year>199?</year> |
| 11020 | | <publisher><unknown></publisher> |
| 11189 | <year>2001</year> |
| 11190 | <publisher>Banpresto</publisher> |
| 11191 | <info name="alt_title" value="戦国夢幻"/> |
| 11021 | 11192 | <info name="serial" value="SLPS-03151" /> |
| 11022 | 11193 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11023 | 11194 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11028 | 11199 | </software> |
| 11029 | 11200 | |
| 11030 | 11201 | <software name="senkaita" supported="no"> |
| 11031 | | <description>Senkai Taisen - TV Animation Senkaiden Houshin Engi yori (Japan)</description> |
| 11032 | | <year>199?</year> |
| 11033 | | <publisher><unknown></publisher> |
| 11202 | <description>Senkai Taisen TV Animation Senkaiden Houshin Engi Yori (Japan)</description> |
| 11203 | <year>2000</year> |
| 11204 | <publisher>Bandai</publisher> |
| 11205 | <info name="alt_title" value="仙界大戦 〜TVアニメーション仙界伝封神演義より〜"/> |
| 11034 | 11206 | <info name="serial" value="SLPS-02736" /> |
| 11035 | 11207 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11036 | 11208 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11041 | 11213 | </software> |
| 11042 | 11214 | |
| 11043 | 11215 | <software name="senryaku" supported="no"> |
| 11044 | | <description>Senryaku Shidan - Tora! Tora! Tora! Rikusen-hen (Japan)</description> |
| 11045 | | <year>199?</year> |
| 11046 | | <publisher><unknown></publisher> |
| 11216 | <description>Senryaku Shidan - Tora! Tora! Tora! Rikusenhen (Japan)</description> |
| 11217 | <year>2000</year> |
| 11218 | <publisher>DaZZ</publisher> |
| 11219 | <info name="alt_title" value="戦略師団 トラ!トラ!トラ! 陸戦編"/> |
| 11047 | 11220 | <info name="serial" value="SLPS-02631" /> |
| 11048 | 11221 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11049 | 11222 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11055 | 11228 | |
| 11056 | 11229 | <software name="sentimen" supported="no"> |
| 11057 | 11230 | <description>Sentimental Graffiti (Japan)</description> |
| 11058 | | <year>199?</year> |
| 11059 | | <publisher><unknown></publisher> |
| 11231 | <year>2001</year> |
| 11232 | <publisher>NEC</publisher> |
| 11233 | <info name="alt_title" value="センチメンタルグラフティ"/> |
| 11060 | 11234 | <info name="serial" value="SLPS-03184" /> |
| 11061 | 11235 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11062 | 11236 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11067 | 11241 | </software> |
| 11068 | 11242 | |
| 11069 | 11243 | <software name="sentouko" supported="no"> |
| 11070 | | <description>Sentou Kokka Kai Improved (Japan)</description> |
| 11071 | | <year>199?</year> |
| 11072 | | <publisher><unknown></publisher> |
| 11244 | <description>Sentou Kokka Kai - Improved (Japan)</description> |
| 11245 | <year>1997</year> |
| 11246 | <publisher>Sony</publisher> |
| 11247 | <info name="alt_title" value="戦闘国家-改- IMPROVED"/> |
| 11073 | 11248 | <info name="serial" value="SCPS-10034" /> |
| 11074 | 11249 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11075 | 11250 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11081 | 11256 | |
| 11082 | 11257 | <software name="shachoue" supported="no"> |
| 11083 | 11258 | <description>Shachou Eiyuuden - The Eagle Shooting Heroes (Japan)</description> |
| 11084 | | <year>199?</year> |
| 11085 | | <publisher><unknown></publisher> |
| 11259 | <year>2000</year> |
| 11260 | <publisher>Sony</publisher> |
| 11261 | <info name="alt_title" value="射雕英雄传"/> |
| 11086 | 11262 | <info name="serial" value="SCPS-45510" /> |
| 11087 | 11263 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11088 | 11264 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11093 | 11269 | </software> |
| 11094 | 11270 | |
| 11095 | 11271 | <software name="shibasu1" supported="no"> |
| 11096 | | <description>Shibasu 1-2-3 Destiny! (Japan)</description> |
| 11097 | | <year>199?</year> |
| 11098 | | <publisher><unknown></publisher> |
| 11272 | <description>Shibas 1-2-3 Destiny! Unmei O Kaerusha! (Japan)</description> |
| 11273 | <year>2000</year> |
| 11274 | <publisher>Jaleco</publisher> |
| 11275 | <info name="alt_title" value="シーバス 1-2-3"/> |
| 11099 | 11276 | <info name="serial" value="SLPS-01893" /> |
| 11100 | 11277 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11101 | 11278 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11107 | 11284 | |
| 11108 | 11285 | <software name="shinmaso" supported="no"> |
| 11109 | 11286 | <description>Shin Masoukishin - Panzer Warfare (Japan)</description> |
| 11110 | | <year>199?</year> |
| 11111 | | <publisher><unknown></publisher> |
| 11287 | <year>1999</year> |
| 11288 | <publisher>Banpresto</publisher> |
| 11289 | <info name="alt_title" value="真・魔装機神"/> |
| 11112 | 11290 | <info name="serial" value="SLPS-02319" /> |
| 11113 | 11291 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11114 | 11292 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11120 | 11298 | |
| 11121 | 11299 | <software name="shinmega" supported="no"> |
| 11122 | 11300 | <description>Shin Megami Tensei (Japan)</description> |
| 11123 | | <year>199?</year> |
| 11124 | | <publisher><unknown></publisher> |
| 11301 | <year>2001</year> |
| 11302 | <publisher>Atlus</publisher> |
| 11303 | <info name="alt_title" value="真・女神転生"/> |
| 11125 | 11304 | <info name="serial" value="SLPS-03170" /> |
| 11126 | 11305 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11127 | 11306 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11132 | 11311 | </software> |
| 11133 | 11312 | |
| 11134 | 11313 | <software name="shinsdse" supported="no"> |
| 11135 | | <description>Shin SD Sengokuden Kidou Musha Taisen [Limited Edition] (Japan)</description> |
| 11136 | | <year>199?</year> |
| 11137 | | <publisher><unknown></publisher> |
| 11314 | <description>Shin SD Sengokuden - Kidou Musha Taisen (Limited Edition) (Japan)</description> |
| 11315 | <year>1996</year> |
| 11316 | <publisher>Bandai</publisher> |
| 11317 | <info name="alt_title" value="新SD戦国伝 機動武者大戦(限定版)"/> |
| 11138 | 11318 | <info name="serial" value="SLPS-00576" /> |
| 11139 | 11319 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11140 | 11320 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11147 | 11327 | <!-- boot OK --> |
| 11148 | 11328 | <software name="shinthem" supported="no"> |
| 11149 | 11329 | <description>Shin Theme Park (Japan)</description> |
| 11150 | | <year>199?</year> |
| 11151 | | <publisher><unknown></publisher> |
| 11330 | <year>1997</year> |
| 11331 | <publisher>Electronic Arts</publisher> |
| 11332 | <info name="alt_title" value="新テーマパーク"/> |
| 11152 | 11333 | <info name="serial" value="SLPS-00810" /> |
| 11153 | 11334 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11154 | 11335 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11160 | 11341 | |
| 11161 | 11342 | <software name="shinriga" supported="no"> |
| 11162 | 11343 | <description>Shinri Game, The (Japan)</description> |
| 11163 | | <year>199?</year> |
| 11164 | | <publisher><unknown></publisher> |
| 11344 | <year>1996</year> |
| 11345 | <publisher>Visit</publisher> |
| 11346 | <info name="alt_title" value="ザ・心理ゲーム"/> |
| 11165 | 11347 | <info name="serial" value="SLPS-00169" /> |
| 11166 | 11348 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11167 | 11349 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11172 | 11354 | </software> |
| 11173 | 11355 | |
| 11174 | 11356 | <software name="shinseid" supported="no"> |
| 11175 | | <description>Shinseiden Megaseed Fukkatsu-hen (Japan)</description> |
| 11176 | | <year>199?</year> |
| 11177 | | <publisher><unknown></publisher> |
| 11357 | <description>Shinseiden Megaseed Fukkatsu-Hen (Japan)</description> |
| 11358 | <year>1997</year> |
| 11359 | <publisher>Banpresto</publisher> |
| 11360 | <info name="alt_title" value="神聖伝メガシード 復活編"/> |
| 11178 | 11361 | <info name="serial" value="SLPS-00925" /> |
| 11179 | 11362 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11180 | 11363 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11186 | 11369 | |
| 11187 | 11370 | <software name="shinsets" supported="no"> |
| 11188 | 11371 | <description>Shinsetsu Samurai Spirits - Bushido Retsuden (Japan)</description> |
| 11189 | | <year>199?</year> |
| 11190 | | <publisher><unknown></publisher> |
| 11372 | <year>1997</year> |
| 11373 | <publisher>SNK</publisher> |
| 11374 | <info name="alt_title" value="真説サムライスピリッツ 武士道烈伝"/> |
| 11191 | 11375 | <info name="serial" value="SLPS-00814" /> |
| 11192 | 11376 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11193 | 11377 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11198 | 11382 | </software> |
| 11199 | 11383 | |
| 11200 | 11384 | <software name="shiritsu" supported="no"> |
| 11201 | | <description>Shiritsu Justice Gakuen (Japan)</description> |
| 11202 | | <year>199?</year> |
| 11203 | | <publisher><unknown></publisher> |
| 11385 | <description>Shiritsu Justice Gakuen - Legion of Heroes (Japan)</description> |
| 11386 | <year>1998</year> |
| 11387 | <publisher>Capcom</publisher> |
| 11388 | <info name="alt_title" value="私立ジャスティス学園 〜 LEGION OF HEROES 〜"/> |
| 11204 | 11389 | <info name="serial" value="SLPS-01240, SLPS-01241" /> |
| 11205 | 11390 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11206 | 11391 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11217 | 11402 | |
| 11218 | 11403 | <software name="shirits2" supported="no"> |
| 11219 | 11404 | <description>Shiritsu Justice Gakuen - Nekketsu Seishun Nikki 2 (Japan)</description> |
| 11220 | | <year>199?</year> |
| 11221 | | <publisher><unknown></publisher> |
| 11405 | <year>1999</year> |
| 11406 | <publisher>Capcom</publisher> |
| 11407 | <info name="alt_title" value="私立ジャスティス学園-熱血青春日記2-"/> |
| 11222 | 11408 | <info name="serial" value="SLPS-02120" /> |
| 11223 | 11409 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11224 | 11410 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11230 | 11416 | |
| 11231 | 11417 | <software name="shoryusa" supported="no"> |
| 11232 | 11418 | <description>Shoryu Sangokuengi (Japan)</description> |
| 11233 | | <year>199?</year> |
| 11234 | | <publisher><unknown></publisher> |
| 11419 | <year>1996</year> |
| 11420 | <publisher>Imageneer</publisher> |
| 11421 | <info name="alt_title" value="昇龍三国演義"/> |
| 11235 | 11422 | <info name="serial" value="SLPS-00253" /> |
| 11236 | 11423 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11237 | 11424 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11243 | 11430 | |
| 11244 | 11431 | <software name="shuranom" supported="no"> |
| 11245 | 11432 | <description>Shura no Mon (Japan)</description> |
| 11246 | | <year>199?</year> |
| 11247 | | <publisher><unknown></publisher> |
| 11433 | <year>1998</year> |
| 11434 | <publisher>Kodansha</publisher> |
| 11435 | <info name="alt_title" value="修羅の門"/> |
| 11248 | 11436 | <info name="serial" value="SLPS-01202" /> |
| 11249 | 11437 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11250 | 11438 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11257 | 11445 | <!-- boot OK --> |
| 11258 | 11446 | <software name="sidebysi" supported="no"> |
| 11259 | 11447 | <description>Side by Side Special 2000 (Japan)</description> |
| 11260 | | <year>199?</year> |
| 11261 | | <publisher><unknown></publisher> |
| 11448 | <year>1999</year> |
| 11449 | <publisher>Taito</publisher> |
| 11450 | <info name="alt_title" value="サイドバイサイドスペシャル2000"/> |
| 11262 | 11451 | <info name="serial" value="SLPM-86344" /> |
| 11263 | 11452 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11264 | 11453 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11269 | 11458 | </software> |
| 11270 | 11459 | |
| 11271 | 11460 | <software name="sidepock" supported="no"> |
| 11272 | | <description>Side Pocket 3 (Japan)</description> |
| 11273 | | <year>199?</year> |
| 11274 | | <publisher><unknown></publisher> |
| 11461 | <description>Side Pocket 3 - 3D Polygon Billiard Game (Japan)</description> |
| 11462 | <year>1998</year> |
| 11463 | <publisher>Data East</publisher> |
| 11464 | <info name="alt_title" value="サイドポケット3"/> |
| 11275 | 11465 | <info name="serial" value="SLPS-01079" /> |
| 11276 | 11466 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11277 | 11467 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11283 | 11473 | |
| 11284 | 11474 | <software name="sidewind" supported="no"> |
| 11285 | 11475 | <description>Sidewinder (Japan)</description> |
| 11286 | | <year>199?</year> |
| 11287 | | <publisher><unknown></publisher> |
| 11476 | <year>1996</year> |
| 11477 | <publisher>Asmik</publisher> |
| 11478 | <info name="alt_title" value="サイドワインダー"/> |
| 11288 | 11479 | <info name="serial" value="SLPS-00156" /> |
| 11289 | 11480 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11290 | 11481 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11295 | 11486 | </software> |
| 11296 | 11487 | |
| 11297 | 11488 | <software name="silentmo" supported="no"> |
| 11298 | | <description>Silent Mobius - Genei no Datenshi (Japan)</description> |
| 11299 | | <year>199?</year> |
| 11300 | | <publisher><unknown></publisher> |
| 11489 | <description>Silent Möbius - Genei no Datenshi (Japan)</description> |
| 11490 | <year>1998</year> |
| 11491 | <publisher>Bandai</publisher> |
| 11492 | <info name="alt_title" value="サイレントメビウス 幻影の堕天使"/> |
| 11301 | 11493 | <info name="serial" value="SLPS-01803" /> |
| 11302 | 11494 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11303 | 11495 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11309 | 11501 | |
| 11310 | 11502 | <software name="silhouet" supported="no"> |
| 11311 | 11503 | <description>Silhouette Mirage - Reprogrammed Hope (Japan)</description> |
| 11312 | | <year>199?</year> |
| 11313 | | <publisher><unknown></publisher> |
| 11504 | <year>1998</year> |
| 11505 | <publisher>ESP</publisher> |
| 11506 | <info name="alt_title" value="シルエットミラージュ"/> |
| 11314 | 11507 | <info name="serial" value="SLPS-01449" /> |
| 11315 | 11508 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11316 | 11509 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11322 | 11515 | |
| 11323 | 11516 | <software name="silhstor" supported="no"> |
| 11324 | 11517 | <description>Silhouette Stories (Japan)</description> |
| 11325 | | <year>199?</year> |
| 11326 | | <publisher><unknown></publisher> |
| 11518 | <year>1996</year> |
| 11519 | <publisher>Kaneko</publisher> |
| 11520 | <info name="alt_title" value="シルエット☆ストーリィズ"/> |
| 11327 | 11521 | <info name="serial" value="SLPS-00374" /> |
| 11328 | 11522 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11329 | 11523 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11335 | 11529 | |
| 11336 | 11530 | <!-- black screen --> |
| 11337 | 11531 | <software name="s15j_01" supported="no"> |
| 11338 | | <description>Simple 1500 Jitsuyou Series Vol.01 - Norikae Annai - 2000 Edition (Japan)</description> |
| 11339 | | <year>199?</year> |
| 11340 | | <publisher><unknown></publisher> |
| 11532 | <description>Simple 1500 Jitsuyou Series Vol.01 - Norikae Annai -2000 Edition- (Japan)</description> |
| 11533 | <year>2000</year> |
| 11534 | <publisher>D3</publisher> |
| 11535 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.01 乗換案内〜2000年版〜"/> |
| 11341 | 11536 | <info name="serial" value="SLPS-02842" /> |
| 11342 | 11537 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11343 | 11538 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11350 | 11545 | <!-- boot ok --> |
| 11351 | 11546 | <software name="s15j_03" supported="no"> |
| 11352 | 11547 | <description>Simple 1500 Jitsuyou Series Vol.03 - Seimei Handan (Japan)</description> |
| 11353 | | <year>199?</year> |
| 11354 | | <publisher><unknown></publisher> |
| 11548 | <year>2000</year> |
| 11549 | <publisher>D3</publisher> |
| 11550 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.03 THE 姓名判断"/> |
| 11355 | 11551 | <info name="serial" value="SLPS-02841" /> |
| 11356 | 11552 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11357 | 11553 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11364 | 11560 | <!-- black screen --> |
| 11365 | 11561 | <software name="s15j_04" supported="no"> |
| 11366 | 11562 | <description>Simple 1500 Jitsuyou Series Vol.04 - Ryouri (Japan)</description> |
| 11367 | | <year>199?</year> |
| 11368 | | <publisher><unknown></publisher> |
| 11563 | <year>2000</year> |
| 11564 | <publisher>D3</publisher> |
| 11565 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.04 THE 料理〜定番料理レシピ集〜"/> |
| 11369 | 11566 | <info name="serial" value="SLPS-02839" /> |
| 11370 | 11567 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11371 | 11568 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11378 | 11575 | <!-- boot ok --> |
| 11379 | 11576 | <software name="s15j_05" supported="no"> |
| 11380 | 11577 | <description>Simple 1500 Jitsuyou Series Vol.05 - Kusuri no Jiten - Pill Book 2001 Edition (Japan)</description> |
| 11381 | | <year>199?</year> |
| 11382 | | <publisher><unknown></publisher> |
| 11578 | <year>2001</year> |
| 11579 | <publisher>D3</publisher> |
| 11580 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.05 薬の事典〜ピルブック2001年版〜"/> |
| 11383 | 11581 | <info name="serial" value="SLPM-86706" /> |
| 11384 | 11582 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11385 | 11583 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11392 | 11590 | <!-- black screen --> |
| 11393 | 11591 | <software name="s15j_06" supported="no"> |
| 11394 | 11592 | <description>Simple 1500 Jitsuyou Series Vol.06 - Cocktail no Recipe (Japan)</description> |
| 11395 | | <year>199?</year> |
| 11396 | | <publisher><unknown></publisher> |
| 11593 | <year>2001</year> |
| 11594 | <publisher>D3</publisher> |
| 11595 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.06 カクテルのレシピ"/> |
| 11397 | 11596 | <info name="serial" value="SLPM-86707" /> |
| 11398 | 11597 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11399 | 11598 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11406 | 11605 | <!-- black screen --> |
| 11407 | 11606 | <software name="s15j_07" supported="no"> |
| 11408 | 11607 | <description>Simple 1500 Jitsuyou Series Vol.07 - Tanoshiku Manabu Unten Menkyo (Japan)</description> |
| 11409 | | <year>199?</year> |
| 11410 | | <publisher><unknown></publisher> |
| 11608 | <year>2001</year> |
| 11609 | <publisher>D3</publisher> |
| 11610 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.07 楽しく学ぶ運転免許"/> |
| 11411 | 11611 | <info name="serial" value="SLPM-86797" /> |
| 11412 | 11612 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11413 | 11613 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11420 | 11620 | <!-- MESS crash after company logos --> |
| 11421 | 11621 | <software name="s15j_08" supported="no"> |
| 11422 | 11622 | <description>Simple 1500 Jitsuyou Series Vol.08 - 1-Jikan de Wakaru Kabushiki Toushi (Japan)</description> |
| 11423 | | <year>199?</year> |
| 11424 | | <publisher><unknown></publisher> |
| 11623 | <year>2001</year> |
| 11624 | <publisher>D3</publisher> |
| 11625 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.08 1時間でわかる株式投資"/> |
| 11425 | 11626 | <info name="serial" value="SLPM-86708" /> |
| 11426 | 11627 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11427 | 11628 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11434 | 11635 | <!-- black screen --> |
| 11435 | 11636 | <software name="s15j_09" supported="no"> |
| 11436 | 11637 | <description>Simple 1500 Jitsuyou Series Vol.09 - Watashi Style no Aromatherapy (Japan)</description> |
| 11437 | | <year>199?</year> |
| 11438 | | <publisher><unknown></publisher> |
| 11638 | <year>2001</year> |
| 11639 | <publisher>D3</publisher> |
| 11640 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.09 わたしスタイルのアロマセラピー"/> |
| 11439 | 11641 | <info name="serial" value="SLPM-86843" /> |
| 11440 | 11642 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11441 | 11643 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11448 | 11650 | <!-- black screen --> |
| 11449 | 11651 | <software name="s15j_10" supported="no"> |
| 11450 | 11652 | <description>Simple 1500 Jitsuyou Series Vol.10 - Tarot Uranai (Japan)</description> |
| 11451 | | <year>199?</year> |
| 11452 | | <publisher><unknown></publisher> |
| 11653 | <year>2001</year> |
| 11654 | <publisher>D3</publisher> |
| 11655 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.10 タロット占い"/> |
| 11453 | 11656 | <info name="serial" value="SLPM-86913" /> |
| 11454 | 11657 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11455 | 11658 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11462 | 11665 | <!-- boot ok --> |
| 11463 | 11666 | <software name="s15j_11" supported="no"> |
| 11464 | 11667 | <description>Simple 1500 Jitsuyou Series Vol.11 - Katei de Dekiru Tsubo Shiatsu (Japan)</description> |
| 11465 | | <year>199?</year> |
| 11466 | | <publisher><unknown></publisher> |
| 11668 | <year>2001</year> |
| 11669 | <publisher>D3</publisher> |
| 11670 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.11 家庭でできるツボ指圧"/> |
| 11467 | 11671 | <info name="serial" value="SLPM-86968" /> |
| 11468 | 11672 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11469 | 11673 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11476 | 11680 | <!-- boot ok --> |
| 11477 | 11681 | <software name="s15j_12" supported="no"> |
| 11478 | 11682 | <description>Simple 1500 Jitsuyou Series Vol.12 - Katei no Igaku (Japan)</description> |
| 11479 | | <year>199?</year> |
| 11480 | | <publisher><unknown></publisher> |
| 11683 | <year>2001</year> |
| 11684 | <publisher>D3</publisher> |
| 11685 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.12 家庭の医学"/> |
| 11481 | 11686 | <info name="serial" value="SLPM-86969" /> |
| 11482 | 11687 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11483 | 11688 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11490 | 11695 | <!-- boot ok --> |
| 11491 | 11696 | <software name="s15j_13" supported="no"> |
| 11492 | 11697 | <description>Simple 1500 Jitsuyou Series Vol.13 - Shinri Game - Soreike X Kokoroji (Japan)</description> |
| 11493 | | <year>199?</year> |
| 11494 | | <publisher><unknown></publisher> |
| 11698 | <year>2002</year> |
| 11699 | <publisher>D3</publisher> |
| 11700 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.13 心理ゲーム 〜それいけ×ココロジー ココロのウソの摩訶不思議〜"/> |
| 11495 | 11701 | <info name="serial" value="SLPM-87016" /> |
| 11496 | 11702 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11497 | 11703 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11506 | 11712 | <description>Simple 1500 Jitsuyou Series Vol.14 - Kurashi no Manner (Japan)</description> |
| 11507 | 11713 | <year>199?</year> |
| 11508 | 11714 | <publisher><unknown></publisher> |
| 11715 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.14 暮らしのマナー 〜冠婚葬祭編〜"/> |
| 11509 | 11716 | <info name="serial" value="SLPM-87022" /> |
| 11510 | 11717 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11511 | 11718 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11517 | 11724 | |
| 11518 | 11725 | <!-- boot ok --> |
| 11519 | 11726 | <software name="s15j_15" supported="no"> |
| 11520 | | <description>Simple 1500 Jitsuyou Series Vol.15 - Inu no Kaikata (Japan)</description> |
| 11521 | | <year>199?</year> |
| 11522 | | <publisher><unknown></publisher> |
| 11727 | <description>Simple 1500 Jitsuyou Series Vol.15 - Inu no Kaikata - Sekai no Inu Catalog (Japan)</description> |
| 11728 | <year>2002</year> |
| 11729 | <publisher>D3</publisher> |
| 11730 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.15 犬の飼い方 〜世界の犬カタログ〜"/> |
| 11523 | 11731 | <info name="serial" value="SLPM-87051" /> |
| 11524 | 11732 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11525 | 11733 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11531 | 11739 | |
| 11532 | 11740 | <!-- boot ok --> |
| 11533 | 11741 | <software name="s15j_16" supported="no"> |
| 11534 | | <description>Simple 1500 Jitsuyou Series Vol.16 - Neko no Kaikata (Japan)</description> |
| 11535 | | <year>199?</year> |
| 11536 | | <publisher><unknown></publisher> |
| 11742 | <description>Simple 1500 Jitsuyou Series Vol.16 - Neko no Kaikata - Sekai no Neko Catalo (Japan)</description> |
| 11743 | <year>2002</year> |
| 11744 | <publisher>D3</publisher> |
| 11745 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.16 猫の飼い方 〜世界の猫カタログ〜"/> |
| 11537 | 11746 | <info name="serial" value="SLPM-87052" /> |
| 11538 | 11747 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11539 | 11748 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11546 | 11755 | <!-- black screen --> |
| 11547 | 11756 | <software name="s15j_17" supported="no"> |
| 11548 | 11757 | <description>Simple 1500 Jitsuyou Series Vol.17 - Planetarium (Japan)</description> |
| 11549 | | <year>199?</year> |
| 11550 | | <publisher><unknown></publisher> |
| 11758 | <year>2002</year> |
| 11759 | <publisher>D3</publisher> |
| 11760 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.17 THE プラネタリウム"/> |
| 11551 | 11761 | <info name="serial" value="SLPM-87049" /> |
| 11552 | 11762 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11553 | 11763 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11559 | 11769 | |
| 11560 | 11770 | <!-- black screen --> |
| 11561 | 11771 | <software name="s15j_18" supported="no"> |
| 11562 | | <description>Simple 1500 Jitsuyou Series Vol.18 - Kanji Quiz - Kanji Kentei Ni Challenge (Japan)</description> |
| 11563 | | <year>199?</year> |
| 11564 | | <publisher><unknown></publisher> |
| 11565 | | <info name="serial" value="SLPS-3186" /> |
| 11772 | <description>Simple 1500 Jitsuyou Series Vol.18 - Kanji Quiz - Kanji Keitei ni Challenge (Japan)</description> |
| 11773 | <year>2002</year> |
| 11774 | <publisher>D3</publisher> |
| 11775 | <info name="alt_title" value="SIMPLE1500実用シリーズ Vol.18 THE 漢字クイズ 〜漢字検定にチャレンジ〜"/> |
| 11776 | <info name="serial" value="SLPM-87072" /> |
| 11566 | 11777 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11567 | 11778 | <part name="cdrom" interface="psx_cdrom"> |
| 11568 | 11779 | <diskarea name="cdrom"> |
| 11569 | | <disk name="simple 1500 jitsuyou series vol.18 - kanji quiz - kanji kentei ni challenge (japan) [slps-3186]" sha1="a8ad5f5ac74436bf7ebbad9faa20f4f04d1320e4"/> |
| 11780 | <disk name="simple 1500 jitsuyou series vol.18 - kanji quiz - kanji kentei ni challenge (japan) [slpm-87072]" sha1="a8ad5f5ac74436bf7ebbad9faa20f4f04d1320e4"/> |
| 11570 | 11781 | </diskarea> |
| 11571 | 11782 | </part> |
| 11572 | 11783 | </software> |
| 11573 | 11784 | |
| 11574 | 11785 | <software name="s15_h01" supported="no"> |
| 11575 | | <description>Simple 1500 Series Hello Kitty Vol.01 - Hello Kitty Bowling (Japan)</description> |
| 11576 | | <year>199?</year> |
| 11577 | | <publisher><unknown></publisher> |
| 11786 | <description>Simple 1500 Series - Hello Kitty vol.01 - Hello Kitty Bowling (Japan)</description> |
| 11787 | <year>2001</year> |
| 11788 | <publisher>D3</publisher> |
| 11789 | <info name="alt_title" value="SIMPLE1500シリーズ ハローキティ Vol.01 Hello Kitty ボウリング"/> |
| 11578 | 11790 | <info name="serial" value="SLPM-86866" /> |
| 11579 | 11791 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11580 | 11792 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11586 | 11798 | |
| 11587 | 11799 | <software name="s15_h02" supported="no"> |
| 11588 | 11800 | <description>Simple 1500 Series Hello Kitty Vol.02 - Hello Kitty Illust Puzzle (Japan)</description> |
| 11589 | | <year>199?</year> |
| 11590 | | <publisher><unknown></publisher> |
| 11801 | <year>2001</year> |
| 11802 | <publisher>D3</publisher> |
| 11803 | <info name="alt_title" value="SIMPLE1500シリーズ ハローキティ Vol.02 Hello Kitty イラストパズル"/> |
| 11591 | 11804 | <info name="serial" value="SLPM-86867" /> |
| 11592 | 11805 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11593 | 11806 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11598 | 11811 | </software> |
| 11599 | 11812 | |
| 11600 | 11813 | <software name="s15_h03" supported="no"> |
| 11601 | | <description>Simple 1500 Series Hello Kitty Vol.03 - Hello Kitty Block Kuzushi (Japan)</description> |
| 11814 | <description> Simple 1500 Series Hello Kitty vol.03 - Hello Kitty Block Kuzushi (Japan)</description> |
| 11602 | 11815 | <year>199?</year> |
| 11603 | 11816 | <publisher><unknown></publisher> |
| 11817 | <info name="alt_title" value="SIMPLE1500シリーズ ハローキティ Vol.03 Hello Kitty ブロックくずし"/> |
| 11604 | 11818 | <info name="serial" value="SLPM-86911" /> |
| 11605 | 11819 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11606 | 11820 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11611 | 11825 | </software> |
| 11612 | 11826 | |
| 11613 | 11827 | <software name="s15_h04" supported="no"> |
| 11614 | | <description>Simple 1500 Series Hello Kitty Vol.04 - Trump (Japan)</description> |
| 11615 | | <year>199?</year> |
| 11616 | | <publisher><unknown></publisher> |
| 11828 | <description>Simple 1500 Series Hello Kitty Vol.04 - Hello Kitty Trump (Japan)</description> |
| 11829 | <year>2001</year> |
| 11830 | <publisher>D3</publisher> |
| 11831 | <info name="alt_title" value="SIMPLE1500シリーズ ハローキティ Vol.04 Hello Kitty トランプ"/> |
| 11617 | 11832 | <info name="serial" value="SLPM-86910" /> |
| 11618 | 11833 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11619 | 11834 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11624 | 11839 | </software> |
| 11625 | 11840 | |
| 11626 | 11841 | <software name="s15_37" supported="no"> |
| 11627 | | <description>Simple 1500 Series Vol.037 - The Illustration Puzzle & Slide Puzzle (Japan)</description> |
| 11628 | | <year>199?</year> |
| 11629 | | <publisher><unknown></publisher> |
| 11842 | <description>Simple 1500 Series Vol.37 - The Illustration Puzzle & Slide Puzzle (Japan)</description> |
| 11843 | <year>2000</year> |
| 11844 | <publisher>D3</publisher> |
| 11845 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.37 THE イラストパズル&スライドパズル"/> |
| 11630 | 11846 | <info name="serial" value="SLPS-02958" /> |
| 11631 | 11847 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11632 | 11848 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11637 | 11853 | </software> |
| 11638 | 11854 | |
| 11639 | 11855 | <software name="s15_51" supported="no"> |
| 11640 | | <description>Simple 1500 Series Vol.051 - The Jigsaw Puzzle (Japan)</description> |
| 11641 | | <year>199?</year> |
| 11642 | | <publisher><unknown></publisher> |
| 11856 | <description>Simple 1500 Series vol.51 - The Jigsaw Puzzle (Japan)</description> |
| 11857 | <year>2000</year> |
| 11858 | <publisher>D3</publisher> |
| 11859 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.51 THE ジグソーパズル"/> |
| 11643 | 11860 | <info name="serial" value="SLPM-86700" /> |
| 11644 | 11861 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11645 | 11862 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11650 | 11867 | </software> |
| 11651 | 11868 | |
| 11652 | 11869 | <software name="s15_63" supported="no"> |
| 11653 | | <description>Simple 1500 Series Vol.063 - The Gun Shooting 2 (Japan)</description> |
| 11654 | | <year>199?</year> |
| 11655 | | <publisher><unknown></publisher> |
| 11870 | <description>Simple 1500 Series vol.63 - The Gun Shooting 2 (Japan)</description> |
| 11871 | <year>2001</year> |
| 11872 | <publisher>D3</publisher> |
| 11873 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.63 THE ガンシューティング2"/> |
| 11656 | 11874 | <info name="serial" value="SLPM-86816" /> |
| 11657 | 11875 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11658 | 11876 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11663 | 11881 | </software> |
| 11664 | 11882 | |
| 11665 | 11883 | <software name="s15_67" supported="no"> |
| 11666 | | <description>Simple 1500 Series Vol.067 - The Soccer - Dynamite Soccer 1500 (Japan)</description> |
| 11667 | | <year>199?</year> |
| 11668 | | <publisher><unknown></publisher> |
| 11884 | <description>Simple 1500 Series vol.67 - The Soccer - Dynamite Soccer 1500 (Japan)</description> |
| 11885 | <year>2001</year> |
| 11886 | <publisher>D3</publisher> |
| 11887 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.67 THE サッカー 〜ダイナマイトサッカー1500〜"/> |
| 11669 | 11888 | <info name="serial" value="SLPM-86864" /> |
| 11670 | 11889 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11671 | 11890 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11676 | 11895 | </software> |
| 11677 | 11896 | |
| 11678 | 11897 | <software name="s15_71" supported="no"> |
| 11679 | | <description>Simple 1500 Series Vol.071 - The Renai Simulation 2 (Japan)</description> |
| 11680 | | <year>199?</year> |
| 11681 | | <publisher><unknown></publisher> |
| 11898 | <description>Simple 1500 Series vol.71 - The Renai Simulation 2 (Japan)</description> |
| 11899 | <year>2001</year> |
| 11900 | <publisher>D3</publisher> |
| 11901 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.71 THE 恋愛シミュレーション2 〜ふれあい〜"/> |
| 11682 | 11902 | <info name="serial" value="SLPM-86870" /> |
| 11683 | 11903 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11684 | 11904 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11689 | 11909 | </software> |
| 11690 | 11910 | |
| 11691 | 11911 | <software name="s15_72" supported="no"> |
| 11692 | | <description>Simple 1500 Series Vol.072 - The Beach Volley (Japan)</description> |
| 11693 | | <year>199?</year> |
| 11694 | | <publisher><unknown></publisher> |
| 11912 | <description>Simple 1500 Series vol.72 - The Beach Volley (Japan)</description> |
| 11913 | <year>2001</year> |
| 11914 | <publisher>D3</publisher> |
| 11915 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.72 THE ビーチバレー"/> |
| 11695 | 11916 | <info name="serial" value="SLPM-86871" /> |
| 11696 | 11917 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11697 | 11918 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11702 | 11923 | </software> |
| 11703 | 11924 | |
| 11704 | 11925 | <software name="s15_73" supported="no"> |
| 11705 | | <description>Simple 1500 Series Vol.073 - The Invader - Space Invaders 1500 (Japan)</description> |
| 11706 | | <year>199?</year> |
| 11707 | | <publisher><unknown></publisher> |
| 11926 | <description>Simple 1500 Series vol.73 - The Invaders - Space Invaders 1500 (Japan)</description> |
| 11927 | <year>2001</year> |
| 11928 | <publisher>D3</publisher> |
| 11929 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.73 THE インベーダー"/> |
| 11708 | 11930 | <info name="serial" value="SLPM-86900" /> |
| 11709 | 11931 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11710 | 11932 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11715 | 11937 | </software> |
| 11716 | 11938 | |
| 11717 | 11939 | <software name="s15_76" supported="no"> |
| 11718 | | <description>Simple 1500 Series Vol.076 - The Dodge Ball (Japan)</description> |
| 11719 | | <year>199?</year> |
| 11720 | | <publisher><unknown></publisher> |
| 11940 | <description>Simple 1500 Series vol.76 - The Dodgeball (Japan)</description> |
| 11941 | <year>2001</year> |
| 11942 | <publisher>D3</publisher> |
| 11943 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.76 THE ドッヂボール"/> |
| 11721 | 11944 | <info name="serial" value="SLPM-86914" /> |
| 11722 | 11945 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11723 | 11946 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11728 | 11951 | </software> |
| 11729 | 11952 | |
| 11730 | 11953 | <software name="s15_83" supported="no"> |
| 11731 | | <description>Simple 1500 Series Vol.083 - The Wake Board - Burstrick Wake Boarding (Japan)</description> |
| 11732 | | <year>199?</year> |
| 11733 | | <publisher><unknown></publisher> |
| 11954 | <description>Simple 1500 Series vol.83 - The Wakeboard - BursTrick Wake Boarding!! (Japan)</description> |
| 11955 | <year>2001</year> |
| 11956 | <publisher>D3</publisher> |
| 11957 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.83 THE ウェイクボード"/> |
| 11734 | 11958 | <info name="serial" value="SLPM-86998" /> |
| 11735 | 11959 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11736 | 11960 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11741 | 11965 | </software> |
| 11742 | 11966 | |
| 11743 | 11967 | <software name="s15_85" supported="no"> |
| 11744 | | <description>Simple 1500 Series Vol.085 - The Sengoku Bushou - Tenka Touitsu no Yabou (Japan)</description> |
| 11745 | | <year>199?</year> |
| 11746 | | <publisher><unknown></publisher> |
| 11968 | <description>Simple 1500 Series vol.85 - The Sengoku Bushou - Tenka Touitsu no Yabou (Japan)</description> |
| 11969 | <year>2002</year> |
| 11970 | <publisher>D3</publisher> |
| 11971 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.85 THE 戦国武将 〜天下統一の野望〜"/> |
| 11747 | 11972 | <info name="serial" value="SLPM-87008" /> |
| 11748 | 11973 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11749 | 11974 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11754 | 11979 | </software> |
| 11755 | 11980 | |
| 11756 | 11981 | <software name="s15_88" supported="no"> |
| 11757 | | <description>Simple 1500 Series Vol.088 - The Gal Mahjong (Japan)</description> |
| 11758 | | <year>199?</year> |
| 11759 | | <publisher><unknown></publisher> |
| 11982 | <description>Simple 1500 Series vol.88 - The Gal Mahjong - Love Songs - Idol wa High Rate (Japan)</description> |
| 11983 | <year>2002</year> |
| 11984 | <publisher>D3</publisher> |
| 11985 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.88 THE ギャル麻雀 〜LoveSongs アイドルはハイレ〜ト〜"/> |
| 11760 | 11986 | <info name="serial" value="SLPM-87023" /> |
| 11761 | 11987 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11762 | 11988 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11767 | 11993 | </software> |
| 11768 | 11994 | |
| 11769 | 11995 | <software name="s15_89" supported="no"> |
| 11770 | | <description>Simple 1500 Series Vol.089 - The Power Shovel Ni Norou!! (Japan)</description> |
| 11771 | | <year>199?</year> |
| 11772 | | <publisher><unknown></publisher> |
| 11996 | <description>Simple 1500 Series vol.89 - The Power Shovel - Power Shovel ni Norou! (Japan)</description> |
| 11997 | <year>2002</year> |
| 11998 | <publisher>D3</publisher> |
| 11999 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.89 THE パワーショベル 〜パワーショベルに乗ろう!!〜"/> |
| 11773 | 12000 | <info name="serial" value="SLPM-87035" /> |
| 11774 | 12001 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11775 | 12002 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11780 | 12007 | </software> |
| 11781 | 12008 | |
| 11782 | 12009 | <software name="s15_90" supported="no"> |
| 11783 | | <description>Simple 1500 Series Vol.090 - The Sensha (Japan)</description> |
| 11784 | | <year>199?</year> |
| 11785 | | <publisher><unknown></publisher> |
| 12010 | <description>Simple 1500 Series vol.90 - The Sensha (Japan)</description> |
| 12011 | <year>2002</year> |
| 12012 | <publisher>D3</publisher> |
| 12013 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.90 THE 戦車"/> |
| 11786 | 12014 | <info name="serial" value="SLPM-87044" /> |
| 11787 | 12015 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11788 | 12016 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11793 | 12021 | </software> |
| 11794 | 12022 | |
| 11795 | 12023 | <software name="s15_93" supported="no"> |
| 11796 | | <description>Simple 1500 Series Vol.093 - The Puzzle Bobble - Puzzle Bobble 4 (Japan)</description> |
| 11797 | | <year>199?</year> |
| 11798 | | <publisher><unknown></publisher> |
| 12024 | <description>Simple 1500 Series Vol.93 - The Puzzle Bobble 4 (Japan)</description> |
| 12025 | <year>2002</year> |
| 12026 | <publisher>D3</publisher> |
| 12027 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.93 THE パズルボブル 〜パズルボブル4〜"/> |
| 11799 | 12028 | <info name="serial" value="SLPM-87057" /> |
| 11800 | 12029 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11801 | 12030 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11806 | 12035 | </software> |
| 11807 | 12036 | |
| 11808 | 12037 | <software name="s15_97" supported="no"> |
| 11809 | | <description>Simple 1500 Series Vol.097 - The Squash (Japan)</description> |
| 11810 | | <year>199?</year> |
| 11811 | | <publisher><unknown></publisher> |
| 12038 | <description>Simple 1500 Series vol.97 - The Squash (Japan)</description> |
| 12039 | <year>2002</year> |
| 12040 | <publisher>D3</publisher> |
| 12041 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.97 THE スカッシュ"/> |
| 11812 | 12042 | <info name="serial" value="SLPM-87088" /> |
| 11813 | 12043 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11814 | 12044 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11819 | 12049 | </software> |
| 11820 | 12050 | |
| 11821 | 12051 | <software name="s15_99" supported="no"> |
| 11822 | | <description>Simple 1500 Series Vol.099 - The Kendo (Japan)</description> |
| 11823 | | <year>199?</year> |
| 11824 | | <publisher><unknown></publisher> |
| 12052 | <description>Simple 1500 Series Vol.99 - The Kendo - Ken no Hanamichi (Japan)</description> |
| 12053 | <year>2002</year> |
| 12054 | <publisher>D3</publisher> |
| 12055 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.99 THE 剣道 〜剣の花道〜"/> |
| 11825 | 12056 | <info name="serial" value="SLPM-87140" /> |
| 11826 | 12057 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11827 | 12058 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11832 | 12063 | </software> |
| 11833 | 12064 | |
| 11834 | 12065 | <software name="s15_101" supported="no"> |
| 11835 | | <description>Simple 1500 Series Vol.101 - The Sentou (Japan)</description> |
| 11836 | | <year>199?</year> |
| 11837 | | <publisher><unknown></publisher> |
| 12066 | <description>Simple 1500 series vol.101 - The Sentou (Japan)</description> |
| 12067 | <year>2003</year> |
| 12068 | <publisher>D3</publisher> |
| 12069 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.101 THE 銭湯"/> |
| 11838 | 12070 | <info name="serial" value="SLPM-87142" /> |
| 11839 | 12071 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11840 | 12072 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11845 | 12077 | </software> |
| 11846 | 12078 | |
| 11847 | 12079 | <software name="s15_102" supported="no"> |
| 11848 | | <description>Simple 1500 Series Vol.102 - The Densha Untenshi - Densha de Go! Nagoya Tetsudo-hen (Japan)</description> |
| 11849 | | <year>199?</year> |
| 11850 | | <publisher><unknown></publisher> |
| 12080 | <description>Simple 1500 Series Vol.102 - The Densha Untensha - Densha de Go! - Nagoya Tetsudou-hen (Japan)</description> |
| 12081 | <year>2002</year> |
| 12082 | <publisher>D3</publisher> |
| 12083 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.102 THE 電車運転手〜電車でGO!名古屋鉄道編〜"/> |
| 11851 | 12084 | <info name="serial" value="SLPM-87144" /> |
| 11852 | 12085 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11853 | 12086 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11858 | 12091 | </software> |
| 11859 | 12092 | |
| 11860 | 12093 | <software name="s15_103" supported="no"> |
| 11861 | | <description>Simple 1500 Series Vol.103 - The Ganso Densha Untenshi - Densha de Go! (Japan)</description> |
| 11862 | | <year>199?</year> |
| 11863 | | <publisher><unknown></publisher> |
| 12094 | <description>Simple 1500 Series Vol.103 - The Ganso Densha Utenshi - Densha De Go! (Japan)</description> |
| 12095 | <year>2003</year> |
| 12096 | <publisher>D3</publisher> |
| 12097 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.103 THE 元祖電車運転士〜電車でGO!〜"/> |
| 11864 | 12098 | <info name="serial" value="SLPM-87212" /> |
| 11865 | 12099 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11866 | 12100 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11871 | 12105 | </software> |
| 11872 | 12106 | |
| 11873 | 12107 | <software name="s15_104" supported="no"> |
| 11874 | | <description>Simple 1500 Series Vol.104 - The Pink Panther (Japan)</description> |
| 11875 | | <year>199?</year> |
| 11876 | | <publisher><unknown></publisher> |
| 12108 | <description>Simple 1500 Series Vol.104 - The Pink Panther - Pinkadelic Pursuit (Japan)</description> |
| 12109 | <year>2003</year> |
| 12110 | <publisher>D3</publisher> |
| 12111 | <info name="alt_title" value="SIMPLE1500シリーズ Vol.104 THE ピンクパンサー"/> |
| 11877 | 12112 | <info name="serial" value="SLPM-87215" /> |
| 11878 | 12113 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11879 | 12114 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11883 | 12118 | </part> |
| 11884 | 12119 | </software> |
| 11885 | 12120 | |
| 12121 | <!-- to dump! |
| 12122 | <software name="sc2k_01" supported="no"> |
| 12123 | <description>Simple Characters 2000 Series Vol.01 - Kidou Senshi Gundam - The Gunjin Shougi (Japan)</description> |
| 12124 | <year>2001</year> |
| 12125 | <publisher>Bandai</publisher> |
| 12126 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.01 機動戦士ガンダム THE 軍人将棋"/> |
| 12127 | <info name="serial" value="SLPS-03309" /> |
| 12128 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12129 | <part name="cdrom" interface="psx_cdrom"> |
| 12130 | <diskarea name="cdrom"> |
| 12131 | <disk name="simple characters 2000 series vol.01 - kidou senshi gundam (japan) [slps-03309]" sha1=""/> |
| 12132 | </diskarea> |
| 12133 | </part> |
| 12134 | </software> |
| 12135 | --> |
| 12136 | |
| 11886 | 12137 | <software name="sc2k_02" supported="no"> |
| 11887 | 12138 | <description>Simple Characters 2000 Series Vol.02 - Afro Ken - The Puzzle (Japan)</description> |
| 11888 | | <year>199?</year> |
| 11889 | | <publisher><unknown></publisher> |
| 12139 | <year>2001</year> |
| 12140 | <publisher>Bandai</publisher> |
| 12141 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.02 アフロ犬 THE パズル"/> |
| 11890 | 12142 | <info name="serial" value="SLPS-03307" /> |
| 11891 | 12143 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11892 | 12144 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11895 | 12147 | </diskarea> |
| 11896 | 12148 | </part> |
| 11897 | 12149 | </software> |
| 11898 | | <!-- dupe |
| 11899 | | <software name="sc2k_02" supported="no"> |
| 11900 | | <description>Simple Characters 2000 Series Vol.02 - Afroken - The Puzzle (Japan)</description> |
| 11901 | | <year>199?</year> |
| 11902 | | <publisher><unknown></publisher> |
| 11903 | | <info name="serial" value="SLPS-03307" /> |
| 11904 | | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11905 | | <part name="cdrom" interface="psx_cdrom"> |
| 11906 | | <diskarea name="cdrom"> |
| 11907 | | <disk name="simple characters 2000 series vol.02 - afroken - the puzzle (japan) [slps-03307]" sha1="5b89aac27f6435972c512abe6b949d9bae591d19"/> |
| 11908 | | </diskarea> |
| 11909 | | </part> |
| 11910 | | </software> |
| 11911 | | --> |
| 12150 | |
| 11912 | 12151 | <software name="sc2k_03" supported="no"> |
| 11913 | 12152 | <description>Simple Characters 2000 Series Vol.03 - Kamen Rider - The Bike Race (Japan)</description> |
| 11914 | | <year>199?</year> |
| 11915 | | <publisher><unknown></publisher> |
| 12153 | <year>2001</year> |
| 12154 | <publisher>Bandai</publisher> |
| 12155 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.03 仮面ライダー THE バイクレース"/> |
| 11916 | 12156 | <info name="serial" value="SLPS-03308" /> |
| 11917 | 12157 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11918 | 12158 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11923 | 12163 | </software> |
| 11924 | 12164 | |
| 11925 | 12165 | <software name="sc2k_04" supported="no"> |
| 11926 | | <description>Simple Characters 2000 Series Vol.04 - Jarin-Ko Chie - The Hanafuda (Japan)</description> |
| 11927 | | <year>199?</year> |
| 11928 | | <publisher><unknown></publisher> |
| 12166 | <description>Simple Characters 2000 Series Vol.04 - Jarinko Chie - The Hanafuda (Japan)</description> |
| 12167 | <year>2001</year> |
| 12168 | <publisher>Bandai</publisher> |
| 12169 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.04 じゃりン子チエ THE 花札"/> |
| 11929 | 12170 | <info name="serial" value="SLPS-03350" /> |
| 11930 | 12171 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11931 | 12172 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11936 | 12177 | </software> |
| 11937 | 12178 | |
| 11938 | 12179 | <software name="sc2k_05" supported="no"> |
| 11939 | | <description>Simple Characters 2000 Series Vol.05 - HighSchool Kimengumi - The Table Hockey (Japan)</description> |
| 11940 | | <year>199?</year> |
| 11941 | | <publisher><unknown></publisher> |
| 12180 | <description>Simple Characters 2000 Series vol.05 - Highschool Kimengumi - The Table Hockey (Japan)</description> |
| 12181 | <year>2001</year> |
| 12182 | <publisher>Bandai</publisher> |
| 12183 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.05 ハイスクール奇面組 THE テーブルホッケー"/> |
| 11942 | 12184 | <info name="serial" value="SLPS-03362" /> |
| 11943 | 12185 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11944 | 12186 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11950 | 12192 | |
| 11951 | 12193 | <software name="sc2k_06" supported="no"> |
| 11952 | 12194 | <description>Simple Characters 2000 Series Vol.06 - Dokonjou Gaeru - The Mahjong (Japan)</description> |
| 11953 | | <year>199?</year> |
| 11954 | | <publisher><unknown></publisher> |
| 12195 | <year>2002</year> |
| 12196 | <publisher>Bandai</publisher> |
| 12197 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.06 ど根性ガエル THE 麻雀"/> |
| 11955 | 12198 | <info name="serial" value="SLPS-03363" /> |
| 11956 | 12199 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11957 | 12200 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11962 | 12205 | </software> |
| 11963 | 12206 | |
| 11964 | 12207 | <software name="sc2k_07" supported="no"> |
| 11965 | | <description>Simple Characters 2000 Series Vol.07 - Ikkyuusan - The Quiz (Japan)</description> |
| 11966 | | <year>199?</year> |
| 11967 | | <publisher><unknown></publisher> |
| 12208 | <description>Simple Characters 2000 Series vol.07 - Ikkyuu-san: The Quiz (Japan)</description> |
| 12209 | <year>2002</year> |
| 12210 | <publisher>Bandai</publisher> |
| 12211 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.07 一休さん THE クイズ"/> |
| 11968 | 12212 | <info name="serial" value="SLPS-03418" /> |
| 11969 | 12213 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11970 | 12214 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11974 | 12218 | </part> |
| 11975 | 12219 | </software> |
| 11976 | 12220 | |
| 12221 | <!-- to dump! |
| 12222 | <software name="sc2k_08" supported="no"> |
| 12223 | <description>Simple Characters 2000 Series Vol.08 - Gatchaman the Shooting (Japan)</description> |
| 12224 | <year>2002</year> |
| 12225 | <publisher>Bandai</publisher> |
| 12226 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.08 ガッチャマン THE シューティング"/> |
| 12227 | <info name="serial" value="SLPS-03444" /> |
| 12228 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12229 | <part name="cdrom" interface="psx_cdrom"> |
| 12230 | <diskarea name="cdrom"> |
| 12231 | <disk name="simple characters 2000 series vol.08 - gatchaman the shooting (japan) [slps-03444]" sha1=""/> |
| 12232 | </diskarea> |
| 12233 | </part> |
| 12234 | </software> |
| 12235 | --> |
| 12236 | |
| 11977 | 12237 | <software name="sc2k_09" supported="no"> |
| 11978 | 12238 | <description>Simple Characters 2000 Series Vol.09 - Tsuri Kichi Sanpei - The Tsuri (Japan)</description> |
| 11979 | | <year>199?</year> |
| 11980 | | <publisher><unknown></publisher> |
| 12239 | <year>2002</year> |
| 12240 | <publisher>Bandai/D3</publisher> |
| 12241 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.09 釣りキチ三平 THE 釣り"/> |
| 11981 | 12242 | <info name="serial" value="SLPS-03445" /> |
| 11982 | 12243 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11983 | 12244 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 11988 | 12249 | </software> |
| 11989 | 12250 | |
| 11990 | 12251 | <software name="sc2k_10" supported="no"> |
| 11991 | | <description>Simple Characters 2000 Series Vol.10 - Sakigake!! Otojo Juku - The Dodgeball (Japan)</description> |
| 11992 | | <year>199?</year> |
| 11993 | | <publisher><unknown></publisher> |
| 12252 | <description>Simple Characters 2000 Series Vol.10 - Sakigake!! Otojo Juku (Japan)</description> |
| 12253 | <year>2002</year> |
| 12254 | <publisher>Bandai/D3</publisher> |
| 12255 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.10 魁!!男塾 THE 怒馳暴流"/> |
| 11994 | 12256 | <info name="serial" value="SLPS-03457" /> |
| 11995 | 12257 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 11996 | 12258 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12000 | 12262 | </part> |
| 12001 | 12263 | </software> |
| 12002 | 12264 | |
| 12265 | <!-- to dump! |
| 12266 | <software name="sc2k_11" supported="no"> |
| 12267 | <description>Simple Characters 2000 Series Vol.11 - Meitantei Conan - The Board (Japan)</description> |
| 12268 | <year>2002</year> |
| 12269 | <publisher>Bandai/D3</publisher> |
| 12270 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.11 名探偵コナン THE ボードゲーム"/> |
| 12271 | <info name="serial" value="SLPS-03458" /> |
| 12272 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12273 | <part name="cdrom" interface="psx_cdrom"> |
| 12274 | <diskarea name="cdrom"> |
| 12275 | <disk name="simple characters 2000 series vol.11 - meitantei conan - the board (japan) [slps-03458]" sha1=""/> |
| 12276 | </diskarea> |
| 12277 | </part> |
| 12278 | </software> |
| 12279 | --> |
| 12280 | |
| 12003 | 12281 | <software name="sc2k_12" supported="no"> |
| 12004 | 12282 | <description>Simple Characters 2000 Series Vol.12 - Kidou Butouden G Gundam - The Battle (Japan)</description> |
| 12005 | | <year>199?</year> |
| 12006 | | <publisher><unknown></publisher> |
| 12283 | <year>2002</year> |
| 12284 | <publisher>Bandai/D3</publisher> |
| 12285 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ VOL.12 機動武闘伝Gガンダム THE バトル"/> |
| 12007 | 12286 | <info name="serial" value="SLPS-03471" /> |
| 12008 | 12287 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12009 | 12288 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12014 | 12293 | </software> |
| 12015 | 12294 | |
| 12016 | 12295 | <software name="sc2k_13" supported="no"> |
| 12017 | | <description>Simple Characters 2000 Series Vol.13 - Shin Kidou Senki Gundam W - The Battle (Japan)</description> |
| 12018 | | <year>199?</year> |
| 12019 | | <publisher><unknown></publisher> |
| 12296 | <description>Simple Characters 2000 Series vol.13 - Kidou Senki Gundam W - The Battle (Japan)</description> |
| 12297 | <year>2002</year> |
| 12298 | <publisher>Bandai/D3</publisher> |
| 12299 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ VOL.13 新機動戦記ガンダムW THE バトル"/> |
| 12020 | 12300 | <info name="serial" value="SLPS-03472" /> |
| 12021 | 12301 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12022 | 12302 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12027 | 12307 | </software> |
| 12028 | 12308 | |
| 12029 | 12309 | <software name="sc2k_14" supported="no"> |
| 12030 | | <description>Simple Characters 2000 Series Vol.14 - Nantettantei Idol - The Jigsaw Puzzle (Japan)</description> |
| 12031 | | <year>199?</year> |
| 12032 | | <publisher><unknown></publisher> |
| 12310 | <description>Simple Characters 2000 Series Vol.14 - Nante Tantei Idol - The Jigsaw Puzzle (Japan)</description> |
| 12311 | <year>2002</year> |
| 12312 | <publisher>Bandai/D3</publisher> |
| 12313 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.14 なんてっ探偵アイドル THE ジグソーパズル"/> |
| 12033 | 12314 | <info name="serial" value="SLPS-03473" /> |
| 12034 | 12315 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12035 | 12316 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12040 | 12321 | </software> |
| 12041 | 12322 | |
| 12042 | 12323 | <software name="sc2k_15" supported="no"> |
| 12043 | | <description>Simple Characters 2000 Series Vol.15 - Cyborg 009 - The Block Kuzushi (Japan)</description> |
| 12044 | | <year>199?</year> |
| 12045 | | <publisher><unknown></publisher> |
| 12324 | <description>Simple Characters 2000 Series vol.15 - The Block Kuzushi (Japan)</description> |
| 12325 | <year>2002</year> |
| 12326 | <publisher>Bandai/D3</publisher> |
| 12327 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.15 サイボーグ009 THE ブロックくずし"/> |
| 12046 | 12328 | <info name="serial" value="SLPS-03474" /> |
| 12047 | 12329 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12048 | 12330 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12054 | 12336 | |
| 12055 | 12337 | <software name="sc2k_16" supported="no"> |
| 12056 | 12338 | <description>Simple Characters 2000 Series Vol.16 - Ganba no Bouken - The Puzzle Action (Japan)</description> |
| 12057 | | <year>199?</year> |
| 12058 | | <publisher><unknown></publisher> |
| 12339 | <year>2003</year> |
| 12340 | <publisher>Bandai/D3</publisher> |
| 12341 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.16 ガンバの冒険 THE パズルアクション"/> |
| 12059 | 12342 | <info name="serial" value="SLPS-03546" /> |
| 12060 | 12343 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12061 | 12344 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12065 | 12348 | </part> |
| 12066 | 12349 | </software> |
| 12067 | 12350 | |
| 12351 | <!-- to dump! |
| 12352 | <software name="sc2k_17" supported="no"> |
| 12353 | <description>Simple Characters 2000 Series vol.17 - Sentou Mecha Xabungle - The Racing Game (Japan)</description> |
| 12354 | <year>2003</year> |
| 12355 | <publisher>Bandai/D3</publisher> |
| 12356 | <info name="alt_title" value="SIMPLEキャラクター2000シリーズ Vol.17 戦闘メカ ザブングル THE アクション"/> |
| 12357 | <info name="serial" value="SLPS-03547" /> |
| 12358 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12359 | <part name="cdrom" interface="psx_cdrom"> |
| 12360 | <diskarea name="cdrom"> |
| 12361 | <disk name="simple characters 2000 series vol.17 - sentou mecha xabungle - rhe racing game (japan) [slps-03547]" sha1=""/> |
| 12362 | </diskarea> |
| 12363 | </part> |
| 12364 | </software> |
| 12365 | --> |
| 12366 | |
| 12068 | 12367 | <software name="simulati" supported="no"> |
| 12069 | | <description>Simulation Zoo (Japan)</description> |
| 12070 | | <year>199?</year> |
| 12071 | | <publisher><unknown></publisher> |
| 12368 | <description>Simulation Zoo: Sekaiichi no Doubutsuen o Tsukurou (Japan)</description> |
| 12369 | <year>1996</year> |
| 12370 | <publisher>SoftBank</publisher> |
| 12371 | <info name="alt_title" value="シミュレーションズー"/> |
| 12072 | 12372 | <info name="serial" value="SLPS-00458" /> |
| 12073 | 12373 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12074 | 12374 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12080 | 12380 | |
| 12081 | 12381 | <software name="sisterpr" supported="no"> |
| 12082 | 12382 | <description>Sister Princess - Pure Stories (Japan)</description> |
| 12083 | | <year>199?</year> |
| 12084 | | <publisher><unknown></publisher> |
| 12383 | <year>2001</year> |
| 12384 | <publisher>Media Works</publisher> |
| 12385 | <info name="alt_title" value="シスター・プリンセス 〜ピュア・ストーリーズ〜 <初回限定生産>"/> |
| 12085 | 12386 | <info name="serial" value="SLPS-03360" /> |
| 12086 | 12387 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12087 | 12388 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12093 | 12394 | |
| 12094 | 12395 | <software name="slaphapp" supported="no"> |
| 12095 | 12396 | <description>Slap Happy Rhythm Busters (Japan)</description> |
| 12096 | | <year>199?</year> |
| 12097 | | <publisher><unknown></publisher> |
| 12397 | <year>2000</year> |
| 12398 | <publisher>ASK</publisher> |
| 12399 | <info name="alt_title" value="スラップ ハッピー リズム バスターズ"/> |
| 12098 | 12400 | <info name="serial" value="SLPS-02789" /> |
| 12099 | 12401 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12100 | 12402 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12106 | 12408 | |
| 12107 | 12409 | <software name="snatcher" supported="no"> |
| 12108 | 12410 | <description>Snatcher (Japan)</description> |
| 12109 | | <year>199?</year> |
| 12110 | | <publisher><unknown></publisher> |
| 12411 | <year>1996</year> |
| 12412 | <publisher>Konami</publisher> |
| 12413 | <info name="alt_title" value="スナッチャー"/> |
| 12111 | 12414 | <info name="serial" value="SLPS-00154" /> |
| 12112 | 12415 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12113 | 12416 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12119 | 12422 | |
| 12120 | 12423 | <software name="snobowki" supported="no"> |
| 12121 | 12424 | <description>Snobow Kids Plus (Japan)</description> |
| 12122 | | <year>199?</year> |
| 12123 | | <publisher><unknown></publisher> |
| 12425 | <year>1999</year> |
| 12426 | <publisher>ASCII</publisher> |
| 12427 | <info name="alt_title" value="スノボキッズプラス"/> |
| 12124 | 12428 | <info name="serial" value="SLPS-01823" /> |
| 12125 | 12429 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12126 | 12430 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12132 | 12436 | |
| 12133 | 12437 | <software name="sonataja" supported="no"> |
| 12134 | 12438 | <description>Sonata (Japan)</description> |
| 12135 | | <year>199?</year> |
| 12136 | | <publisher><unknown></publisher> |
| 12439 | <year>1999</year> |
| 12440 | <publisher>T&E</publisher> |
| 12441 | <info name="alt_title" value="Sonata"/> |
| 12137 | 12442 | <info name="serial" value="SLPS-01843, SLPS-01844" /> |
| 12138 | 12443 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12139 | 12444 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12150 | 12455 | |
| 12151 | 12456 | <software name="sotsugyo" supported="no"> |
| 12152 | 12457 | <description>Sotsugyou Crossworld (Japan)</description> |
| 12153 | | <year>199?</year> |
| 12154 | | <publisher><unknown></publisher> |
| 12458 | <year>1996</year> |
| 12459 | <publisher>Hearty Robin</publisher> |
| 12460 | <info name="alt_title" value="卒業クロスワールド"/> |
| 12155 | 12461 | <info name="serial" value="SLPS-00273" /> |
| 12156 | 12462 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12157 | 12463 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12163 | 12469 | |
| 12164 | 12470 | <software name="sougakut" supported="no"> |
| 12165 | 12471 | <description>Sougaku Toshi - Osaka (Japan)</description> |
| 12166 | | <year>199?</year> |
| 12167 | | <publisher><unknown></publisher> |
| 12472 | <year>1999</year> |
| 12473 | <publisher>King Records</publisher> |
| 12474 | <info name="alt_title" value="奏(騒)楽都市 OSAKA"/> |
| 12168 | 12475 | <info name="serial" value="SLPS-01722, SLPS-01723" /> |
| 12169 | 12476 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12170 | 12477 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12181 | 12488 | |
| 12182 | 12489 | <software name="soukyugu" supported="no"> |
| 12183 | 12490 | <description>Soukyu Gurentai - Oubushustugeki (Japan)</description> |
| 12184 | | <year>199?</year> |
| 12185 | | <publisher><unknown></publisher> |
| 12491 | <year>1997</year> |
| 12492 | <publisher>Data East</publisher> |
| 12493 | <info name="alt_title" value="蒼穹紅蓮隊 黄武出撃"/> |
| 12186 | 12494 | <info name="serial" value="SLPS-01172" /> |
| 12187 | 12495 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12188 | 12496 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12192 | 12500 | </part> |
| 12193 | 12501 | </software> |
| 12194 | 12502 | |
| 12195 | | <software name="soundqub" supported="no"> |
| 12196 | | <description>Sound Qube (Japan)</description> |
| 12197 | | <year>199?</year> |
| 12198 | | <publisher><unknown></publisher> |
| 12199 | | <info name="serial" value="SLPS-01309" /> |
| 12200 | | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12201 | | <part name="cdrom" interface="psx_cdrom"> |
| 12202 | | <diskarea name="cdrom"> |
| 12203 | | <disk name="sound qube (japan) [slps-01309]" sha1="54139ab64577aec717ca75daa26d87b67887a673"/> |
| 12204 | | </diskarea> |
| 12205 | | </part> |
| 12206 | | </software> |
| 12207 | | |
| 12208 | 12503 | <software name="spaceinv" supported="no"> |
| 12209 | 12504 | <description>Space Invaders X (Japan)</description> |
| 12210 | | <year>199?</year> |
| 12211 | | <publisher><unknown></publisher> |
| 12505 | <year>2000</year> |
| 12506 | <publisher>Taito</publisher> |
| 12507 | <info name="alt_title" value="スペースインベーダーX(エックス)"/> |
| 12212 | 12508 | <info name="serial" value="SLPM-86419" /> |
| 12213 | 12509 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12214 | 12510 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12220 | 12516 | |
| 12221 | 12517 | <software name="spectral" supported="no"> |
| 12222 | 12518 | <description>Spectral Blade (Japan)</description> |
| 12223 | | <year>199?</year> |
| 12224 | | <publisher><unknown></publisher> |
| 12519 | <year>1999</year> |
| 12520 | <publisher>Idea Factory</publisher> |
| 12521 | <info name="alt_title" value="スペクトラルブレイド"/> |
| 12225 | 12522 | <info name="serial" value="SLPS-02526" /> |
| 12226 | 12523 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12227 | 12524 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12232 | 12529 | </software> |
| 12233 | 12530 | |
| 12234 | 12531 | <software name="speedkin" supported="no"> |
| 12235 | | <description>Speed King - Neo Kobe 2045 (Japan)</description> |
| 12236 | | <year>199?</year> |
| 12237 | | <publisher><unknown></publisher> |
| 12532 | <description>Speed King (Japan)</description> |
| 12533 | <year>1996</year> |
| 12534 | <publisher>Konami</publisher> |
| 12535 | <info name="alt_title" value="スピードキング"/> |
| 12238 | 12536 | <info name="serial" value="SLPM-86013" /> |
| 12239 | 12537 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12240 | 12538 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12246 | 12544 | |
| 12247 | 12545 | <software name="speedpow" supported="no"> |
| 12248 | 12546 | <description>Speed Power Gunbike (Japan)</description> |
| 12249 | | <year>199?</year> |
| 12250 | | <publisher><unknown></publisher> |
| 12547 | <year>1998</year> |
| 12548 | <publisher>Sony</publisher> |
| 12549 | <info name="alt_title" value="可変走攻 ガンバイク"/> |
| 12251 | 12550 | <info name="serial" value="SLPS-01066" /> |
| 12252 | 12551 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12253 | 12552 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12259 | 12558 | |
| 12260 | 12559 | <software name="spiderma" supported="no"> |
| 12261 | 12560 | <description>Spider-Man (Japan)</description> |
| 12262 | | <year>199?</year> |
| 12263 | | <publisher><unknown></publisher> |
| 12561 | <year>2001</year> |
| 12562 | <publisher>Activision</publisher> |
| 12563 | <info name="alt_title" value="SPIDER-MAN"/> |
| 12264 | 12564 | <info name="serial" value="SLPM-86739" /> |
| 12265 | 12565 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12266 | 12566 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12270 | 12570 | </part> |
| 12271 | 12571 | </software> |
| 12272 | 12572 | |
| 12273 | | <software name="squaresp" supported="no"> |
| 12274 | | <description>Square's Preview 5 (Japan) (Demo)</description> |
| 12275 | | <year>199?</year> |
| 12276 | | <publisher><unknown></publisher> |
| 12277 | | <info name="serial" value="SCPS-45417" /> |
| 12278 | | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12279 | | <part name="cdrom" interface="psx_cdrom"> |
| 12280 | | <diskarea name="cdrom"> |
| 12281 | | <disk name="square's preview 5 (japan) (demo) [scps-45417]" sha1="2e84ab79573ce07bb78480a9d75d601e14d07895"/> |
| 12282 | | </diskarea> |
| 12283 | | </part> |
| 12284 | | </software> |
| 12285 | | |
| 12286 | 12573 | <software name="squareso" supported="no"> |
| 12287 | 12574 | <description>Squaresoft Memory Card Data CD (Japan)</description> |
| 12288 | 12575 | <year>199?</year> |
| 12289 | | <publisher><unknown></publisher> |
| 12576 | <publisher>Squaresoft</publisher> |
| 12290 | 12577 | <info name="serial" value="SLPM-80556" /> |
| 12291 | 12578 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12292 | 12579 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12298 | 12585 | |
| 12299 | 12586 | <software name="stahlfed" supported="no"> |
| 12300 | 12587 | <description>Stahlfeder (Japan)</description> |
| 12301 | | <year>199?</year> |
| 12302 | | <publisher><unknown></publisher> |
| 12588 | <year>1996</year> |
| 12589 | <publisher>Santos</publisher> |
| 12590 | <info name="alt_title" value="シュタールフェーダー 〜鉄甲飛空団〜"/> |
| 12303 | 12591 | <info name="serial" value="SLPS-00162" /> |
| 12304 | 12592 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12305 | 12593 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12311 | 12599 | |
| 12312 | 12600 | <software name="startlin" supported="no"> |
| 12313 | 12601 | <description>Startling Odyssey 1 - Blue Evolution (Japan)</description> |
| 12314 | | <year>199?</year> |
| 12315 | | <publisher><unknown></publisher> |
| 12602 | <year>1999</year> |
| 12603 | <publisher>RayForce</publisher> |
| 12604 | <info name="alt_title" value="スタートリング・オデッセイ1 ブルーエヴォリューション"/> |
| 12316 | 12605 | <info name="serial" value="SLPS-02043" /> |
| 12317 | 12606 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12318 | 12607 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12324 | 12613 | |
| 12325 | 12614 | <software name="streetfi" supported="no"> |
| 12326 | 12615 | <description>Street Fighter Collection (Japan)</description> |
| 12327 | | <year>199?</year> |
| 12328 | | <publisher><unknown></publisher> |
| 12616 | <year>1997</year> |
| 12617 | <publisher>Capcom</publisher> |
| 12618 | <info name="alt_title" value="ストリートファイターコレクション"/> |
| 12329 | 12619 | <info name="serial" value="SLPS-00800, SLPS-00801" /> |
| 12330 | 12620 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12331 | 12621 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12342 | 12632 | |
| 12343 | 12633 | <software name="suchiepa" supported="no"> |
| 12344 | 12634 | <description>Suchie-Pai Adventure - Doki Doki Nightmare (Japan) (Disc 2 Only)</description> |
| 12345 | | <year>199?</year> |
| 12346 | | <publisher><unknown></publisher> |
| 12635 | <year>1998</year> |
| 12636 | <publisher>Jaleco</publisher> |
| 12637 | <info name="alt_title" value="スーチーパイアドベンチャー"/> |
| 12347 | 12638 | <info name="serial" value="SLPS-01265" /> |
| 12348 | 12639 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12349 | 12640 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12354 | 12645 | </software> |
| 12355 | 12646 | |
| 12356 | 12647 | <software name="suikoenb" supported="no"> |
| 12357 | | <description>Suiko Enbu (Japan)</description> |
| 12358 | | <year>199?</year> |
| 12359 | | <publisher><unknown></publisher> |
| 12648 | <description>Suiko Enbu - Outlaws of the Lost Dynasty (Japan)</description> |
| 12649 | <year>1996</year> |
| 12650 | <publisher>Data East</publisher> |
| 12651 | <info name="alt_title" value="水 滸 演 武"/> |
| 12360 | 12652 | <info name="serial" value="SLPS-00137" /> |
| 12361 | 12653 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12362 | 12654 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12367 | 12659 | </software> |
| 12368 | 12660 | |
| 12369 | 12661 | <software name="sunsoft1" supported="no"> |
| 12370 | | <description>Sunsoft Classics Vol.1 - Memorial Series (Japan)</description> |
| 12371 | | <year>199?</year> |
| 12372 | | <publisher><unknown></publisher> |
| 12662 | <description>Memorial Star Series Sunsoft Vol. 1 - Ikki & Super Arabian (Japan)</description> |
| 12663 | <year>2001</year> |
| 12664 | <publisher>Sunsoft</publisher> |
| 12665 | <info name="alt_title" value="メモリアル☆シリーズ サンソフト Vol.1"/> |
| 12373 | 12666 | <info name="serial" value="SLPS-03135" /> |
| 12374 | 12667 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12375 | 12668 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12380 | 12673 | </software> |
| 12381 | 12674 | |
| 12382 | 12675 | <software name="sunsoft2" supported="no"> |
| 12383 | | <description>Sunsoft Classics Vol.2 - Memorial Series (Japan)</description> |
| 12384 | | <year>199?</year> |
| 12385 | | <publisher><unknown></publisher> |
| 12676 | <description>Memorial Star Series Sunsoft Vol. 2 - Route 16 - Turbo & Atlantis no Nazo (Japan)</description> |
| 12677 | <year>2001</year> |
| 12678 | <publisher>Sunsoft</publisher> |
| 12679 | <info name="alt_title" value="メモリアル☆シリーズ サンソフトVOL.2"/> |
| 12386 | 12680 | <info name="serial" value="SLPS-03181" /> |
| 12387 | 12681 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12388 | 12682 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12394 | 12688 | |
| 12395 | 12689 | <software name="sunsoft3" supported="no"> |
| 12396 | 12690 | <description>Sunsoft Classics Vol.3 - Memorial Series (Japan)</description> |
| 12397 | | <year>199?</year> |
| 12398 | | <publisher><unknown></publisher> |
| 12691 | <year>2001</year> |
| 12692 | <publisher>Sunsoft</publisher> |
| 12693 | <info name="alt_title" value="メモリアル☆シリーズ サンソフトVOL.3"/> |
| 12399 | 12694 | <info name="serial" value="SLPS-03366" /> |
| 12400 | 12695 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12401 | 12696 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12406 | 12701 | </software> |
| 12407 | 12702 | |
| 12408 | 12703 | <software name="sunsoft4" supported="no"> |
| 12409 | | <description>Sunsoft Classics Vol.4 - Memorial Series (Japan)</description> |
| 12410 | | <year>199?</year> |
| 12411 | | <publisher><unknown></publisher> |
| 12704 | <description>Memorial Star Series Sunsoft Vol.4 - Chou wakusei senki metafight & Lipple island (Japan)</description> |
| 12705 | <year>2002</year> |
| 12706 | <publisher>Sunsoft</publisher> |
| 12707 | <info name="alt_title" value="メモリアル☆シリーズ サンソフト VOL.4"/> |
| 12412 | 12708 | <info name="serial" value="SLPS-03382" /> |
| 12413 | 12709 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12414 | 12710 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12419 | 12715 | </software> |
| 12420 | 12716 | |
| 12421 | 12717 | <software name="sunsoft5" supported="no"> |
| 12422 | | <description>Sunsoft Classics Vol.5 - Memorial Series (Japan)</description> |
| 12423 | | <year>199?</year> |
| 12424 | | <publisher><unknown></publisher> |
| 12718 | <description>Memorial Star Series Sunsoft Vol.5 - Raf World & Hebereke (Japan)</description> |
| 12719 | <year>2002</year> |
| 12720 | <publisher>Sunsoft</publisher> |
| 12721 | <info name="alt_title" value="メモリアル☆シリーズ サンソフト VOL.5"/> |
| 12425 | 12722 | <info name="serial" value="SLPS-03397" /> |
| 12426 | 12723 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12427 | 12724 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12432 | 12729 | </software> |
| 12433 | 12730 | |
| 12434 | 12731 | <software name="sunsoft6" supported="no"> |
| 12435 | | <description>Sunsoft Classics Vol.6 - Memorial Series (Japan)</description> |
| 12436 | | <year>199?</year> |
| 12437 | | <publisher><unknown></publisher> |
| 12732 | <description>Memorial Star Series Sunsoft Vol.6 - Battle Formula & Gimmick! (Japan)</description> |
| 12733 | <year>2002</year> |
| 12734 | <publisher>Sunsoft</publisher> |
| 12735 | <info name="alt_title" value="メモリアル☆シリーズ サンソフトVOL.6"/> |
| 12438 | 12736 | <info name="serial" value="SLPS-03486" /> |
| 12439 | 12737 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12440 | 12738 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12446 | 12744 | |
| 12447 | 12745 | <software name="superadv" supported="no"> |
| 12448 | 12746 | <description>Super Adventure RockMan (Japan)</description> |
| 12449 | | <year>199?</year> |
| 12450 | | <publisher><unknown></publisher> |
| 12747 | <year>1998</year> |
| 12748 | <publisher>Capcom</publisher> |
| 12749 | <info name="alt_title" value="スーパーアドベンチャーロックマン"/> |
| 12451 | 12750 | <info name="serial" value="SLPS-01051, SLPS-01052, SLPS-01053" /> |
| 12452 | 12751 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12453 | 12752 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12469 | 12768 | |
| 12470 | 12769 | <software name="superfoo" supported="no"> |
| 12471 | 12770 | <description>Super Football Champ (Japan)</description> |
| 12472 | | <year>199?</year> |
| 12473 | | <publisher><unknown></publisher> |
| 12771 | <year>1996</year> |
| 12772 | <publisher>Taito</publisher> |
| 12773 | <info name="alt_title" value="SUPER FOOTBALL CHAMP"/> |
| 12474 | 12774 | <info name="serial" value="SLPS-00569" /> |
| 12475 | 12775 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12476 | 12776 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12482 | 12782 | |
| 12483 | 12783 | <software name="superliv" supported="no"> |
| 12484 | 12784 | <description>Super Live Stadium (Japan)</description> |
| 12485 | | <year>199?</year> |
| 12486 | | <publisher><unknown></publisher> |
| 12785 | <year>1998</year> |
| 12786 | <publisher>Aques</publisher> |
| 12787 | <info name="alt_title" value="スーパーライブスタジアム"/> |
| 12487 | 12788 | <info name="serial" value="SLPM-86019" /> |
| 12488 | 12789 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12489 | 12790 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12493 | 12794 | </part> |
| 12494 | 12795 | </software> |
| 12495 | 12796 | |
| 12496 | | <software name="superlit" supported="no"> |
| 12497 | | <description>SuperLite 1500 Extra Series Vol.02 - Nankuro (Japan)</description> |
| 12498 | | <year>199?</year> |
| 12499 | | <publisher><unknown></publisher> |
| 12500 | | <info name="serial" value="SLPS-02067" /> |
| 12501 | | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12502 | | <part name="cdrom" interface="psx_cdrom"> |
| 12503 | | <diskarea name="cdrom"> |
| 12504 | | <disk name="superlite 1500 extra series vol.02 - nankuro (japan) [slps-02067]" sha1="8f17ac2169a351af67437fd79cfd66a13e51062e"/> |
| 12505 | | </diskarea> |
| 12506 | | </part> |
| 12507 | | </software> |
| 12508 | | |
| 12509 | 12797 | <software name="susumeka" supported="no"> |
| 12510 | | <description>Susume! Kaizoku (Japan)</description> |
| 12511 | | <year>199?</year> |
| 12512 | | <publisher><unknown></publisher> |
| 12798 | <description>Susume! Kaizoku - Be Pirates! (Japan)</description> |
| 12799 | <year>1998</year> |
| 12800 | <publisher>ArtDink</publisher> |
| 12801 | <info name="alt_title" value="進め! 海賊"/> |
| 12513 | 12802 | <info name="serial" value="SLPS-01737" /> |
| 12514 | 12803 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12515 | 12804 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12520 | 12809 | </software> |
| 12521 | 12810 | |
| 12522 | 12811 | <software name="tkarahaj" supported="no"> |
| 12523 | | <description>T kara Hajimaru Monogatari (Japan)</description> |
| 12524 | | <year>199?</year> |
| 12525 | | <publisher><unknown></publisher> |
| 12812 | <description>T Kara Hajimaru Monogatari (Japan)</description> |
| 12813 | <year>1998</year> |
| 12814 | <publisher>Jaleco</publisher> |
| 12815 | <info name="alt_title" value="Tから始まる物語"/> |
| 12526 | 12816 | <info name="serial" value="SLPS-01350" /> |
| 12527 | 12817 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12528 | 12818 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12534 | 12824 | |
| 12535 | 12825 | <software name="tactical" supported="no"> |
| 12536 | 12826 | <description>Tactical Armor Custom Gasaraki (Japan)</description> |
| 12537 | | <year>199?</year> |
| 12538 | | <publisher><unknown></publisher> |
| 12827 | <year>2000</year> |
| 12828 | <publisher>Bandai</publisher> |
| 12829 | <info name="alt_title" value="Tactical Armor Custom ガサラキ"/> |
| 12539 | 12830 | <info name="serial" value="SLPS-02181" /> |
| 12540 | 12831 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12541 | 12832 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12547 | 12838 | |
| 12548 | 12839 | <software name="tacticso" supported="no"> |
| 12549 | 12840 | <description>Tactics Ogre - Let Us Cling Together (Japan)</description> |
| 12550 | | <year>199?</year> |
| 12551 | | <publisher><unknown></publisher> |
| 12841 | <year>1997</year> |
| 12842 | <publisher>Artdink</publisher> |
| 12843 | <info name="alt_title" value="タクティクス・オウガ"/> |
| 12552 | 12844 | <info name="serial" value="SLPS-00767" /> |
| 12553 | 12845 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12554 | 12846 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12560 | 12852 | |
| 12561 | 12853 | <software name="taihoshi" supported="no"> |
| 12562 | 12854 | <description>Taiho Shichauzo! - You're Under Arrest (Japan)</description> |
| 12563 | | <year>199?</year> |
| 12564 | | <publisher><unknown></publisher> |
| 12855 | <year>2001</year> |
| 12856 | <publisher>Pioneer</publisher> |
| 12857 | <info name="alt_title" value="逮捕しちゃうぞ"/> |
| 12565 | 12858 | <info name="serial" value="SLPM-86782, SLPM-86783" /> |
| 12566 | 12859 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12567 | 12860 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12577 | 12870 | </software> |
| 12578 | 12871 | |
| 12579 | 12872 | <software name="talesoff" supported="no"> |
| 12580 | | <description>Tales of Fandom Vol.1 (Japan)</description> |
| 12581 | | <year>199?</year> |
| 12582 | | <publisher><unknown></publisher> |
| 12873 | <description>Tales of Fandom Vol.1 (Cless Version) (Japan)</description> |
| 12874 | <year>2002</year> |
| 12875 | <publisher>Namco</publisher> |
| 12876 | <info name="alt_title" value="テイルズオブファンダム Vol.1(クレス・ルーティー・ファラバージョン)"/> |
| 12583 | 12877 | <info name="serial" value="SLPS-03375" /> |
| 12584 | 12878 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12585 | 12879 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12592 | 12886 | <software name="tamamayu" supported="no"> |
| 12593 | 12887 | <description>Tamamayu Monogatari - Dennou Bijutsukan (Japan) (Demo)</description> |
| 12594 | 12888 | <year>199?</year> |
| 12595 | | <publisher><unknown></publisher> |
| 12889 | <publisher>Genki</publisher> |
| 12596 | 12890 | <info name="serial" value="SLPM-80325" /> |
| 12597 | 12891 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12598 | 12892 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12604 | 12898 | |
| 12605 | 12899 | <software name="tanteiea" supported="no"> |
| 12606 | 12900 | <description>Tantei Jinguuji Saburo - Early Collection (Japan)</description> |
| 12607 | | <year>199?</year> |
| 12608 | | <publisher><unknown></publisher> |
| 12901 | <year>1999</year> |
| 12902 | <publisher>Data East</publisher> |
| 12903 | <info name="alt_title" value="探偵神宮寺三郎 Early Collection"/> |
| 12609 | 12904 | <info name="serial" value="SLPS-02157" /> |
| 12610 | 12905 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12611 | 12906 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12616 | 12911 | </software> |
| 12617 | 12912 | |
| 12618 | 12913 | <software name="tanteimr" supported="no"> |
| 12619 | | <description>Tantei Jinguuji Saburo - Mikan no Report (Japan)</description> |
| 12620 | | <year>199?</year> |
| 12621 | | <publisher><unknown></publisher> |
| 12914 | <description>Tantei Jinguuji Saburo - Mikan No Rupo (Popular Edition) (Japan)</description> |
| 12915 | <year>2000</year> |
| 12916 | <publisher>Data East</publisher> |
| 12917 | <info name="alt_title" value="普及版1,500円シリーズ 探偵神宮寺三郎 未完のルポ 普及版"/> |
| 12622 | 12918 | <info name="serial" value="SLPS-03016" /> |
| 12623 | 12919 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12624 | 12920 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12629 | 12925 | </software> |
| 12630 | 12926 | |
| 12631 | 12927 | <software name="tanteitk" supported="no"> |
| 12632 | | <description>Tantei Jinguuji Saburo - Tomoshibi ga Kienu Ma ni (Japan)</description> |
| 12633 | | <year>199?</year> |
| 12634 | | <publisher><unknown></publisher> |
| 12928 | <description>Tantei Jinguji Saburo - Tomosibi Ga Kienumani (Japan)</description> |
| 12929 | <year>1999</year> |
| 12930 | <publisher>Data East</publisher> |
| 12931 | <info name="alt_title" value="探偵 神宮寺三郎 灯火が消えぬ間に"/> |
| 12635 | 12932 | <info name="serial" value="SLPS-02427" /> |
| 12636 | 12933 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12637 | 12934 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12642 | 12939 | </software> |
| 12643 | 12940 | |
| 12644 | 12941 | <software name="tanteiyo" supported="no"> |
| 12645 | | <description>Tantei Jinguuji Saburo - Yume no Owari ni (Japan)</description> |
| 12646 | | <year>199?</year> |
| 12647 | | <publisher><unknown></publisher> |
| 12942 | <description>Tantei Jinguji Saburo - Yumeno Owarini (Japan)</description> |
| 12943 | <year>1998</year> |
| 12944 | <publisher>Data East</publisher> |
| 12945 | <info name="alt_title" value="探偵 神宮寺三郎 夢の終わりに"/> |
| 12648 | 12946 | <info name="serial" value="SLPS-01356" /> |
| 12649 | 12947 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12650 | 12948 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12656 | 12954 | |
| 12657 | 12955 | <software name="tatsunok" supported="no"> |
| 12658 | 12956 | <description>Tatsunoko Fight (Japan)</description> |
| 12659 | | <year>199?</year> |
| 12660 | | <publisher><unknown></publisher> |
| 12957 | <year>2000</year> |
| 12958 | <publisher>Takara</publisher> |
| 12959 | <info name="alt_title" value="タツノコファイトt"/> |
| 12661 | 12960 | <info name="serial" value="SLPS-02939" /> |
| 12662 | 12961 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12663 | 12962 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12668 | 12967 | </software> |
| 12669 | 12968 | |
| 12670 | 12969 | <software name="tenmadej" supported="no"> |
| 12671 | | <description>Ten Made Jack (Japan)</description> |
| 12672 | | <year>199?</year> |
| 12673 | | <publisher><unknown></publisher> |
| 12970 | <description>Ten Made Jack / Tenma de Jack - Odoroki Manenoki Daitoubou (Japan)</description> |
| 12971 | <year>2000</year> |
| 12972 | <publisher>Enix</publisher> |
| 12973 | <info name="alt_title" value="天までジャック オドロキマメノキ大逃亡!!"/> |
| 12674 | 12974 | <info name="serial" value="SLPM-86368" /> |
| 12675 | 12975 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12676 | 12976 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12682 | 12982 | |
| 12683 | 12983 | <software name="tenantwa" supported="no"> |
| 12684 | 12984 | <description>Tenant Wars (Japan)</description> |
| 12685 | | <year>199?</year> |
| 12686 | | <publisher><unknown></publisher> |
| 12985 | <year>1998</year> |
| 12986 | <publisher>Kid</publisher> |
| 12987 | <info name="alt_title" value="テナントウォーズ"/> |
| 12687 | 12988 | <info name="serial" value="SLPS-01243" /> |
| 12688 | 12989 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12689 | 12990 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12695 | 12996 | |
| 12696 | 12997 | <software name="tenchimu" supported="no"> |
| 12697 | 12998 | <description>Tenchi Muyou! Toukou Muyou - No Need for School (Japan)</description> |
| 12698 | | <year>199?</year> |
| 12699 | | <publisher><unknown></publisher> |
| 12999 | <year>1996</year> |
| 13000 | <publisher>Xing</publisher> |
| 13001 | <info name="alt_title" value="天地無用! 〜登校無用〜"/> |
| 12700 | 13002 | <info name="serial" value="SLPS-00451, SLPS-00452" /> |
| 12701 | 13003 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12702 | 13004 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12713 | 13015 | |
| 12714 | 13016 | <software name="tenchiwo" supported="no"> |
| 12715 | 13017 | <description>Tenchi wo Kurau II - Sekiheki no Tatakai (Japan)</description> |
| 12716 | | <year>199?</year> |
| 12717 | | <publisher><unknown></publisher> |
| 13018 | <year>1996</year> |
| 13019 | <publisher>Capcom</publisher> |
| 13020 | <info name="alt_title" value="天地を喰らうII"/> |
| 12718 | 13021 | <info name="serial" value="SLPS-00203" /> |
| 12719 | 13022 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12720 | 13023 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12726 | 13029 | |
| 12727 | 13030 | <software name="tennisar" supported="no"> |
| 12728 | 13031 | <description>Tennis Arena (Japan)</description> |
| 12729 | | <year>199?</year> |
| 12730 | | <publisher><unknown></publisher> |
| 13032 | <year>1998</year> |
| 13033 | <publisher>Ubi Soft</publisher> |
| 13034 | <info name="alt_title" value="TENNIS ARENA"/> |
| 12731 | 13035 | <info name="serial" value="SLPS-01303" /> |
| 12732 | 13036 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12733 | 13037 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12738 | 13042 | </software> |
| 12739 | 13043 | |
| 12740 | 13044 | <software name="tensenny" supported="no"> |
| 12741 | | <description>Tensen-Nyannyan - Gekijou-ban (Japan)</description> |
| 12742 | | <year>199?</year> |
| 12743 | | <publisher><unknown></publisher> |
| 13045 | <description>Tensen Nyannyan Gekigyouban (Japan)</description> |
| 13046 | <year>1998</year> |
| 13047 | <publisher>Time Point</publisher> |
| 13048 | <info name="alt_title" value="天仙娘々〜劇場版〜"/> |
| 12744 | 13049 | <info name="serial" value="SLPS-01278" /> |
| 12745 | 13050 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12746 | 13051 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12752 | 13057 | |
| 12753 | 13058 | <software name="tenshino" supported="no"> |
| 12754 | 13059 | <description>Tenshi no Shippo (Japan)</description> |
| 12755 | | <year>199?</year> |
| 12756 | | <publisher><unknown></publisher> |
| 13060 | <year>2003</year> |
| 13061 | <publisher>Bandai</publisher> |
| 13062 | <info name="alt_title" value="天使のしっぽ"/> |
| 12757 | 13063 | <info name="serial" value="SLPS-03531" /> |
| 12758 | 13064 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12759 | 13065 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12765 | 13071 | |
| 12766 | 13072 | <software name="tetrisxj" supported="no"> |
| 12767 | 13073 | <description>Tetris X (Japan)</description> |
| 12768 | | <year>199?</year> |
| 12769 | | <publisher><unknown></publisher> |
| 13074 | <year>1996</year> |
| 13075 | <publisher>Bullet Proof</publisher> |
| 13076 | <info name="alt_title" value="テトリス X"/> |
| 12770 | 13077 | <info name="serial" value="SLPS-00321" /> |
| 12771 | 13078 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12772 | 13079 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12777 | 13084 | </software> |
| 12778 | 13085 | |
| 12779 | 13086 | <software name="tfxjapan" supported="no"> |
| 12780 | | <description>TFX (Japan)</description> |
| 12781 | | <year>199?</year> |
| 12782 | | <publisher><unknown></publisher> |
| 13087 | <description>TFX - Tactical Fighter Experiment (Japan)</description> |
| 13088 | <year>1996</year> |
| 13089 | <publisher>Imageneer / Ocean</publisher> |
| 13090 | <info name="alt_title" value="TFX"/> |
| 12783 | 13091 | <info name="serial" value="SLPS-00511" /> |
| 12784 | 13092 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12785 | 13093 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12791 | 13099 | |
| 12792 | 13100 | <software name="thatsqtj" supported="no"> |
| 12793 | 13101 | <description>That's QT (Japan)</description> |
| 12794 | | <year>199?</year> |
| 12795 | | <publisher><unknown></publisher> |
| 13102 | <year>2000</year> |
| 13103 | <publisher>Koei</publisher> |
| 13104 | <info name="alt_title" value="ザッツキューティ"/> |
| 12796 | 13105 | <info name="serial" value="SLPM-86340" /> |
| 12797 | 13106 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12798 | 13107 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12804 | 13113 | |
| 12805 | 13114 | <software name="themehos" supported="no"> |
| 12806 | 13115 | <description>Theme Hospital (Japan)</description> |
| 12807 | | <year>199?</year> |
| 12808 | | <publisher><unknown></publisher> |
| 13116 | <year>1998</year> |
| 13117 | <publisher>Electronic Arts</publisher> |
| 13118 | <info name="alt_title" value="テーマホスピタル"/> |
| 12809 | 13119 | <info name="serial" value="SLPS-01405" /> |
| 12810 | 13120 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12811 | 13121 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12816 | 13126 | </software> |
| 12817 | 13127 | |
| 12818 | 13128 | <software name="thunderf" supported="no"> |
| 12819 | | <description>Thunderforce V - Perfect System (Japan)</description> |
| 12820 | | <year>199?</year> |
| 12821 | | <publisher><unknown></publisher> |
| 13129 | <description>Thunder Force V - Perfect System (Japan)</description> |
| 13130 | <year>1998</year> |
| 13131 | <publisher>TechnoSoft</publisher> |
| 13132 | <info name="alt_title" value="サンダー・フォースV ~パーフェクト・システム~"/> |
| 12822 | 13133 | <info name="serial" value="SLPS-01406" /> |
| 12823 | 13134 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12824 | 13135 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12830 | 13141 | |
| 12831 | 13142 | <software name="timegaln" supported="no"> |
| 12832 | 13143 | <description>Time Gal & Ninja Hayate (Japan)</description> |
| 12833 | | <year>199?</year> |
| 12834 | | <publisher><unknown></publisher> |
| 13144 | <year>1996</year> |
| 13145 | <publisher>Taito</publisher> |
| 13146 | <info name="alt_title" value="タイムギャル&忍者ハヤテ"/> |
| 12835 | 13147 | <info name="serial" value="SLPS-00383, SLPS-00384" /> |
| 12836 | 13148 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12837 | 13149 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12848 | 13160 | |
| 12849 | 13161 | <software name="tinybull" supported="no"> |
| 12850 | 13162 | <description>Tiny Bullets (Japan)</description> |
| 12851 | | <year>199?</year> |
| 12852 | | <publisher><unknown></publisher> |
| 13163 | <year>2000</year> |
| 13164 | <publisher>Sony</publisher> |
| 13165 | <info name="alt_title" value="タイニーバレット"/> |
| 12853 | 13166 | <info name="serial" value="SCPS-10130" /> |
| 12854 | 13167 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12855 | 13168 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12861 | 13174 | |
| 12862 | 13175 | <software name="toheartj" supported="no"> |
| 12863 | 13176 | <description>To Heart (Japan)</description> |
| 12864 | | <year>199?</year> |
| 12865 | | <publisher><unknown></publisher> |
| 13177 | <year>1999</year> |
| 13178 | <publisher>Aqua Plus</publisher> |
| 13179 | <info name="alt_title" value="トゥハート"/> |
| 12866 | 13180 | <info name="serial" value="SLPS-01919, SLPS-01920" /> |
| 12867 | 13181 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12868 | 13182 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12879 | 13193 | |
| 12880 | 13194 | <software name="toaplans" supported="no"> |
| 12881 | 13195 | <description>Toaplan Shooting Battle 1 (Japan)</description> |
| 12882 | | <year>199?</year> |
| 12883 | | <publisher><unknown></publisher> |
| 13196 | <year>1996</year> |
| 13197 | <publisher>Banpresto</publisher> |
| 13198 | <info name="alt_title" value="東亜プラン シューティングバトル1"/> |
| 12884 | 13199 | <info name="serial" value="SLPS-00436" /> |
| 12885 | 13200 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12886 | 13201 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12893 | 13208 | <!-- OK, some problems with sky gfx --> |
| 12894 | 13209 | <software name="tocatour" supported="no"> |
| 12895 | 13210 | <description>Toca Touring Car Championship (Japan)</description> |
| 12896 | | <year>199?</year> |
| 12897 | | <publisher><unknown></publisher> |
| 13211 | <year>1998</year> |
| 13212 | <publisher>Upstar</publisher> |
| 13213 | <info name="alt_title" value="TOCA TOURINGCAR CHAMPION SHIP"/> |
| 12898 | 13214 | <info name="serial" value="SLPS-01410" /> |
| 12899 | 13215 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12900 | 13216 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12907 | 13223 | <!-- boot OK --> |
| 12908 | 13224 | <software name="tkpzldm" supported="no"> |
| 12909 | 13225 | <description>Tokimeki Memorial - Taisen Puzzle-Dama (Japan)</description> |
| 12910 | | <year>199?</year> |
| 12911 | | <publisher><unknown></publisher> |
| 13226 | <year>1996</year> |
| 13227 | <publisher>Konami</publisher> |
| 13228 | <info name="alt_title" value="ときめきメモリアル対戦ぱずるだま"/> |
| 12912 | 13229 | <info name="serial" value="SLPM-86005" /> |
| 12913 | 13230 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12914 | 13231 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12919 | 13236 | </software> |
| 12920 | 13237 | |
| 12921 | 13238 | <software name="tm2ev1" supported="no"> |
| 12922 | | <description>Tokimeki Memorial 2 Emotional Voice System (Vol.1 - Kotoko-Miyuki-Kaedeko) (Japan)</description> |
| 12923 | | <year>199?</year> |
| 12924 | | <publisher><unknown></publisher> |
| 13239 | <description>Tokimeki Memorial 2 EVS Append Disc 1 (Kotoko-Miyuki-Kaedeko) (Japan)</description> |
| 13240 | <year>2000</year> |
| 13241 | <publisher>Aspect</publisher> |
| 12925 | 13242 | <info name="serial" value="SLPM-80527" /> |
| 12926 | 13243 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12927 | 13244 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12932 | 13249 | </software> |
| 12933 | 13250 | |
| 12934 | 13251 | <software name="tm2ev2" supported="no"> |
| 12935 | | <description>Tokimeki Memorial 2 Emotional Voice System (Vol.2 - Homura-Akane-Kaori) (Japan)</description> |
| 12936 | | <year>199?</year> |
| 12937 | | <publisher><unknown></publisher> |
| 13252 | <description>Tokimeki Memorial 2 EVS Append Disc 2 (Homura-Akane-Kaori) (Japan)</description> |
| 13253 | <year>2000</year> |
| 13254 | <publisher>Aspect</publisher> |
| 12938 | 13255 | <info name="serial" value="SLPM-80544" /> |
| 12939 | 13256 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12940 | 13257 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12945 | 13262 | </software> |
| 12946 | 13263 | |
| 12947 | 13264 | <software name="tm2ev3" supported="no"> |
| 12948 | | <description>Tokimeki Memorial 2 Emotional Voice System (Vol.3 - Miho-Mei-Sumire) (Japan)</description> |
| 12949 | | <year>199?</year> |
| 12950 | | <publisher><unknown></publisher> |
| 13265 | <description>Tokimeki Memorial 2 EVS Append Disc 3 (Miho-Mei-Sumire) (Japan)</description> |
| 13266 | <year>2000</year> |
| 13267 | <publisher>Enterbrain</publisher> |
| 12951 | 13268 | <info name="serial" value="SLPM-80550" /> |
| 12952 | 13269 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12953 | 13270 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12958 | 13275 | </software> |
| 12959 | 13276 | |
| 12960 | 13277 | <software name="tm2s1" supported="no"> |
| 12961 | | <description>Tokimeki Memorial 2 Substories Vol.1 - Dancing Summer Vacation (Japan)</description> |
| 12962 | | <year>199?</year> |
| 12963 | | <publisher><unknown></publisher> |
| 13278 | <description>Tokimeki Memorial 2 Substories vol. 1 - Dancing Summer Vacation (Japan)</description> |
| 13279 | <year>2000</year> |
| 13280 | <publisher>Konami</publisher> |
| 13281 | <info name="alt_title" value="ときめきメモリアル2 Substories 〜Dancing Summer Vacation〜"/> |
| 12964 | 13282 | <info name="serial" value="SLPM-86549, SLPM-86550" /> |
| 12965 | 13283 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12966 | 13284 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12977 | 13295 | |
| 12978 | 13296 | <software name="tm2s2" supported="no"> |
| 12979 | 13297 | <description>Tokimeki Memorial 2 Substories Vol.2 - Leaping School Festival (Japan)</description> |
| 12980 | | <year>199?</year> |
| 12981 | | <publisher><unknown></publisher> |
| 13298 | <year>2001</year> |
| 13299 | <publisher>Konami</publisher> |
| 13300 | <info name="alt_title" value="ときめきメモリアル2 Substories 〜Leaping School Festival〜"/> |
| 12982 | 13301 | <info name="serial" value="SLPM-86775, SLPM-86776" /> |
| 12983 | 13302 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 12984 | 13303 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 12994 | 13313 | </software> |
| 12995 | 13314 | |
| 12996 | 13315 | <software name="tm2s3" supported="no"> |
| 12997 | | <description>Tokimeki Memorial 2 SubStories Vol.3 - Memories Ringing on (Japan)</description> |
| 12998 | | <year>199?</year> |
| 12999 | | <publisher><unknown></publisher> |
| 13316 | <description>Tokimeki Memorial 2 SubStories Vol.3 - Memories Ringing On (Japan)</description> |
| 13317 | <year>2001</year> |
| 13318 | <publisher>Konami</publisher> |
| 13319 | <info name="alt_title" value="ときめきメモリアル2 サブストーリーズ〜Memories Ringing On〜"/> |
| 13000 | 13320 | <info name="serial" value="SLPM-86881, SLPM-86882" /> |
| 13001 | 13321 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13002 | 13322 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13013 | 13333 | |
| 13014 | 13334 | <!-- boot ok --> |
| 13015 | 13335 | <software name="tmds1" supported="no"> |
| 13016 | | <description>Tokimeki Memorial Drama Series Vol.1 - Nijiiro no Seishun (Japan)</description> |
| 13017 | | <year>199?</year> |
| 13018 | | <publisher><unknown></publisher> |
| 13336 | <description>Tokimeki Memorial Drama Series Vol.1 - Nijiiro No Seishun (Konami the Best) (Japan)</description> |
| 13337 | <year>1999</year> |
| 13338 | <publisher>Konami</publisher> |
| 13339 | <info name="alt_title" value="タイトル:ときめきメモリアル ドラマシリーズVol.1 虹色の青春(ベスト)"/> |
| 13019 | 13340 | <info name="serial" value="SLPM-86360" /> |
| 13020 | 13341 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13021 | 13342 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13028 | 13349 | <!-- boot ok --> |
| 13029 | 13350 | <software name="tokyomaj" supported="no"> |
| 13030 | 13351 | <description>Tokyo Majin Gakuen Gehouchou (Japan)</description> |
| 13031 | | <year>199?</year> |
| 13032 | | <publisher><unknown></publisher> |
| 13352 | <year>2002</year> |
| 13353 | <publisher>Asmik Ace</publisher> |
| 13354 | <info name="alt_title" value="東京魔人学園外法帖"/> |
| 13033 | 13355 | <info name="serial" value="SLPS-03333, SLPS-03334, SLPS-03335" /> |
| 13034 | 13356 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13035 | 13357 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13052 | 13374 | <!-- black screen --> |
| 13053 | 13375 | <software name="tomba" supported="no"> |
| 13054 | 13376 | <description>Tomba! The Wild Adventures (Japan)</description> |
| 13055 | | <year>199?</year> |
| 13056 | | <publisher><unknown></publisher> |
| 13377 | <year>1999</year> |
| 13378 | <publisher>Whoopee Camp</publisher> |
| 13379 | <info name="alt_title" value="トンバ! ザ・ワイルドアドベンチャー"/> |
| 13057 | 13380 | <info name="serial" value="SLPS-02350" /> |
| 13058 | 13381 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13059 | 13382 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13065 | 13388 | |
| 13066 | 13389 | <!-- boot ok --> |
| 13067 | 13390 | <software name="tomikato" supported="no"> |
| 13068 | | <description>Tomikatown wo Tukurou! (Japan)</description> |
| 13069 | | <year>199?</year> |
| 13070 | | <publisher><unknown></publisher> |
| 13391 | <description>Tomica Town o Tsukurou! (Japan)</description> |
| 13392 | <year>1999</year> |
| 13393 | <publisher>Tomy</publisher> |
| 13394 | <info name="alt_title" value="トミカタウンをつくろう!"/> |
| 13071 | 13395 | <info name="serial" value="SLPS-01935" /> |
| 13072 | 13396 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13073 | 13397 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13080 | 13404 | <!-- hangs on now loading --> |
| 13081 | 13405 | <software name="topoloja" supported="no"> |
| 13082 | 13406 | <description>ToPoLo (Japan)</description> |
| 13083 | | <year>199?</year> |
| 13084 | | <publisher><unknown></publisher> |
| 13407 | <year>1996</year> |
| 13408 | <publisher>Artdink</publisher> |
| 13409 | <info name="alt_title" value="ToPoLo"/> |
| 13085 | 13410 | <info name="serial" value="SLPS-00620" /> |
| 13086 | 13411 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13087 | 13412 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13094 | 13419 | <!-- black screen after company logos --> |
| 13095 | 13420 | <software name="toshcard" supported="no"> |
| 13096 | 13421 | <description>Toshinden Card Quest (Japan)</description> |
| 13097 | | <year>199?</year> |
| 13098 | | <publisher><unknown></publisher> |
| 13422 | <year>1998</year> |
| 13423 | <publisher>Takara</publisher> |
| 13424 | <info name="alt_title" value="闘神伝 カードクエスト"/> |
| 13099 | 13425 | <info name="serial" value="SLPS-01113" /> |
| 13100 | 13426 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13101 | 13427 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13108 | 13434 | <!-- black screen --> |
| 13109 | 13435 | <software name="tougemax" supported="no"> |
| 13110 | 13436 | <description>Touge Max G (Japan)</description> |
| 13111 | | <year>199?</year> |
| 13112 | | <publisher><unknown></publisher> |
| 13437 | <year>2000</year> |
| 13438 | <publisher>Atlus</publisher> |
| 13439 | <info name="alt_title" value="峠MAX G"/> |
| 13113 | 13440 | <info name="serial" value="SLPS-02361" /> |
| 13114 | 13441 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13115 | 13442 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13122 | 13449 | <!-- boot OK --> |
| 13123 | 13450 | <software name="toukiden" supported="no"> |
| 13124 | 13451 | <description>Touki Denshou - Angel Eyes (Japan)</description> |
| 13125 | | <year>199?</year> |
| 13126 | | <publisher><unknown></publisher> |
| 13452 | <year>1997</year> |
| 13453 | <publisher>Tecmo</publisher> |
| 13454 | <info name="alt_title" value="闘姫伝承 ANGEL EYES"/> |
| 13127 | 13455 | <info name="serial" value="SLPS-01168" /> |
| 13128 | 13456 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13129 | 13457 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13136 | 13464 | <!-- boot OK --> |
| 13137 | 13465 | <software name="toyotane" supported="no"> |
| 13138 | 13466 | <description>Toyota Netz Racing (Japan)</description> |
| 13139 | | <year>199?</year> |
| 13140 | | <publisher><unknown></publisher> |
| 13467 | <year>1999</year> |
| 13468 | <publisher>Atlus</publisher> |
| 13469 | <info name="alt_title" value="ソフト ネッツ・レーシング"/> |
| 13141 | 13470 | <info name="serial" value="SLPM-80429" /> |
| 13142 | 13471 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13143 | 13472 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13150 | 13479 | <!-- boot ok --> |
| 13151 | 13480 | <software name="toysdrea" supported="no"> |
| 13152 | 13481 | <description>Toys Dream (Japan)</description> |
| 13153 | | <year>199?</year> |
| 13154 | | <publisher><unknown></publisher> |
| 13482 | <year>1998</year> |
| 13483 | <publisher>KSS</publisher> |
| 13484 | <info name="alt_title" value="トイズドリーム"/> |
| 13155 | 13485 | <info name="serial" value="SLPS-01704" /> |
| 13156 | 13486 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13157 | 13487 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13164 | 13494 | <!-- boot OK --> |
| 13165 | 13495 | <software name="tripuzzj" supported="no"> |
| 13166 | 13496 | <description>Tripuzz (Japan)</description> |
| 13167 | | <year>199?</year> |
| 13168 | | <publisher><unknown></publisher> |
| 13169 | | <info name="serial" value="SLPS-0911" /> |
| 13497 | <year>1997</year> |
| 13498 | <publisher>Santos</publisher> |
| 13499 | <info name="alt_title" value="トリパズ"/> |
| 13500 | <info name="serial" value="SLPS-00911" /> |
| 13170 | 13501 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13171 | 13502 | <part name="cdrom" interface="psx_cdrom"> |
| 13172 | 13503 | <diskarea name="cdrom"> |
| 13173 | | <disk name="tripuzz (japan) [slps-0911]" sha1="ee7b2282597dde183796d7a1b50994565e047f4d"/> |
| 13504 | <disk name="tripuzz (japan) [slps-00911]" sha1="ee7b2282597dde183796d7a1b50994565e047f4d"/> |
| 13174 | 13505 | </diskarea> |
| 13175 | 13506 | </part> |
| 13176 | 13507 | </software> |
| r242231 | r242232 | |
| 13178 | 13509 | <!-- boot ok --> |
| 13179 | 13510 | <software name="trumpshi" supported="no"> |
| 13180 | 13511 | <description>Trump Shiyouyo! (Japan)</description> |
| 13181 | | <year>199?</year> |
| 13182 | | <publisher><unknown></publisher> |
| 13512 | <year>1998</year> |
| 13513 | <publisher>Bottom Up</publisher> |
| 13514 | <info name="alt_title" value="トランプしようよ!"/> |
| 13183 | 13515 | <info name="serial" value="SLPS-01440" /> |
| 13184 | 13516 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13185 | 13517 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13194 | 13526 | <description>Tsun-tsun-gumi 2 - Moji Moji Bakkun (Japan)</description> |
| 13195 | 13527 | <year>199?</year> |
| 13196 | 13528 | <publisher><unknown></publisher> |
| 13529 | <info name="alt_title" value=""/> |
| 13197 | 13530 | <info name="serial" value="SLPS-01694" /> |
| 13198 | 13531 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13199 | 13532 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13206 | 13539 | <!-- boot ok --> |
| 13207 | 13540 | <software name="tsuntsu3" supported="no"> |
| 13208 | 13541 | <description>Tsun-tsun-gumi 3 - Kanji Vader (Japan)</description> |
| 13209 | | <year>199?</year> |
| 13210 | | <publisher><unknown></publisher> |
| 13542 | <year>1998</year> |
| 13543 | <publisher>Kodansha</publisher> |
| 13544 | <info name="alt_title" value="つんつん組3 〜もじもじぱっくん〜"/> |
| 13211 | 13545 | <info name="serial" value="SLPS-01839" /> |
| 13212 | 13546 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13213 | 13547 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13220 | 13554 | <!-- black screen --> |
| 13221 | 13555 | <software name="tsuribak" supported="no"> |
| 13222 | 13556 | <description>Tsuri Baka Nisshi (Japan)</description> |
| 13223 | | <year>199?</year> |
| 13224 | | <publisher><unknown></publisher> |
| 13557 | <year>1996</year> |
| 13558 | <publisher>Shogakukan</publisher> |
| 13559 | <info name="alt_title" value="釣りバカ日誌"/> |
| 13225 | 13560 | <info name="serial" value="SLPS-00440" /> |
| 13226 | 13561 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13227 | 13562 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13234 | 13569 | <!-- boot ok --> |
| 13235 | 13570 | <software name="tvanimat" supported="no"> |
| 13236 | 13571 | <description>TV Animation X - Unmei no Tatakai (Japan)</description> |
| 13237 | | <year>199?</year> |
| 13238 | | <publisher><unknown></publisher> |
| 13572 | <year>2002</year> |
| 13573 | <publisher>Bandai</publisher> |
| 13574 | <info name="alt_title" value="TVanimation X〜運命の選択〜"/> |
| 13239 | 13575 | <info name="serial" value="SLPS-03459" /> |
| 13240 | 13576 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13241 | 13577 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13248 | 13584 | <!-- black screen --> |
| 13249 | 13585 | <software name="twingodd" supported="no"> |
| 13250 | 13586 | <description>Twin Goddesses (Japan)</description> |
| 13251 | | <year>199?</year> |
| 13252 | | <publisher><unknown></publisher> |
| 13587 | <year>1994</year> |
| 13588 | <publisher>PolyGram</publisher> |
| 13589 | <info name="alt_title" value="ツイン・ゴッデス"/> |
| 13253 | 13590 | <info name="serial" value="SLPS-00018" /> |
| 13254 | 13591 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13255 | 13592 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13262 | 13599 | <!-- black screen --> |
| 13263 | 13600 | <software name="twinbeet" supported="no"> |
| 13264 | 13601 | <description>Twinbee Taisen Puzzle-Dama (Japan)</description> |
| 13265 | | <year>199?</year> |
| 13266 | | <publisher><unknown></publisher> |
| 13602 | <year>1994</year> |
| 13603 | <publisher>Konami</publisher> |
| 13604 | <info name="alt_title" value="ツインビー対戦ぱずるだま"/> |
| 13267 | 13605 | <info name="serial" value="SLPS-00015" /> |
| 13268 | 13606 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13269 | 13607 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13276 | 13614 | <!-- boot ok --> |
| 13277 | 13615 | <software name="twinbeer" supported="no"> |
| 13278 | 13616 | <description>TwinBee-RPG (Japan)</description> |
| 13279 | | <year>199?</year> |
| 13280 | | <publisher><unknown></publisher> |
| 13617 | <year>1998</year> |
| 13618 | <publisher>Konami</publisher> |
| 13619 | <info name="alt_title" value="ツインビーRPG"/> |
| 13281 | 13620 | <info name="serial" value="SLPM-86077" /> |
| 13282 | 13621 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13283 | 13622 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13289 | 13628 | |
| 13290 | 13629 | <!-- boot ok --> |
| 13291 | 13630 | <software name="twinssto" supported="no"> |
| 13292 | | <description>Twins Story (Japan)</description> |
| 13293 | | <year>199?</year> |
| 13294 | | <publisher><unknown></publisher> |
| 13631 | <description>Twins Story - Kimi ni Tsutaetakute (Japan)</description> |
| 13632 | <year>1999</year> |
| 13633 | <publisher>Panther</publisher> |
| 13634 | <info name="alt_title" value="ツインズストーリー きみにつたえたくて・・・"/> |
| 13295 | 13635 | <info name="serial" value="SLPS-02126" /> |
| 13296 | 13636 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13297 | 13637 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13304 | 13644 | <!-- boot OK --> |
| 13305 | 13645 | <software name="twotenka" supported="no"> |
| 13306 | 13646 | <description>Two-Tenkaku (Japan)</description> |
| 13307 | | <year>199?</year> |
| 13308 | | <publisher><unknown></publisher> |
| 13647 | <year>1995</year> |
| 13648 | <publisher>Sony</publisher> |
| 13649 | <info name="alt_title" value="通天閣"/> |
| 13309 | 13650 | <info name="serial" value="SLPS-00131" /> |
| 13310 | 13651 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13311 | 13652 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13333 | 13674 | <!-- boot ok --> |
| 13334 | 13675 | <software name="ufoadayi" supported="no"> |
| 13335 | 13676 | <description>UFO - A Day in the Life (Japan)</description> |
| 13336 | | <year>199?</year> |
| 13337 | | <publisher><unknown></publisher> |
| 13677 | <year>1999</year> |
| 13678 | <publisher>ASCII</publisher> |
| 13679 | <info name="alt_title" value="UFO ~A day in the life~"/> |
| 13338 | 13680 | <info name="serial" value="SLPS-02032" /> |
| 13339 | 13681 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13340 | 13682 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13347 | 13689 | <!-- black screen, bad sounds --> |
| 13348 | 13690 | <software name="ugetsuki" supported="no"> |
| 13349 | 13691 | <description>Ugetsu Kitan (Japan)</description> |
| 13350 | | <year>199?</year> |
| 13351 | | <publisher><unknown></publisher> |
| 13692 | <year>1996</year> |
| 13693 | <publisher>Tonkin House</publisher> |
| 13694 | <info name="alt_title" value="雨月奇譚 〜うげつきたん〜"/> |
| 13352 | 13695 | <info name="serial" value="SLPS-00391" /> |
| 13353 | 13696 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13354 | 13697 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13361 | 13704 | <!-- boot ok --> |
| 13362 | 13705 | <software name="ukiukits" supported="no"> |
| 13363 | 13706 | <description>Ukiuki Tsuri Tengoku - Uogami Densetsu wo Oe (Japan)</description> |
| 13364 | | <year>199?</year> |
| 13365 | | <publisher><unknown></publisher> |
| 13707 | <year>2000</year> |
| 13708 | <publisher>Teichiku</publisher> |
| 13709 | <info name="alt_title" value="ウキウキ釣り天国〜魚神伝説を追え〜"/> |
| 13366 | 13710 | <info name="serial" value="SLPS-02579" /> |
| 13367 | 13711 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13368 | 13712 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13375 | 13719 | <!-- stuck on sony logo --> |
| 13376 | 13720 | <software name="ultimaun" supported="no"> |
| 13377 | 13721 | <description>Ultima Underworld - The Stygian Abyss (Japan)</description> |
| 13378 | | <year>199?</year> |
| 13379 | | <publisher><unknown></publisher> |
| 13722 | <year>1997</year> |
| 13723 | <publisher>Electronic Arts</publisher> |
| 13724 | <info name="alt_title" value="ウルティマ アンダーワールド"/> |
| 13380 | 13725 | <info name="serial" value="SLPS-00742" /> |
| 13381 | 13726 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13382 | 13727 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13388 | 13733 | |
| 13389 | 13734 | <!-- boot ok --> |
| 13390 | 13735 | <software name="ultraman" supported="no"> |
| 13391 | | <description>Ultraman Tiga & Dyna Fighting Evolution - New Generations (Japan)</description> |
| 13392 | | <year>199?</year> |
| 13393 | | <publisher><unknown></publisher> |
| 13736 | <description>Ultraman Tiga & Ultraman Dyna Fighting Evolution - New Generations (Japan)</description> |
| 13737 | <year>1998</year> |
| 13738 | <publisher>Bandai</publisher> |
| 13739 | <info name="alt_title" value="ウルトラマンティガ&ダイナ 新たなる2つの光"/> |
| 13394 | 13740 | <info name="serial" value="SLPS-01455" /> |
| 13395 | 13741 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13396 | 13742 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13403 | 13749 | <!-- boot ok --> |
| 13404 | 13750 | <software name="ultramze" supported="no"> |
| 13405 | 13751 | <description>Ultraman Zearth (Japan)</description> |
| 13406 | | <year>199?</year> |
| 13407 | | <publisher><unknown></publisher> |
| 13752 | <year>1996</year> |
| 13753 | <publisher>Tohoku Shinsha</publisher> |
| 13754 | <info name="alt_title" value="ウルトラマンゼアス"/> |
| 13408 | 13755 | <info name="serial" value="SLPS-00652" /> |
| 13409 | 13756 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13410 | 13757 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13416 | 13763 | |
| 13417 | 13764 | <!-- black screen after company logos --> |
| 13418 | 13765 | <software name="uminonus" supported="no"> |
| 13419 | | <description>Umi no Nushi Tsuri (Japan)</description> |
| 13420 | | <year>199?</year> |
| 13421 | | <publisher><unknown></publisher> |
| 13766 | <description>Umi No Nushi Tsuri Takarajimi NI Mukatte (Japan)</description> |
| 13767 | <year>1999</year> |
| 13768 | <publisher>Pack-in-Soft</publisher> |
| 13769 | <info name="alt_title" value="海のぬし釣り−宝島に向かって−"/> |
| 13422 | 13770 | <info name="serial" value="SLPS-02172" /> |
| 13423 | 13771 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13424 | 13772 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13430 | 13778 | |
| 13431 | 13779 | <!-- black screen --> |
| 13432 | 13780 | <software name="umiharak" supported="no"> |
| 13433 | | <description>Umihara Kawase Shun - Second Edition (Japan)</description> |
| 13434 | | <year>199?</year> |
| 13435 | | <publisher><unknown></publisher> |
| 13781 | <description>Umihara Kawase Shun - Second Edition (Maruan Series 1) (Japan)</description> |
| 13782 | <year>2000</year> |
| 13783 | <publisher>Xing</publisher> |
| 13784 | <info name="alt_title" value="マル安シリーズ1 海腹川背・旬 〜セカンドエディション〜"/> |
| 13436 | 13785 | <info name="serial" value="SLPS-02549" /> |
| 13437 | 13786 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13438 | 13787 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13445 | 13794 | <!-- boot ok --> |
| 13446 | 13795 | <software name="ungrawal" supported="no"> |
| 13447 | 13796 | <description>Ungra Walker (Japan)</description> |
| 13448 | | <year>199?</year> |
| 13449 | | <publisher><unknown></publisher> |
| 13797 | <year>2002</year> |
| 13798 | <publisher>Success</publisher> |
| 13799 | <info name="alt_title" value="アングラウォーカー"/> |
| 13450 | 13800 | <info name="serial" value="SLPM-87055" /> |
| 13451 | 13801 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13452 | 13802 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13459 | 13809 | <!-- boot ok --> |
| 13460 | 13810 | <software name="urawazam" supported="no"> |
| 13461 | 13811 | <description>Urawaza Mahjong - Korette Tenhoutte Yatsukai (Japan)</description> |
| 13462 | | <year>199?</year> |
| 13463 | | <publisher><unknown></publisher> |
| 13812 | <year>2000</year> |
| 13813 | <publisher>Spike</publisher> |
| 13814 | <info name="alt_title" value="裏技麻雀〜これって天和ってやつかい〜"/> |
| 13464 | 13815 | <info name="serial" value="SLPS-02807" /> |
| 13465 | 13816 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13466 | 13817 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13473 | 13824 | <!-- boot OK --> |
| 13474 | 13825 | <software name="vtennis2" supported="no"> |
| 13475 | 13826 | <description>V-Tennis 2 (Japan)</description> |
| 13476 | | <year>199?</year> |
| 13477 | | <publisher><unknown></publisher> |
| 13478 | | <info name="serial" value="SLPS 00469" /> |
| 13827 | <year>1996</year> |
| 13828 | <publisher>Tonkin House</publisher> |
| 13829 | <info name="alt_title" value="Vテニス2"/> |
| 13830 | <info name="serial" value="SLPS-00469" /> |
| 13479 | 13831 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13480 | 13832 | <part name="cdrom" interface="psx_cdrom"> |
| 13481 | 13833 | <diskarea name="cdrom"> |
| r242231 | r242232 | |
| 13485 | 13837 | </software> |
| 13486 | 13838 | |
| 13487 | 13839 | <!-- boot ok, every other fmv frame broken --> |
| 13488 | | <software name="vampirek" supported="no"> |
| 13489 | | <description>Vampire - Kyuuketsuki Densetsu (Japan)</description> |
| 13490 | | <year>199?</year> |
| 13491 | | <publisher><unknown></publisher> |
| 13840 | <software name="vampirky" supported="no"> |
| 13841 | <description>Vampir Kyuuketsuki Densetsu (Japan)</description> |
| 13842 | <year>1999</year> |
| 13843 | <publisher>Artdink</publisher> |
| 13844 | <info name="alt_title" value="ヴァンピール 吸血鬼伝説"/> |
| 13492 | 13845 | <info name="serial" value="SLPS-01932" /> |
| 13493 | 13846 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13494 | 13847 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13501 | 13854 | <!-- boot ok --> |
| 13502 | 13855 | <software name="vehiclec" supported="no"> |
| 13503 | 13856 | <description>Vehicle Cavalier (Japan)</description> |
| 13504 | | <year>199?</year> |
| 13505 | | <publisher><unknown></publisher> |
| 13857 | <year>1996</year> |
| 13858 | <publisher>Vanguard Works</publisher> |
| 13859 | <info name="alt_title" value="ヴィーグル・キャヴァリアー"/> |
| 13506 | 13860 | <info name="serial" value="SLPS-00232" /> |
| 13507 | 13861 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13508 | 13862 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13515 | 13869 | <!-- boot ok --> |
| 13516 | 13870 | <software name="victorys" supported="no"> |
| 13517 | 13871 | <description>Victory Spike (Japan)</description> |
| 13518 | | <year>199?</year> |
| 13519 | | <publisher><unknown></publisher> |
| 13872 | <year>1996</year> |
| 13873 | <publisher>Imagineer</publisher> |
| 13874 | <info name="alt_title" value="ヴィクトリー・スパイク"/> |
| 13520 | 13875 | <info name="serial" value="SLPS-00372" /> |
| 13521 | 13876 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13522 | 13877 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13528 | 13883 | |
| 13529 | 13884 | <!-- black screen after copyrights --> |
| 13530 | 13885 | <software name="victoryz" supported="no"> |
| 13531 | | <description>Victory Zone (Japan)</description> |
| 13532 | | <year>199?</year> |
| 13533 | | <publisher><unknown></publisher> |
| 13886 | <description>Victory Zone - Real Pachinko Simulator (Japan)</description> |
| 13887 | <year>1995</year> |
| 13888 | <publisher>Sony</publisher> |
| 13889 | <info name="alt_title" value="ヴィクトリーゾーン"/> |
| 13534 | 13890 | <info name="serial" value="SCPS-10002" /> |
| 13535 | 13891 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13536 | 13892 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13543 | 13899 | <!-- black screen after memory card message --> |
| 13544 | 13900 | <software name="virtualh" supported="no"> |
| 13545 | 13901 | <description>Virtual Hiyru no Ken (Japan)</description> |
| 13546 | | <year>199?</year> |
| 13547 | | <publisher><unknown></publisher> |
| 13902 | <year>1997</year> |
| 13903 | <publisher>Culture Brain</publisher> |
| 13904 | <info name="alt_title" value="バーチャル飛龍の拳"/> |
| 13548 | 13905 | <info name="serial" value="SLPS-00338" /> |
| 13549 | 13906 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13550 | 13907 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13557 | 13914 | <!-- boot ok --> |
| 13558 | 13915 | <software name="virtualk" supported="no"> |
| 13559 | 13916 | <description>Virtual Kyotei '98 (Japan)</description> |
| 13560 | | <year>199?</year> |
| 13561 | | <publisher><unknown></publisher> |
| 13917 | <year>1998</year> |
| 13918 | <publisher>Nihon Bussan</publisher> |
| 13919 | <info name="alt_title" value="バーチャル競艇 '98"/> |
| 13562 | 13920 | <info name="serial" value="SLPS-01396" /> |
| 13563 | 13921 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13564 | 13922 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13571 | 13929 | <!-- boot ok --> |
| 13572 | 13930 | <software name="virtualp" supported="no"> |
| 13573 | 13931 | <description>Virtual Pro Wrestling (Japan)</description> |
| 13574 | | <year>199?</year> |
| 13575 | | <publisher><unknown></publisher> |
| 13932 | <year>1996</year> |
| 13933 | <publisher>Asmik Ace</publisher> |
| 13934 | <info name="alt_title" value="バーチャルプロレスリング"/> |
| 13576 | 13935 | <info name="serial" value="SLPS-00449" /> |
| 13577 | 13936 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13578 | 13937 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13585 | 13944 | <!-- boot ok --> |
| 13586 | 13945 | <software name="virus" supported="no"> |
| 13587 | 13946 | <description>Virus - The Battle Field (Japan)</description> |
| 13588 | | <year>199?</year> |
| 13589 | | <publisher><unknown></publisher> |
| 13947 | <year>1999</year> |
| 13948 | <publisher>PolyGram</publisher> |
| 13949 | <info name="alt_title" value="病毒 - 战场"/> |
| 13590 | 13950 | <info name="serial" value="SLPS-02008" /> |
| 13591 | 13951 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13592 | 13952 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13598 | 13958 | |
| 13599 | 13959 | <!-- boot ok --> |
| 13600 | 13960 | <software name="visionof" supported="no"> |
| 13601 | | <description>Vision Of Escaflowne, The (Japan)</description> |
| 13602 | | <year>199?</year> |
| 13603 | | <publisher><unknown></publisher> |
| 13961 | <description>Vision Of Escaflowne, The (Limited Edition) (Japan)</description> |
| 13962 | <year>1999</year> |
| 13963 | <publisher>Bandai</publisher> |
| 13964 | <info name="alt_title" value="天空のエスカフローネ限定版 Fortune BOX"/> |
| 13604 | 13965 | <info name="serial" value="SLPS-01014" /> |
| 13605 | 13966 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13606 | 13967 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13613 | 13974 | <!-- hangs loading afte initial fmv --> |
| 13614 | 13975 | <software name="volfossj" supported="no"> |
| 13615 | 13976 | <description>Volfoss (Japan)</description> |
| 13616 | | <year>199?</year> |
| 13617 | | <publisher><unknown></publisher> |
| 13977 | <year>2001</year> |
| 13978 | <publisher>Namco</publisher> |
| 13979 | <info name="alt_title" value="ボルフォス"/> |
| 13618 | 13980 | <info name="serial" value="SLPS-03140" /> |
| 13619 | 13981 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13620 | 13982 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13626 | 13988 | |
| 13627 | 13989 | <!-- boot ok --> |
| 13628 | 13990 | <software name="wagamama" supported="no"> |
| 13629 | | <description>Wagamama Fairy Mirumo de Pon! (Japan)</description> |
| 13630 | | <year>199?</year> |
| 13631 | | <publisher><unknown></publisher> |
| 13991 | <description>Wagamama Fairy Mirumo de Pon! - Mirumo no Mahou Gakkou Monogatari (Japan)</description> |
| 13992 | <year>2003</year> |
| 13993 | <publisher>Konami</publisher> |
| 13994 | <info name="alt_title" value="わがままフェアリーミルモでポン! ミルモの魔法学校ものがたり"/> |
| 13632 | 13995 | <info name="serial" value="SLPM-87220" /> |
| 13633 | 13996 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13634 | 13997 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13641 | 14004 | <!-- boot ok --> |
| 13642 | 14005 | <software name="wangantr" supported="no"> |
| 13643 | 14006 | <description>Wangan Trial (Japan)</description> |
| 13644 | | <year>199?</year> |
| 13645 | | <publisher><unknown></publisher> |
| 14007 | <year>1998</year> |
| 14008 | <publisher>Pack-in-Soft</publisher> |
| 14009 | <info name="alt_title" value="湾岸トライアル"/> |
| 13646 | 14010 | <info name="serial" value="SLPS-01213, SLPS-01214" /> |
| 13647 | 14011 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13648 | 14012 | <part name="cdrom1" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13659 | 14023 | |
| 13660 | 14024 | <!-- boot ok --> |
| 13661 | 14025 | <software name="warerami" supported="no"> |
| 13662 | | <description>Warera Mitsurin Tankentai!! (Japan)</description> |
| 13663 | | <year>199?</year> |
| 13664 | | <publisher><unknown></publisher> |
| 14026 | <description>Warera Mitsubayashi Tankentai!! (Japan)</description> |
| 14027 | <year>2000</year> |
| 14028 | <publisher>Victor</publisher> |
| 14029 | <info name="alt_title" value="われら密林探検隊!!"/> |
| 13665 | 14030 | <info name="serial" value="SLPS-02658" /> |
| 13666 | 14031 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13667 | 14032 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13673 | 14038 | |
| 13674 | 14039 | <!-- boot ok --> |
| 13675 | 14040 | <software name="watersum" supported="no"> |
| 13676 | | <description>Water Summer (Japan)</description> |
| 13677 | | <year>199?</year> |
| 13678 | | <publisher><unknown></publisher> |
| 14041 | <description>Water Summer (Limited Edition) (Japan)</description> |
| 14042 | <year>2002</year> |
| 14043 | <publisher>Princess Soft</publisher> |
| 14044 | <info name="alt_title" value="WATER SUMMER(初回限定版)"/> |
| 13679 | 14045 | <info name="serial" value="SLPM-87085" /> |
| 13680 | 14046 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13681 | 14047 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13687 | 14053 | |
| 13688 | 14054 | <!-- boot ok --> |
| 13689 | 14055 | <software name="weddingp" supported="no"> |
| 13690 | | <description>Wedding Peach - Doki Doki Oironaoshi Fashion Daisakuse (Japan)</description> |
| 13691 | | <year>199?</year> |
| 13692 | | <publisher><unknown></publisher> |
| 14056 | <description>Wedding Peach - Doki Doki Oiro-Naoshi Fashion Daisakusen (Japan)</description> |
| 14057 | <year>1996</year> |
| 14058 | <publisher>KSS</publisher> |
| 14059 | <info name="alt_title" value="ウェディングピーチ ドキドキお色直し"/> |
| 13693 | 14060 | <info name="serial" value="SLPS-00368" /> |
| 13694 | 14061 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13695 | 14062 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13702 | 14069 | <!-- stuck on sony logo --> |
| 13703 | 14070 | <software name="welcomeh" supported="no"> |
| 13704 | 14071 | <description>Welcome House</description> |
| 13705 | | <year>199?</year> |
| 13706 | | <publisher><unknown></publisher> |
| 13707 | | <info name="serial" value="Welcome Hous" /> |
| 14072 | <year>1996</year> |
| 14073 | <publisher>Gust</publisher> |
| 14074 | <info name="alt_title" value="ウエルカムハウス"/> |
| 14075 | <info name="serial" value="SLPS-00190" /> |
| 13708 | 14076 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13709 | 14077 | <part name="cdrom" interface="psx_cdrom"> |
| 13710 | 14078 | <diskarea name="cdrom"> |
| 13711 | | <disk name="welcome house" sha1="0aa66eca197e87d56c0cc30c45dbdb311883d3d9"/> |
| 14079 | <disk name="welcome house (japan) [slps-00190]" sha1="0aa66eca197e87d56c0cc30c45dbdb311883d3d9"/> |
| 13712 | 14080 | </diskarea> |
| 13713 | 14081 | </part> |
| 13714 | 14082 | </software> |
| r242231 | r242232 | |
| 13716 | 14084 | <!-- boot ok --> |
| 13717 | 14085 | <software name="weltorve" supported="no"> |
| 13718 | 14086 | <description>Weltorv Estleia (Japan)</description> |
| 13719 | | <year>199?</year> |
| 13720 | | <publisher><unknown></publisher> |
| 14087 | <year>1999</year> |
| 14088 | <publisher>Hudson</publisher> |
| 14089 | <info name="alt_title" value="ウエルト オブ イストリア"/> |
| 13721 | 14090 | <info name="serial" value="SLPS-01887" /> |
| 13722 | 14091 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13723 | 14092 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13730 | 14099 | <!-- boot ok --> |
| 13731 | 14100 | <software name="whitedia" supported="no"> |
| 13732 | 14101 | <description>White Diamond (Japan)</description> |
| 13733 | | <year>199?</year> |
| 13734 | | <publisher><unknown></publisher> |
| 14102 | <year>1999</year> |
| 14103 | <publisher>Escot</publisher> |
| 14104 | <info name="alt_title" value="ホワイトダイアモンド"/> |
| 13735 | 14105 | <info name="serial" value="SLPS-02352" /> |
| 13736 | 14106 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13737 | 14107 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13744 | 14114 | <!-- hangs / gets stuck on loading screen playing bad sound --> |
| 13745 | 14115 | <software name="wingover" supported="no"> |
| 13746 | 14116 | <description>Wing Over (Japan)</description> |
| 13747 | | <year>199?</year> |
| 14117 | <year>1997</year> |
| 13748 | 14118 | <publisher><unknown></publisher> |
| 14119 | <info name="alt_title" value="ウイングオーバー"/> |
| 13749 | 14120 | <info name="serial" value="SLPS-00598" /> |
| 13750 | 14121 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13751 | 14122 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13758 | 14129 | <!-- boot ok --> |
| 13759 | 14130 | <software name="wizardsh" supported="no"> |
| 13760 | 14131 | <description>Wizard's Harmony R (Japan)</description> |
| 13761 | | <year>199?</year> |
| 13762 | | <publisher><unknown></publisher> |
| 14132 | <year>1998</year> |
| 14133 | <publisher>Arc System Works</publisher> |
| 14134 | <info name="alt_title" value="Wizard's Harmony R"/> |
| 13763 | 14135 | <info name="serial" value="SLPS-01716" /> |
| 13764 | 14136 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13765 | 14137 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13772 | 14144 | <!-- boot ok --> |
| 13773 | 14145 | <software name="wolffang" supported="no"> |
| 13774 | 14146 | <description>Wolf Fang (Japan)</description> |
| 13775 | | <year>199?</year> |
| 13776 | | <publisher><unknown></publisher> |
| 14147 | <year>1996</year> |
| 14148 | <publisher>Xing</publisher> |
| 14149 | <info name="alt_title" value="ウルフファング"/> |
| 13777 | 14150 | <info name="serial" value="SLPS-00254" /> |
| 13778 | 14151 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13779 | 14152 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13786 | 14159 | <!-- some games work --> |
| 13787 | 14160 | <software name="wonder3a" supported="no"> |
| 13788 | 14161 | <description>Wonder 3 Arcade Gears (Japan)</description> |
| 13789 | | <year>199?</year> |
| 13790 | | <publisher><unknown></publisher> |
| 14162 | <year>1998</year> |
| 14163 | <publisher>Xing</publisher> |
| 14164 | <info name="alt_title" value="ワンダー3"/> |
| 13791 | 14165 | <info name="serial" value="SLPS-00927" /> |
| 13792 | 14166 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13793 | 14167 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13800 | 14174 | <!-- crash MESS --> |
| 13801 | 14175 | <software name="wonderbc" supported="no"> |
| 13802 | 14176 | <description>Wonder B-Cruise - Dogiborn Daisakusen (Japan)</description> |
| 13803 | | <year>199?</year> |
| 13804 | | <publisher><unknown></publisher> |
| 14177 | <year>1999</year> |
| 14178 | <publisher>Sunsoft</publisher> |
| 14179 | <info name="alt_title" value="わんダービークルズ"/> |
| 13805 | 14180 | <info name="serial" value="SLPS-02322" /> |
| 13806 | 14181 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13807 | 14182 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13814 | 14189 | <!-- boot ok --> |
| 13815 | 14190 | <software name="wondertr" supported="no"> |
| 13816 | 14191 | <description>Wonder Tracker (Japan)</description> |
| 13817 | | <year>199?</year> |
| 13818 | | <publisher><unknown></publisher> |
| 14192 | <year>1998</year> |
| 14193 | <publisher>Sony</publisher> |
| 14194 | <info name="alt_title" value="ワンダートレック"/> |
| 13819 | 14195 | <info name="serial" value="SCPS-10072" /> |
| 13820 | 14196 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13821 | 14197 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13827 | 14203 | |
| 13828 | 14204 | <!-- boot ok --> |
| 13829 | 14205 | <software name="worldlea" supported="no"> |
| 13830 | | <description>World League Soccer - Challenge Nippon! (Japan)</description> |
| 13831 | | <year>199?</year> |
| 13832 | | <publisher><unknown></publisher> |
| 14206 | <description>World League Soccer - Challenge Nippon! ( Family Price 1500) (Japan)</description> |
| 14207 | <year>2000</year> |
| 14208 | <publisher>Coconuts Japan</publisher> |
| 14209 | <info name="alt_title" value="ワールドリーグサッカー"/> |
| 13833 | 14210 | <info name="serial" value="SLPS-02687" /> |
| 13834 | 14211 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13835 | 14212 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13842 | 14219 | <!-- black screen --> |
| 13843 | 14220 | <software name="worldnev" supported="no"> |
| 13844 | 14221 | <description>World Neverland - Olerud Oukoku Monogatari (Japan)</description> |
| 13845 | | <year>199?</year> |
| 13846 | | <publisher><unknown></publisher> |
| 14222 | <year>1997</year> |
| 14223 | <publisher>RiverhillSoft</publisher> |
| 14224 | <info name="alt_title" value="World Neverland〜オルルド王国物語〜"/> |
| 13847 | 14225 | <info name="serial" value="SLPS-01037" /> |
| 13848 | 14226 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13849 | 14227 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13856 | 14234 | <!-- boot ok --> |
| 13857 | 14235 | <software name="worldpro" supported="no"> |
| 13858 | 14236 | <description>World Pro Tennis '98 (Japan)</description> |
| 13859 | | <year>199?</year> |
| 13860 | | <publisher><unknown></publisher> |
| 14237 | <year>1998</year> |
| 14238 | <publisher>I.Magic</publisher> |
| 14239 | <info name="alt_title" value="ワールドプロテニス98"/> |
| 13861 | 14240 | <info name="serial" value="SLPS-01379" /> |
| 13862 | 14241 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13863 | 14242 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13870 | 14249 | <!-- boot ok --> |
| 13871 | 14250 | <software name="wwfwrest" supported="no"> |
| 13872 | 14251 | <description>WWF Wrestlemania - The Arcade Game (Japan)</description> |
| 13873 | | <year>199?</year> |
| 13874 | | <publisher><unknown></publisher> |
| 14252 | <year>1996</year> |
| 14253 | <publisher>Acclaim</publisher> |
| 14254 | <info name="alt_title" value="レッスルマニア・ジ・アーケードゲーム"/> |
| 13875 | 14255 | <info name="serial" value="SLPS-00223" /> |
| 13876 | 14256 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13877 | 14257 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13884 | 14264 | <!-- boot OK --> |
| 13885 | 14265 | <software name="xracingj" supported="no"> |
| 13886 | 14266 | <description>X-Racing (Japan)</description> |
| 13887 | | <year>199?</year> |
| 13888 | | <publisher><unknown></publisher> |
| 14267 | <year>1998</year> |
| 14268 | <publisher>Nichibutsu</publisher> |
| 14269 | <info name="alt_title" value="X.RACING(エックスレーシング)"/> |
| 13889 | 14270 | <info name="serial" value="SLPS-01063" /> |
| 13890 | 14271 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13891 | 14272 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13898 | 14279 | <!-- boot ok, but invisible player sprite --> |
| 13899 | 14280 | <software name="x2noreli" supported="no"> |
| 13900 | 14281 | <description>X2 - No Relief (Japan)</description> |
| 13901 | | <year>199?</year> |
| 13902 | | <publisher><unknown></publisher> |
| 14282 | <year>1997</year> |
| 14283 | <publisher>Capcom</publisher> |
| 14284 | <info name="alt_title" value="X2"/> |
| 13903 | 14285 | <info name="serial" value="SLPS-00766" /> |
| 13904 | 14286 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13905 | 14287 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13926 | 14308 | <!-- boot ok --> |
| 13927 | 14309 | <software name="yakiniku" supported="no"> |
| 13928 | 14310 | <description>Yakiniku Bugyou (Japan)</description> |
| 13929 | | <year>199?</year> |
| 13930 | | <publisher><unknown></publisher> |
| 14311 | <year>2001</year> |
| 14312 | <publisher>Media</publisher> |
| 14313 | <info name="alt_title" value="焼肉奉行"/> |
| 13931 | 14314 | <info name="serial" value="SLPS-03209" /> |
| 13932 | 14315 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13933 | 14316 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13940 | 14323 | <!-- boot ok --> |
| 13941 | 14324 | <software name="yakitori" supported="no"> |
| 13942 | 14325 | <description>Yakitori Musume - Sugo Ude Hanjouki (Japan)</description> |
| 13943 | | <year>199?</year> |
| 13944 | | <publisher><unknown></publisher> |
| 14326 | <year>2002</year> |
| 14327 | <publisher>Media</publisher> |
| 14328 | <info name="alt_title" value="やきとり娘〜スゴ腕繁盛記〜"/> |
| 13945 | 14329 | <info name="serial" value="SLPS-03435" /> |
| 13946 | 14330 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13947 | 14331 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13954 | 14338 | <!-- boot ok --> |
| 13955 | 14339 | <software name="yamagaau" supported="no"> |
| 13956 | 14340 | <description>Yamagata Digital Museum - Autumn (Japan)</description> |
| 13957 | | <year>199?</year> |
| 13958 | | <publisher><unknown></publisher> |
| 14341 | <year>1999</year> |
| 14342 | <publisher>Imagineer</publisher> |
| 14343 | <info name="alt_title" value="デジタルミュージアム ヒロ・ヤマガタAutumn"/> |
| 13959 | 14344 | <info name="serial" value="SLPS-01662" /> |
| 13960 | 14345 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13961 | 14346 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13968 | 14353 | <!-- boot ok --> |
| 13969 | 14354 | <software name="yamagasp" supported="no"> |
| 13970 | 14355 | <description>Yamagata Digital Museum - Spring (Japan)</description> |
| 13971 | | <year>199?</year> |
| 13972 | | <publisher><unknown></publisher> |
| 14356 | <year>1999</year> |
| 14357 | <publisher>Imagineer</publisher> |
| 14358 | <info name="alt_title" value="デジタルミュージアム ヒロ・ヤマガタSpring"/> |
| 13973 | 14359 | <info name="serial" value="SLPS-01581" /> |
| 13974 | 14360 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13975 | 14361 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13982 | 14368 | <!-- boot ok --> |
| 13983 | 14369 | <software name="yamagasu" supported="no"> |
| 13984 | 14370 | <description>Yamagata Digital Museum - Summer (Japan)</description> |
| 13985 | | <year>199?</year> |
| 13986 | | <publisher><unknown></publisher> |
| 14371 | <year>1999</year> |
| 14372 | <publisher>Imagineer</publisher> |
| 14373 | <info name="alt_title" value="デジタルミュージアム ヒロ・ヤマガタSummer"/> |
| 13987 | 14374 | <info name="serial" value="SLPS-01661" /> |
| 13988 | 14375 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 13989 | 14376 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 13996 | 14383 | <!-- boot ok --> |
| 13997 | 14384 | <software name="yamagawi" supported="no"> |
| 13998 | 14385 | <description>Yamagata Digital Museum - Winter (Japan)</description> |
| 13999 | | <year>199?</year> |
| 14000 | | <publisher><unknown></publisher> |
| 14386 | <year>1999</year> |
| 14387 | <publisher>Imagineer</publisher> |
| 14388 | <info name="alt_title" value="デジタルミュージアム ヒロ・ヤマガタWinter"/> |
| 14001 | 14389 | <info name="serial" value="SLPS-01663" /> |
| 14002 | 14390 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14003 | 14391 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14007 | 14395 | </part> |
| 14008 | 14396 | </software> |
| 14009 | 14397 | |
| 14010 | | <!-- boot ok --> |
| 14011 | | <software name="yasoukyo" supported="no"> |
| 14012 | | <description>Yasoukyoku 2 (Japan)</description> |
| 14013 | | <year>199?</year> |
| 14014 | | <publisher><unknown></publisher> |
| 14015 | | <info name="serial" value="SLPS-03213" /> |
| 14016 | | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14017 | | <part name="cdrom" interface="psx_cdrom"> |
| 14018 | | <diskarea name="cdrom"> |
| 14019 | | <disk name="yasoukyoku 2 (japan) [slps-03213]" sha1="2469c7c6d8d69835aae534b91c59b03aa4d2dd96"/> |
| 14020 | | </diskarea> |
| 14021 | | </part> |
| 14022 | | </software> |
| 14023 | | |
| 14024 | 14398 | <!-- black screen --> |
| 14025 | 14399 | <software name="yoshimot" supported="no"> |
| 14026 | 14400 | <description>Yoshimoto Muchicco Daikessen (Japan)</description> |
| 14027 | | <year>199?</year> |
| 14028 | | <publisher><unknown></publisher> |
| 14401 | <year>1999</year> |
| 14402 | <publisher>Sony</publisher> |
| 14403 | <info name="alt_title" value="ヨシモト ムチッ子大決戦"/> |
| 14029 | 14404 | <info name="serial" value="SLPS-02308" /> |
| 14030 | 14405 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14031 | 14406 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14037 | 14412 | |
| 14038 | 14413 | <!-- boot ok --> |
| 14039 | 14414 | <software name="youkaiha" supported="no"> |
| 14040 | | <description>Youkai Hanaasobi (Japan)</description> |
| 14041 | | <year>199?</year> |
| 14042 | | <publisher><unknown></publisher> |
| 14415 | <description>Youkai Hana Asobi (Japan)</description> |
| 14416 | <year>2001</year> |
| 14417 | <publisher>Unbalance</publisher> |
| 14418 | <info name="alt_title" value="妖怪花あそび"/> |
| 14043 | 14419 | <info name="serial" value="SLPM-86857" /> |
| 14044 | 14420 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14045 | 14421 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14052 | 14428 | <!-- black screen --> |
| 14053 | 14429 | <software name="yugiohmo" supported="no"> |
| 14054 | 14430 | <description>Yu-Gi-Oh! Monster Capsule Breed & Battle (Japan)</description> |
| 14055 | | <year>199?</year> |
| 14056 | | <publisher><unknown></publisher> |
| 14431 | <year>1998</year> |
| 14432 | <publisher>Konami</publisher> |
| 14433 | <info name="alt_title" value="遊戯王 モンスターカプセル ブリード&バトル"/> |
| 14057 | 14434 | <info name="serial" value="SLPM-86096" /> |
| 14058 | 14435 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14059 | 14436 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14066 | 14443 | <!-- boot ok --> |
| 14067 | 14444 | <software name="yukinkob" supported="no"> |
| 14068 | 14445 | <description>Yukinko Burning (Japan)</description> |
| 14069 | | <year>199?</year> |
| 14070 | | <publisher><unknown></publisher> |
| 14446 | <year>2002</year> |
| 14447 | <publisher>Princess Soft</publisher> |
| 14448 | <info name="alt_title" value="ゆきんこ ばあにんぐ"/> |
| 14071 | 14449 | <info name="serial" value="SLPM-87013" /> |
| 14072 | 14450 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14073 | 14451 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14080 | 14458 | <!-- white screen after initial menus --> |
| 14081 | 14459 | <software name="yumenots" supported="no"> |
| 14082 | 14460 | <description>Yume no Tsubasa (Japan)</description> |
| 14083 | | <year>199?</year> |
| 14084 | | <publisher><unknown></publisher> |
| 14461 | <year>2000</year> |
| 14462 | <publisher>KID</publisher> |
| 14463 | <info name="alt_title" value="夢のつばさ"/> |
| 14085 | 14464 | <info name="serial" value="SLPS-02954" /> |
| 14086 | 14465 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14087 | 14466 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14094 | 14473 | <!-- black screen --> |
| 14095 | 14474 | <software name="yumeiroi" supported="no"> |
| 14096 | 14475 | <description>Yume-Iroiro (Japan)</description> |
| 14097 | | <year>199?</year> |
| 14098 | | <publisher><unknown></publisher> |
| 14476 | <year>1998</year> |
| 14477 | <publisher>Feathered</publisher> |
| 14478 | <info name="alt_title" value="夢☆色いろ"/> |
| 14099 | 14479 | <info name="serial" value="SLPS-01401" /> |
| 14100 | 14480 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14101 | 14481 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14107 | 14487 | |
| 14108 | 14488 | <!-- black screen --> |
| 14109 | 14489 | <software name="yuugenga" supported="no"> |
| 14110 | | <description>Yuugen Gaisha Chikyuu Boueitai - Earth Defenders Corporation (Japan)</description> |
| 14111 | | <year>199?</year> |
| 14112 | | <publisher><unknown></publisher> |
| 14490 | <description>Yuugen Kaisha Chikyuu Boueitai - Guard of Earth Organization (Japan)</description> |
| 14491 | <year>1999</year> |
| 14492 | <publisher>Media Rings</publisher> |
| 14493 | <info name="alt_title" value="有限会社 地球防衛隊"/> |
| 14113 | 14494 | <info name="serial" value="SLPS-02024" /> |
| 14114 | 14495 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14115 | 14496 | <part name="cdrom" interface="psx_cdrom"> |
| 14116 | 14497 | <diskarea name="cdrom"> |
| 14117 | | <disk name="yuugen gaisha chikyuu boueitai - earth defenders corporation (japan) [slps-02024]" sha1="34f2ae1cd241e5bfe494ee3f1d8545e00d303010"/> |
| 14498 | <disk name="yuugen kaisha chikyuu boueitai - guard of earth organization (japan) [slps-02024]" sha1="34f2ae1cd241e5bfe494ee3f1d8545e00d303010"/> |
| 14118 | 14499 | </diskarea> |
| 14119 | 14500 | </part> |
| 14120 | 14501 | </software> |
| r242231 | r242232 | |
| 14122 | 14503 | <!-- boot ok, bad fmv every other frame --> |
| 14123 | 14504 | <software name="yuukyuun" supported="no"> |
| 14124 | 14505 | <description>Yuukyuu no Eden - The Eternal Eden (Japan)</description> |
| 14125 | | <year>199?</year> |
| 14126 | | <publisher><unknown></publisher> |
| 14506 | <year>1999</year> |
| 14507 | <publisher>ASCII</publisher> |
| 14508 | <info name="alt_title" value="悠久のエデン"/> |
| 14127 | 14509 | <info name="serial" value="SLPS-01928" /> |
| 14128 | 14510 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14129 | 14511 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14150 | 14532 | <!-- boot ok, hang on loading screen after first menu --> |
| 14151 | 14533 | <software name="yuuyamid" supported="no"> |
| 14152 | 14534 | <description>Yuuyami Doori Tankentai (Japan)</description> |
| 14153 | | <year>199?</year> |
| 14154 | | <publisher><unknown></publisher> |
| 14535 | <year>1999</year> |
| 14536 | <publisher>Spike</publisher> |
| 14537 | <info name="alt_title" value="夕闇通り探検隊"/> |
| 14155 | 14538 | <info name="serial" value="SLPS-02274" /> |
| 14156 | 14539 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14157 | 14540 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14164 | 14547 | <!-- boot ok --> |
| 14165 | 14548 | <software name="zapsnowb" supported="no"> |
| 14166 | 14549 | <description>Zap! Snowboarding Trix '98 (Japan)</description> |
| 14167 | | <year>199?</year> |
| 14550 | <year>1997</year> |
| 14168 | 14551 | <publisher><unknown></publisher> |
| 14552 | <info name="alt_title" value="ZAP! SNOWBOADRING TRIX '98"/> |
| 14169 | 14553 | <info name="serial" value="SLPS-00909" /> |
| 14170 | 14554 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14171 | 14555 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14178 | 14562 | <!-- boot ok --> |
| 14179 | 14563 | <software name="zeiramzo" supported="no"> |
| 14180 | 14564 | <description>Zeiramzone (Japan)</description> |
| 14181 | | <year>199?</year> |
| 14182 | | <publisher><unknown></publisher> |
| 14565 | <year>1996</year> |
| 14566 | <publisher>Banpresto</publisher> |
| 14567 | <info name="alt_title" value="ゼイラムゾーン"/> |
| 14183 | 14568 | <info name="serial" value="SLPS-00575" /> |
| 14184 | 14569 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14185 | 14570 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14192 | 14577 | <!-- black screen after company logos --> |
| 14193 | 14578 | <software name="zeitgeis" supported="no"> |
| 14194 | 14579 | <description>Zeitgeist (Japan)</description> |
| 14195 | | <year>199?</year> |
| 14196 | | <publisher><unknown></publisher> |
| 14580 | <year>1995</year> |
| 14581 | <publisher>Taito</publisher> |
| 14582 | <info name="alt_title" value="ツァイトガイスト"/> |
| 14197 | 14583 | <info name="serial" value="SLPS-00034" /> |
| 14198 | 14584 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14199 | 14585 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14206 | 14592 | <!-- boot ok --> |
| 14207 | 14593 | <software name="zennippo" supported="no"> |
| 14208 | 14594 | <description>Zen-Nippon Joshi Pro Wrestling - Joou Densetsu Yume no Taikousen (Japan)</description> |
| 14209 | | <year>199?</year> |
| 14210 | | <publisher><unknown></publisher> |
| 14595 | <year>1998</year> |
| 14596 | <publisher>TEN</publisher> |
| 14597 | <info name="alt_title" value="全日本女子プロレス 女王伝説 夢の対抗戦"/> |
| 14211 | 14598 | <info name="serial" value="SLPS-01475" /> |
| 14212 | 14599 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14213 | 14600 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14219 | 14606 | |
| 14220 | 14607 | <!-- black screen --> |
| 14221 | 14608 | <software name="zennipok" supported="no"> |
| 14222 | | <description>Zen-Nippon Pro-Wrestling - Ouja no Kon (Japan)</description> |
| 14223 | | <year>199?</year> |
| 14224 | | <publisher><unknown></publisher> |
| 14609 | <description>Zen-Nippon Pro Wrestling - Ouja no Kon (Japan)</description> |
| 14610 | <year>1999</year> |
| 14611 | <publisher>Human</publisher> |
| 14612 | <info name="alt_title" value="全日本プロレス 王者の魂"/> |
| 14225 | 14613 | <info name="serial" value="SLPS-01849" /> |
| 14226 | 14614 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14227 | 14615 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14233 | 14621 | |
| 14234 | 14622 | <!-- boot OK --> |
| 14235 | 14623 | <software name="zero4cha" supported="no"> |
| 14236 | | <description>Zero 4 Champ Doozy-J (Japan)</description> |
| 14237 | | <year>199?</year> |
| 14238 | | <publisher><unknown></publisher> |
| 14624 | <description>Zero4 Champ Doozy-J (Japan)</description> |
| 14625 | <year>1997</year> |
| 14626 | <publisher>Media Rings</publisher> |
| 14627 | <info name="alt_title" value="ZERO4 CHAMP Doozy-J"/> |
| 14239 | 14628 | <info name="serial" value="SLPS-00755" /> |
| 14240 | 14629 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14241 | 14630 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14248 | 14637 | <!-- boot OK --> |
| 14249 | 14638 | <software name="zigzagba" supported="no"> |
| 14250 | 14639 | <description>Zig Zag Ball (Japan)</description> |
| 14251 | | <year>199?</year> |
| 14252 | | <publisher><unknown></publisher> |
| 14640 | <year>1998</year> |
| 14641 | <publisher>Upstar</publisher> |
| 14642 | <info name="alt_title" value="ZIG ZAG BALL"/> |
| 14253 | 14643 | <info name="serial" value="SLPS-01483" /> |
| 14254 | 14644 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14255 | 14645 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14261 | 14651 | |
| 14262 | 14652 | <!-- boot OK --> |
| 14263 | 14653 | <software name="zipangut" supported="no"> |
| 14264 | | <description>Zipangutou - Unmei wa Saikoro ga Kimeru! (Japan)</description> |
| 14265 | | <year>199?</year> |
| 14266 | | <publisher><unknown></publisher> |
| 14654 | <description>Zipangujima: Unmei wa Saikoro ga Kimeru! (Japan)</description> |
| 14655 | <year>1999</year> |
| 14656 | <publisher>Human</publisher> |
| 14657 | <info name="alt_title" value="じぱんぐ島 〜運命はサイコロが決める!?〜"/> |
| 14267 | 14658 | <info name="serial" value="SLPS-02260" /> |
| 14268 | 14659 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14269 | 14660 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14276 | 14667 | <!-- black screen after logos --> |
| 14277 | 14668 | <software name="zoidsbat" supported="no"> |
| 14278 | 14669 | <description>Zoids - Battle Card Game - Seihou Tairiku Senki (Japan)</description> |
| 14279 | | <year>199?</year> |
| 14280 | | <publisher><unknown></publisher> |
| 14670 | <year>2001</year> |
| 14671 | <publisher>Tomy</publisher> |
| 14672 | <info name="alt_title" value="ゾイドバトルカードゲーム 西方大陸戦記"/> |
| 14281 | 14673 | <info name="serial" value="SLPS-03255" /> |
| 14282 | 14674 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14283 | 14675 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14289 | 14681 | |
| 14290 | 14682 | <!-- boot OK --> |
| 14291 | 14683 | <software name="zoidstei" supported="no"> |
| 14292 | | <description>Zoids - Teikoku vs. Kyouwakoku - Meka Seitai no Idenshi (Japan)</description> |
| 14293 | | <year>199?</year> |
| 14294 | | <publisher><unknown></publisher> |
| 14684 | <description>Zoids - Zenebus VS Heric (Japan)</description> |
| 14685 | <year>2000</year> |
| 14686 | <publisher>Tomy</publisher> |
| 14687 | <info name="alt_title" value="メカ生体ゾイド"/> |
| 14295 | 14688 | <info name="serial" value="SLPS-02982" /> |
| 14296 | 14689 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14297 | 14690 | <part name="cdrom" interface="psx_cdrom"> |
| r242231 | r242232 | |
| 14303 | 14696 | |
| 14304 | 14697 | <!-- boot OK --> |
| 14305 | 14698 | <software name="zoids2" supported="no"> |
| 14306 | | <description>Zoids 2 - Heric Kyouwakoku vs. Guylos Teikoku (Japan)</description> |
| 14307 | | <year>199?</year> |
| 14308 | | <publisher><unknown></publisher> |
| 14699 | <description>Zoids 2 - Helic Republic VS Guylos Empire (Japan)</description> |
| 14700 | <year>2002</year> |
| 14701 | <publisher>Tomy</publisher> |
| 14702 | <info name="alt_title" value="ZOIDS2 ヘリック共和国VSガイロス帝国"/> |
| 14309 | 14703 | <info name="serial" value="SLPS-03389" /> |
| 14310 | 14704 | <sharedfeat name="compatibility" value="NTSC-J"/> |
| 14311 | 14705 | <part name="cdrom" interface="psx_cdrom"> |
trunk/hash/tvc_flop.xml
| r0 | r242232 | |
| 1 | <?xml version="1.0"?> |
| 2 | <!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> |
| 3 | |
| 4 | <!-- |
| 5 | |
| 6 | Most of these can be run in BASIC by using LOAD"*" |
| 7 | If the program doesn't automatically start, start it with RUN |
| 8 | |
| 9 | --> |
| 10 | |
| 11 | |
| 12 | <softwarelist name="tvc_flop" description="Videoton TVC floppies"> |
| 13 | <software name="21"> |
| 14 | <description>21</description> |
| 15 | <year>198?</year> |
| 16 | <publisher>Software in LUX</publisher> |
| 17 | |
| 18 | <part name="flop1" interface="floppy_5_25"> |
| 19 | <dataarea name="flop" size="368640"> |
| 20 | <rom name="21.dsk" size="368640" crc="1b28d754" sha1="1d5931a3bc46d61b5b08a59dee3faf341f56f95d" offset="0" /> |
| 21 | </dataarea> |
| 22 | </part> |
| 23 | </software> |
| 24 | |
| 25 | <software name="3dim"> |
| 26 | <description>Három dimenziós ábrázolás</description> |
| 27 | <year>198?</year> |
| 28 | <publisher><unknown></publisher> |
| 29 | |
| 30 | <part name="flop1" interface="floppy_5_25"> |
| 31 | <dataarea name="flop" size="368640"> |
| 32 | <rom name="3dim.dsk" size="368640" crc="769d7cc6" sha1="78cddddf3051e14cada03a806af7a434369168bd" offset="0" /> |
| 33 | </dataarea> |
| 34 | </part> |
| 35 | </software> |
| 36 | |
| 37 | <software name="3dlabiri"> |
| 38 | <description>3D Labirintus</description> |
| 39 | <year>198?</year> |
| 40 | <publisher>Buddha Softhouse</publisher> |
| 41 | |
| 42 | <part name="flop1" interface="floppy_5_25"> |
| 43 | <dataarea name="flop" size="368640"> |
| 44 | <rom name="3dlabirintus.dsk" size="368640" crc="b27d4d34" sha1="680713aba577b684d81cf11c9e371fef0ad2e4b5" offset="0" /> |
| 45 | </dataarea> |
| 46 | </part> |
| 47 | </software> |
| 48 | |
| 49 | <software name="labdatvc"> |
| 50 | <description>5 Labdajáték</description> |
| 51 | <year>1987</year> |
| 52 | <publisher>Novotrade</publisher> |
| 53 | |
| 54 | <part name="flop1" interface="floppy_5_25"> |
| 55 | <dataarea name="flop" size="368640"> |
| 56 | <rom name="5labdajatek.dsk" size="368640" crc="3b8d5d17" sha1="72cc5cfa18ee995757c7356b9aa6d8879b3aad7c" offset="0" /> |
| 57 | </dataarea> |
| 58 | </part> |
| 59 | </software> |
| 60 | |
| 61 | <software name="bnh"> |
| 62 | <description>A Bolygó Neve - Halál</description> |
| 63 | <year>1988</year> |
| 64 | <publisher>Berysoft</publisher> |
| 65 | |
| 66 | <part name="flop1" interface="floppy_5_25"> |
| 67 | <dataarea name="flop" size="368640"> |
| 68 | <rom name="a_bolygo_neve_halal.dsk" size="368640" crc="bb7b1cbe" sha1="77b70b640d9bf0bc7444097f9cd5e7c37afa3dcb" offset="0" /> |
| 69 | </dataarea> |
| 70 | </part> |
| 71 | </software> |
| 72 | |
| 73 | <software name="asuniked"> |
| 74 | <description>A Sünikéd Éhes...</description> |
| 75 | <year>198?</year> |
| 76 | <publisher><unknown></publisher> |
| 77 | |
| 78 | <part name="flop1" interface="floppy_5_25"> |
| 79 | <dataarea name="flop" size="368640"> |
| 80 | <rom name="a_suniked_ehes.dsk" size="368640" crc="a366c8fe" sha1="cc1fc3aa7fb3bec8b385b33a75798d0c56c4d3c4" offset="0" /> |
| 81 | </dataarea> |
| 82 | </part> |
| 83 | </software> |
| 84 | |
| 85 | <software name="ab01"> |
| 86 | <description>Ábrázolás - 01 Tartalomjegyzék</description> |
| 87 | <year>198?</year> |
| 88 | <publisher>László Papp</publisher> |
| 89 | |
| 90 | <part name="flop1" interface="floppy_5_25"> |
| 91 | <dataarea name="flop" size="368640"> |
| 92 | <rom name="ab1.dsk" size="368640" crc="65ab93f1" sha1="7f3d70de1f248e5a1eb109c2501e8818bd63a5e3" offset="0" /> |
| 93 | </dataarea> |
| 94 | </part> |
| 95 | </software> |
| 96 | |
| 97 | <software name="ab02"> |
| 98 | <description>Ábrázolás 02 - Téglatest 6 Vetülete</description> |
| 99 | <year>198?</year> |
| 100 | <publisher>László Papp</publisher> |
| 101 | |
| 102 | <part name="flop1" interface="floppy_5_25"> |
| 103 | <dataarea name="flop" size="368640"> |
| 104 | <rom name="ab2.dsk" size="368640" crc="ec67b321" sha1="a5e0045b6160c156a5af38c527a973bda4f8bb5d" offset="0" /> |
| 105 | </dataarea> |
| 106 | </part> |
| 107 | </software> |
| 108 | |
| 109 | <software name="ab03"> |
| 110 | <description>Ábrázolás 03 - Hatoldalú hasáb ferde síkmetszése</description> |
| 111 | <year>198?</year> |
| 112 | <publisher>László Papp</publisher> |
| 113 | |
| 114 | <part name="flop1" interface="floppy_5_25"> |
| 115 | <dataarea name="flop" size="368640"> |
| 116 | <rom name="ab3.dsk" size="368640" crc="0658943c" sha1="fdfa0d2bb63787bd7beed3d107732279acd5d5f5" offset="0" /> |
| 117 | </dataarea> |
| 118 | </part> |
| 119 | </software> |
| 120 | |
| 121 | <software name="ab04"> |
| 122 | <description>Ábrázolás 04 - Gúla ferde síkmetszése</description> |
| 123 | <year>198?</year> |
| 124 | <publisher>László Papp</publisher> |
| 125 | |
| 126 | <part name="flop1" interface="floppy_5_25"> |
| 127 | <dataarea name="flop" size="368640"> |
| 128 | <rom name="ab4.dsk" size="368640" crc="3e7914d3" sha1="6f60e983b9069ba559ea9cb250bf6dd53c136353" offset="0" /> |
| 129 | </dataarea> |
| 130 | </part> |
| 131 | </software> |
| 132 | |
| 133 | <software name="ab05"> |
| 134 | <description>Ábrázolás 05 - Háromoldalú hasáb csonkítása</description> |
| 135 | <year>198?</year> |
| 136 | <publisher>László Papp</publisher> |
| 137 | |
| 138 | <part name="flop1" interface="floppy_5_25"> |
| 139 | <dataarea name="flop" size="368640"> |
| 140 | <rom name="ab5.dsk" size="368640" crc="d24eae87" sha1="99166268af1c29c223e2a9a2a62a38c1349ef7ec" offset="0" /> |
| 141 | </dataarea> |
| 142 | </part> |
| 143 | </software> |
| 144 | |
| 145 | <software name="ab06"> |
| 146 | <description>Ábrázolás 06 - Itt a pont, ott a pont, hol a pont?</description> |
| 147 | <year>198?</year> |
| 148 | <publisher>László Papp</publisher> |
| 149 | |
| 150 | <part name="flop1" interface="floppy_5_25"> |
| 151 | <dataarea name="flop" size="368640"> |
| 152 | <rom name="ab6.dsk" size="368640" crc="9d118829" sha1="64cbd48d9dd127fcbfbb88407209bdba3da2e1f8" offset="0" /> |
| 153 | </dataarea> |
| 154 | </part> |
| 155 | </software> |
| 156 | |
| 157 | <software name="ab07"> |
| 158 | <description>Ábrázolás 07 - Hamis? Igaz?</description> |
| 159 | <year>198?</year> |
| 160 | <publisher>László Papp</publisher> |
| 161 | |
| 162 | <part name="flop1" interface="floppy_5_25"> |
| 163 | <dataarea name="flop" size="368640"> |
| 164 | <rom name="ab7.dsk" size="368640" crc="cf9ab8ca" sha1="86581ab8e3070fcb83febd1e4c07d8c5de99df17" offset="0" /> |
| 165 | </dataarea> |
| 166 | </part> |
| 167 | </software> |
| 168 | |
| 169 | <software name="ab08"> |
| 170 | <description>Ábrázolás 08 - Kockázzunk!</description> |
| 171 | <year>198?</year> |
| 172 | <publisher>László Papp</publisher> |
| 173 | |
| 174 | <part name="flop1" interface="floppy_5_25"> |
| 175 | <dataarea name="flop" size="368640"> |
| 176 | <rom name="ab8.dsk" size="368640" crc="faa42d26" sha1="009e4dd4563e11046f9b2c35c6c8409bffd0d66b" offset="0" /> |
| 177 | </dataarea> |
| 178 | </part> |
| 179 | </software> |
| 180 | |
| 181 | <software name="ab09"> |
| 182 | <description>Ábrázolás 09 - Téglatest véletlen vetületei</description> |
| 183 | <year>198?</year> |
| 184 | <publisher>László Papp</publisher> |
| 185 | |
| 186 | <part name="flop1" interface="floppy_5_25"> |
| 187 | <dataarea name="flop" size="368640"> |
| 188 | <rom name="ab9.dsk" size="368640" crc="e1c33bee" sha1="32462c444a7c87ece8ea7069c504516664db5f9a" offset="0" /> |
| 189 | </dataarea> |
| 190 | </part> |
| 191 | </software> |
| 192 | |
| 193 | <software name="ab10"> |
| 194 | <description>Ábrázolás 10 - Hatoldalú hasáb véletlen vetületei</description> |
| 195 | <year>198?</year> |
| 196 | <publisher>László Papp</publisher> |
| 197 | |
| 198 | <part name="flop1" interface="floppy_5_25"> |
| 199 | <dataarea name="flop" size="368640"> |
| 200 | <rom name="ab10.dsk" size="368640" crc="9b1ae62a" sha1="44b1d4e7b17df5a378c7099801b694fcf975bcbc" offset="0" /> |
| 201 | </dataarea> |
| 202 | </part> |
| 203 | </software> |
| 204 | |
| 205 | <software name="adatkeze"> |
| 206 | <description>Adatfile-kezelő program</description> |
| 207 | <year>198?</year> |
| 208 | <publisher><unknown></publisher> |
| 209 | |
| 210 | <part name="flop1" interface="floppy_5_25"> |
| 211 | <dataarea name="flop" size="368640"> |
| 212 | <rom name="adatkeze.dsk" size="368640" crc="e6804a98" sha1="2f8500a0d86d7cd259a36425d048100e99b9ffc2" offset="0" /> |
| 213 | </dataarea> |
| 214 | </part> |
| 215 | </software> |
| 216 | |
| 217 | <software name="adventur"> |
| 218 | <description>The Adventure Game</description> |
| 219 | <year>1987</year> |
| 220 | <publisher>Tamás Juhász</publisher> |
| 221 | |
| 222 | <part name="flop1" interface="floppy_5_25"> |
| 223 | <dataarea name="flop" size="368640"> |
| 224 | <rom name="adventure.dsk" size="368640" crc="8e7471ce" sha1="164d93ac82ba43ce30b033022b3b0e2dbd3e4222" offset="0" /> |
| 225 | </dataarea> |
| 226 | </part> |
| 227 | </software> |
| 228 | |
| 229 | <software name="gyikkira"> |
| 230 | <description>A Gyíkkirály</description> |
| 231 | <year>1990</year> |
| 232 | <publisher>Agilar</publisher> |
| 233 | |
| 234 | <part name="flop1" interface="floppy_5_25"> |
| 235 | <dataarea name="flop" size="368640"> |
| 236 | <rom name="agyikkiraly.dsk" size="368640" crc="7fe66e19" sha1="f8807fbdff3c491dfb96c20726fbf2811ec6d23a" offset="0" /> |
| 237 | </dataarea> |
| 238 | </part> |
| 239 | </software> |
| 240 | |
| 241 | <software name="aknaker"> |
| 242 | <description>Aknakereső</description> |
| 243 | <year>198?</year> |
| 244 | <publisher>STV</publisher> |
| 245 | |
| 246 | <part name="flop1" interface="floppy_5_25"> |
| 247 | <dataarea name="flop" size="368640"> |
| 248 | <rom name="aknakereso.dsk" size="368640" crc="cd4c1b10" sha1="26606455054da36f2de7367370043528158dfcdc" offset="0" /> |
| 249 | </dataarea> |
| 250 | </part> |
| 251 | </software> |
| 252 | |
| 253 | <software name="aknamezo"> |
| 254 | <description>Aknamező</description> |
| 255 | <year>198?</year> |
| 256 | <publisher><unknown></publisher> |
| 257 | |
| 258 | <part name="flop1" interface="floppy_5_25"> |
| 259 | <dataarea name="flop" size="368640"> |
| 260 | <rom name="aknamezo.dsk" size="368640" crc="de8cc54a" sha1="208d9bdfbd5a9e3506c07e3a4168170ff063b06a" offset="0" /> |
| 261 | </dataarea> |
| 262 | </part> |
| 263 | </software> |
| 264 | |
| 265 | <software name="aknamezoa" cloneof="aknamezo"> |
| 266 | <description>Aknamező (Alt)</description> |
| 267 | <year>198?</year> |
| 268 | <publisher><unknown></publisher> |
| 269 | |
| 270 | <part name="flop1" interface="floppy_5_25"> |
| 271 | <dataarea name="flop" size="368640"> |
| 272 | <rom name="aknamev2.dsk" size="368640" crc="14acc80e" sha1="f5b507caa2dd18d4b71b47e6a22b8324fc4aeb25" offset="0" /> |
| 273 | </dataarea> |
| 274 | </part> |
| 275 | </software> |
| 276 | |
| 277 | <software name="alfa"> |
| 278 | <description>Alfa</description> |
| 279 | <year>198?</year> |
| 280 | <publisher>JÓZSIsoft</publisher> |
| 281 | |
| 282 | <part name="flop1" interface="floppy_5_25"> |
| 283 | <dataarea name="flop" size="368640"> |
| 284 | <rom name="alfa.dsk" size="368640" crc="d9ef6ce4" sha1="1ed213223e3e0e5286f1112435f8e52f628e507f" offset="0" /> |
| 285 | </dataarea> |
| 286 | </part> |
| 287 | </software> |
| 288 | |
| 289 | <software name="alien8"> |
| 290 | <description>Alien 8</description> |
| 291 | <year>1985</year> |
| 292 | <publisher>'a' Studio</publisher> |
| 293 | |
| 294 | <part name="flop1" interface="floppy_5_25"> |
| 295 | <dataarea name="flop" size="368640"> |
| 296 | <rom name="alien8.dsk" size="368640" crc="2ef199c8" sha1="4d4e538f429471a49acef3a19beebef50ffb8a47" offset="0" /> |
| 297 | </dataarea> |
| 298 | </part> |
| 299 | </software> |
| 300 | |
| 301 | <software name="alien8a" cloneof="alien8"> |
| 302 | <description>Alien 8 (Alt)</description> |
| 303 | <year>1985</year> |
| 304 | <publisher>'a' Studio</publisher> |
| 305 | |
| 306 | <part name="flop1" interface="floppy_5_25"> |
| 307 | <dataarea name="flop" size="368640"> |
| 308 | <rom name="alienv2.dsk" size="368640" crc="dbc4a596" sha1="a2c450cb31e67402b816b83f7242c746fce2730f" offset="0" /> |
| 309 | </dataarea> |
| 310 | </part> |
| 311 | </software> |
| 312 | |
| 313 | <software name="alien8b" cloneof="alien8"> |
| 314 | <description>Alien 8 (Alt 2)</description> |
| 315 | <year>1985</year> |
| 316 | <publisher>'a' Studio</publisher> |
| 317 | |
| 318 | <part name="flop1" interface="floppy_5_25"> |
| 319 | <dataarea name="flop" size="368640"> |
| 320 | <rom name="alien8v3.dsk" size="368640" crc="08201e6e" sha1="3436561e3afd0febb0f77273b88ec3e7861f76bb" offset="0" /> |
| 321 | </dataarea> |
| 322 | </part> |
| 323 | </software> |
| 324 | |
| 325 | <software name="alien8c" cloneof="alien8"> |
| 326 | <description>Alien 8 (Alt 3)</description> |
| 327 | <year>1985</year> |
| 328 | <publisher>'a' Studio</publisher> |
| 329 | |
| 330 | <part name="flop1" interface="floppy_5_25"> |
| 331 | <dataarea name="flop" size="368640"> |
| 332 | <rom name="alien8v4.dsk" size="368640" crc="e28476e0" sha1="65e7156861454348a78459b83a91a6085f4d0089" offset="0" /> |
| 333 | </dataarea> |
| 334 | </part> |
| 335 | </software> |
| 336 | |
| 337 | <software name="amoba"> |
| 338 | <description>Amőba</description> |
| 339 | <year>198?</year> |
| 340 | <publisher>Videoton</publisher> |
| 341 | |
| 342 | <part name="flop1" interface="floppy_5_25"> |
| 343 | <dataarea name="flop" size="368640"> |
| 344 | <rom name="amoba.dsk" size="368640" crc="f903c844" sha1="223858ffbcf246058715bb950d2c55f59cc2c305" offset="0" /> |
| 345 | </dataarea> |
| 346 | </part> |
| 347 | </software> |
| 348 | |
| 349 | <software name="amobaa" cloneof="amoba"> |
| 350 | <description>Amőba (Alt)</description> |
| 351 | <year>198?</year> |
| 352 | <publisher>Videoton</publisher> |
| 353 | |
| 354 | <part name="flop1" interface="floppy_5_25"> |
| 355 | <dataarea name="flop" size="368640"> |
| 356 | <rom name="amobav2.dsk" size="368640" crc="2a634df1" sha1="8d39aacbbdd4f183b887187fd3115bf96ad6ed25" offset="0" /> |
| 357 | </dataarea> |
| 358 | </part> |
| 359 | </software> |
| 360 | |
| 361 | <software name="angol"> |
| 362 | <description>Angol</description> |
| 363 | <year>198?</year> |
| 364 | <publisher><unknown></publisher> |
| 365 | |
| 366 | <part name="flop1" interface="floppy_5_25"> |
| 367 | <dataarea name="flop" size="368640"> |
| 368 | <rom name="angol.dsk" size="368640" crc="76232f1e" sha1="5cbbfeaec71261f7bb2acb8dfa8f7c1c1c312ed6" offset="0" /> |
| 369 | </dataarea> |
| 370 | </part> |
| 371 | </software> |
| 372 | |
| 373 | <software name="antiriad"> |
| 374 | <description>Antiriad</description> |
| 375 | <year>1986</year> |
| 376 | <publisher>STV</publisher> |
| 377 | |
| 378 | <part name="flop1" interface="floppy_5_25"> |
| 379 | <dataarea name="flop" size="368640"> |
| 380 | <rom name="antiriad.dsk" size="368640" crc="e024feda" sha1="646402c19cbd4392436e99905731dd8975d6d73a" offset="0" /> |
| 381 | </dataarea> |
| 382 | </part> |
| 383 | </software> |
| 384 | |
| 385 | <software name="arnhem"> |
| 386 | <description>Arnhem</description> |
| 387 | <year>1985</year> |
| 388 | <publisher>STV</publisher> |
| 389 | |
| 390 | <part name="flop1" interface="floppy_5_25"> |
| 391 | <dataarea name="flop" size="368640"> |
| 392 | <rom name="arnhem.dsk" size="368640" crc="250d1cea" sha1="f5516e4899e22158a828b094083dba93782eb742" offset="0" /> |
| 393 | </dataarea> |
| 394 | </part> |
| 395 | </software> |
| 396 | |
| 397 | <software name="assembly"> |
| 398 | <description>Assembly</description> |
| 399 | <year>198?</year> |
| 400 | <publisher>Atlas</publisher> |
| 401 | |
| 402 | <part name="flop1" interface="floppy_5_25"> |
| 403 | <dataarea name="flop" size="368640"> |
| 404 | <rom name="assembly.dsk" size="368640" crc="d9fb0a24" sha1="52306cc19fe780e48e1b7701f28de32d2774040e" offset="0" /> |
| 405 | </dataarea> |
| 406 | </part> |
| 407 | </software> |
| 408 | |
| 409 | <software name="astrobl"> |
| 410 | <description>Astro Blaster</description> |
| 411 | <year>1991</year> |
| 412 | <publisher>STV</publisher> |
| 413 | |
| 414 | <part name="flop1" interface="floppy_5_25"> |
| 415 | <dataarea name="flop" size="737280"> |
| 416 | <rom name="astroblaster.dsk" size="368640" crc="625498c9" sha1="0d8abc3e9b7e01caa64ee8ff35d575fd9a02e2a4" offset="0" /> |
| 417 | </dataarea> |
| 418 | </part> |
| 419 | </software> |
| 420 | |
| 421 | <software name="astroblt" cloneof="astrobl"> |
| 422 | <description>Astro Blaster (Trained)</description> |
| 423 | <year>1991</year> |
| 424 | <publisher>STV</publisher> |
| 425 | |
| 426 | <part name="flop1" interface="floppy_5_25"> |
| 427 | <dataarea name="flop" size="368640"> |
| 428 | <rom name="astroblastertrainer.dsk" size="368640" crc="01e6ced4" sha1="4b396dfb79959f33b6a227eb0c6cbe5947e0a1ae" offset="0" /> |
| 429 | </dataarea> |
| 430 | </part> |
| 431 | </software> |
| 432 | |
| 433 | <software name="astrobat"> |
| 434 | <description>Astro Blaster (Atlas)</description> |
| 435 | <year>198?</year> |
| 436 | <publisher>Atlas</publisher> |
| 437 | |
| 438 | <part name="flop1" interface="floppy_5_25"> |
| 439 | <dataarea name="flop" size="368640"> |
| 440 | <rom name="astroba.dsk" size="368640" crc="891b107d" sha1="9d6545168d1583ea4ed599a66f0da6c7c2b49b9d" offset="0" /> |
| 441 | </dataarea> |
| 442 | </part> |
| 443 | </software> |
| 444 | |
| 445 | <software name="astrocsa"> |
| 446 | <description>Asztro csata</description> |
| 447 | <year>198?</year> |
| 448 | <publisher><unknown></publisher> |
| 449 | |
| 450 | <part name="flop1" interface="floppy_5_25"> |
| 451 | <dataarea name="flop" size="368640"> |
| 452 | <rom name="astrocsata.dsk" size="368640" crc="b9e32bff" sha1="3ceab9df1826028640fe9710d9f93680b8c6decf" offset="0" /> |
| 453 | </dataarea> |
| 454 | </part> |
| 455 | </software> |
| 456 | |
| 457 | <software name="atkeles"> |
| 458 | <description>Átkelés</description> |
| 459 | <year>198?</year> |
| 460 | <publisher>I. Juhász</publisher> |
| 461 | |
| 462 | <part name="flop1" interface="floppy_5_25"> |
| 463 | <dataarea name="flop" size="368640"> |
| 464 | <rom name="atkeles.dsk" size="368640" crc="68a5c45c" sha1="300b0317413540981bc8e745345a67a52024f852" offset="0" /> |
| 465 | </dataarea> |
| 466 | </part> |
| 467 | </software> |
| 468 | |
| 469 | <software name="atomero"> |
| 470 | <description>Atomerőmű</description> |
| 471 | <year>198?</year> |
| 472 | <publisher><unknown></publisher> |
| 473 | |
| 474 | <part name="flop1" interface="floppy_5_25"> |
| 475 | <dataarea name="flop" size="368640"> |
| 476 | <rom name="atomeromu.dsk" size="368640" crc="c8275482" sha1="491e84eb39ebac2406caacafe7bf17a4e1d55c75" offset="0" /> |
| 477 | </dataarea> |
| 478 | </part> |
| 479 | </software> |
| 480 | |
| 481 | <software name="atomix"> |
| 482 | <description>Atomix</description> |
| 483 | <year>1991</year> |
| 484 | <publisher>STV</publisher> |
| 485 | |
| 486 | <part name="flop1" interface="floppy_5_25"> |
| 487 | <dataarea name="flop" size="368640"> |
| 488 | <rom name="atomix.dsk" size="368640" crc="7b987f43" sha1="3b9815f9f2a25e721a13ccc0c470e0a1e04d3d8e" offset="0" /> |
| 489 | </dataarea> |
| 490 | </part> |
| 491 | </software> |
| 492 | |
| 493 | <software name="atomixp" cloneof="atomix"> |
| 494 | <description>Atomix Plusz</description> |
| 495 | <year>1991</year> |
| 496 | <publisher>STV</publisher> |
| 497 | |
| 498 | <part name="flop1" interface="floppy_5_25"> |
| 499 | <dataarea name="flop" size="368640"> |
| 500 | <rom name="atomixp.dsk" size="368640" crc="0a36df47" sha1="5a71425891849aa9885ed8eddff0a6ac2ef2767e" offset="0" /> |
| 501 | </dataarea> |
| 502 | </part> |
| 503 | </software> |
| 504 | |
| 505 | <software name="atomixpj" cloneof="atomix"> |
| 506 | <description>Atomix Plusz Javított</description> |
| 507 | <year>1991</year> |
| 508 | <publisher>STV</publisher> |
| 509 | |
| 510 | <part name="flop1" interface="floppy_5_25"> |
| 511 | <dataarea name="flop" size="368640"> |
| 512 | <rom name="atomixpj.dsk" size="368640" crc="bd400ef6" sha1="6980499ad76ed404721a27cae6edf410f4b70bf0" offset="0" /> |
| 513 | </dataarea> |
| 514 | </part> |
| 515 | </software> |
| 516 | |
| 517 | <software name="attores"> |
| 518 | <description>Áttörés</description> |
| 519 | <year>198?</year> |
| 520 | <publisher>Bit & Guy</publisher> |
| 521 | |
| 522 | <part name="flop1" interface="floppy_5_25"> |
| 523 | <dataarea name="flop" size="368640"> |
| 524 | <rom name="attores.dsk" size="368640" crc="d1d7e985" sha1="1542bbb22acc81c162c53b91569ea7898bbd10fb" offset="0" /> |
| 525 | </dataarea> |
| 526 | </part> |
| 527 | </software> |
| 528 | |
| 529 | <software name="attoresa" cloneof="attores"> |
| 530 | <description>Áttörés (Alt)</description> |
| 531 | <year>198?</year> |
| 532 | <publisher>Bit & Guy</publisher> |
| 533 | |
| 534 | <part name="flop1" interface="floppy_5_25"> |
| 535 | <dataarea name="flop" size="368640"> |
| 536 | <rom name="attorv2.dsk" size="368640" crc="76462d13" sha1="12db74d0ed0e12eb01f28d966bf24b547ed0cdd8" offset="0" /> |
| 537 | </dataarea> |
| 538 | </part> |
| 539 | </software> |
| 540 | |
| 541 | <software name="attoresb" cloneof="attores"> |
| 542 | <description>Áttörés (Alt 2)</description> |
| 543 | <year>198?</year> |
| 544 | <publisher>Bit & Guy</publisher> |
| 545 | |
| 546 | <part name="flop1" interface="floppy_5_25"> |
| 547 | <dataarea name="flop" size="368640"> |
| 548 | <rom name="attoresv3.dsk" size="368640" crc="b095d154" sha1="085cdb8acc40fb36d1e0f4dcd98dc99ba5b9e09b" offset="0" /> |
| 549 | </dataarea> |
| 550 | </part> |
| 551 | </software> |
| 552 | |
| 553 | <software name="automani"> |
| 554 | <description>Autó Mánia</description> |
| 555 | <year>1990</year> |
| 556 | <publisher>Széplaky Stúdió</publisher> |
| 557 | |
| 558 | <part name="flop1" interface="floppy_5_25"> |
| 559 | <dataarea name="flop" size="368640"> |
| 560 | <rom name="automania.dsk" size="368640" crc="ecfb74dd" sha1="b6c5089b579299dae6564f7faf72efd5c1d7da25" offset="0" /> |
| 561 | </dataarea> |
| 562 | </part> |
| 563 | </software> |
| 564 | |
| 565 | <software name="autosped"> |
| 566 | <description>Auto Speed</description> |
| 567 | <year>198?</year> |
| 568 | <publisher><unknown></publisher> |
| 569 | |
| 570 | <part name="flop1" interface="floppy_5_25"> |
| 571 | <dataarea name="flop" size="368640"> |
| 572 | <rom name="autosped.dsk" size="368640" crc="dd8b065c" sha1="f56f04efac8af9429aef4ea565a7798838016fa0" offset="0" /> |
| 573 | </dataarea> |
| 574 | </part> |
| 575 | </software> |
| 576 | |
| 577 | <software name="awari"> |
| 578 | <description>Awari</description> |
| 579 | <year>198?</year> |
| 580 | <publisher><unknown></publisher> |
| 581 | |
| 582 | <part name="flop1" interface="floppy_5_25"> |
| 583 | <dataarea name="flop" size="368640"> |
| 584 | <rom name="awari.dsk" size="368640" crc="51a580af" sha1="ab83b0a504fec56cf87a9300adafb978b78df1fd" offset="0" /> |
| 585 | </dataarea> |
| 586 | </part> |
| 587 | </software> |
| 588 | |
| 589 | <software name="awaria" cloneof="awari"> |
| 590 | <description>Awari (Alt)</description> |
| 591 | <year>198?</year> |
| 592 | <publisher><unknown></publisher> |
| 593 | |
| 594 | <part name="flop1" interface="floppy_5_25"> |
| 595 | <dataarea name="flop" size="368640"> |
| 596 | <rom name="awariv2.dsk" size="368640" crc="9d86e42c" sha1="f256eb103dfc674302070345ba1808d10fb487b1" offset="0" /> |
| 597 | </dataarea> |
| 598 | </part> |
| 599 | </software> |
| 600 | |
| 601 | <software name="awari2"> |
| 602 | <description>Awari II</description> |
| 603 | <year>198?</year> |
| 604 | <publisher><unknown></publisher> |
| 605 | |
| 606 | <part name="flop1" interface="floppy_5_25"> |
| 607 | <dataarea name="flop" size="368640"> |
| 608 | <rom name="awari2.dsk" size="368640" crc="afecfb5c" sha1="5e1f8ebaa25ab82e120dc7d1fde9588e0f804877" offset="0" /> |
| 609 | </dataarea> |
| 610 | </part> |
| 611 | </software> |
| 612 | |
| 613 | <software name="awari1"> |
| 614 | <description>Awari 1</description> |
| 615 | <year>198?</year> |
| 616 | <publisher><unknown></publisher> |
| 617 | |
| 618 | <part name="flop1" interface="floppy_5_25"> |
| 619 | <dataarea name="flop" size="368640"> |
| 620 | <rom name="awari_.dsk" size="368640" crc="1bd29860" sha1="370e46972ecbfebfd991806331df9702afaf3ea2" offset="0" /> |
| 621 | </dataarea> |
| 622 | </part> |
| 623 | </software> |
| 624 | |
| 625 | <software name="azannya"> |
| 626 | <description>Azannya!</description> |
| 627 | <year>198?</year> |
| 628 | <publisher><unknown></publisher> |
| 629 | |
| 630 | <part name="flop1" interface="floppy_5_25"> |
| 631 | <dataarea name="flop" size="368640"> |
| 632 | <rom name="azannya.dsk" size="368640" crc="7e5cbce6" sha1="00b9e19690824c56468834fc32032d176158da49" offset="0" /> |
| 633 | </dataarea> |
| 634 | </part> |
| 635 | </software> |
| 636 | |
| 637 | <software name="azsaru"> |
| 638 | <description>A Zsaru</description> |
| 639 | <year>1990</year> |
| 640 | <publisher>Cápasoft</publisher> |
| 641 | |
| 642 | <part name="flop1" interface="floppy_5_25"> |
| 643 | <dataarea name="flop" size="368640"> |
| 644 | <rom name="azsaru.dsk" size="368640" crc="0669a309" sha1="f8593717fcc311cd9aa8cb60bb0d2262a59ac307" offset="0" /> |
| 645 | </dataarea> |
| 646 | </part> |
| 647 | </software> |
| 648 | |
| 649 | <software name="bombazo"> |
| 650 | <description>Az Utolsó Bombázó</description> |
| 651 | <year>198?</year> |
| 652 | <publisher><unknown></publisher> |
| 653 | |
| 654 | <part name="flop1" interface="floppy_5_25"> |
| 655 | <dataarea name="flop" size="368640"> |
| 656 | <rom name="azutolsobombazo.dsk" size="368640" crc="3ca7673b" sha1="104aafcea03b1213c1f26be041161285e2469538" offset="0" /> |
| 657 | </dataarea> |
| 658 | </part> |
| 659 | </software> |
| 660 | |
| 661 | <software name="bakterio"> |
| 662 | <description>Bakteriográf</description> |
| 663 | <year>198?</year> |
| 664 | <publisher>Agilar</publisher> |
| 665 | |
| 666 | <part name="flop1" interface="floppy_5_25"> |
| 667 | <dataarea name="flop" size="368640"> |
| 668 | <rom name="bakterio.dsk" size="368640" crc="71e26148" sha1="d4d61fcfb522ff72012b9f0e60212ed89695c994" offset="0" /> |
| 669 | </dataarea> |
| 670 | </part> |
| 671 | </software> |
| 672 | |
| 673 | <software name="bananfal"> |
| 674 | <description>Banánfaló</description> |
| 675 | <year>198?</year> |
| 676 | <publisher>Berysoft</publisher> |
| 677 | |
| 678 | <part name="flop1" interface="floppy_5_25"> |
| 679 | <dataarea name="flop" size="368640"> |
| 680 | <rom name="bananfalo.dsk" size="368640" crc="0a1cebd4" sha1="81ebdb0d7364d64b312dcbe914d717c35dccf8b9" offset="0" /> |
| 681 | </dataarea> |
| 682 | </part> |
| 683 | </software> |
| 684 | |
| 685 | <software name="bananfala" cloneof="bananfal"> |
| 686 | <description>Banánfaló (Alt)</description> |
| 687 | <year>198?</year> |
| 688 | <publisher>Berysoft</publisher> |
| 689 | |
| 690 | <part name="flop1" interface="floppy_5_25"> |
| 691 | <dataarea name="flop" size="368640"> |
| 692 | <rom name="bananfalov2.dsk" size="368640" crc="04dd3795" sha1="23398dfc4220a58e41ec556e7be29cababc09f09" offset="0" /> |
| 693 | </dataarea> |
| 694 | </part> |
| 695 | </software> |
| 696 | |
| 697 | <software name="bananfalb" cloneof="bananfal"> |
| 698 | <description>Banánfaló (Alt 2)</description> |
| 699 | <year>198?</year> |
| 700 | <publisher>Berysoft</publisher> |
| 701 | |
| 702 | <part name="flop1" interface="floppy_5_25"> |
| 703 | <dataarea name="flop" size="368640"> |
| 704 | <rom name="bananv3.dsk" size="368640" crc="b5b46bcf" sha1="12a07474029d6f1a2099bff3a0220e73636c3403" offset="0" /> |
| 705 | </dataarea> |
| 706 | </part> |
| 707 | </software> |
| 708 | |
| 709 | <software name="banyasz"> |
| 710 | <description>Bányász</description> |
| 711 | <year>198?</year> |
| 712 | <publisher>Novotrade</publisher> |
| 713 | |
| 714 | <part name="flop1" interface="floppy_5_25"> |
| 715 | <dataarea name="flop" size="368640"> |
| 716 | <rom name="banyasz.dsk" size="368640" crc="ed81598c" sha1="169a2367e45781a84274a3113acb74b7f7741c90" offset="0" /> |
| 717 | </dataarea> |
| 718 | </part> |
| 719 | </software> |
| 720 | |
| 721 | <software name="banyasza" cloneof="banyasz"> |
| 722 | <description>Bányász (Alt)</description> |
| 723 | <year>198?</year> |
| 724 | <publisher>Novotrade</publisher> |
| 725 | |
| 726 | <part name="flop1" interface="floppy_5_25"> |
| 727 | <dataarea name="flop" size="368640"> |
| 728 | <rom name="banyaszv2.dsk" size="368640" crc="b748801d" sha1="86d792ef16881ed05fa868c75b7d6aedb9da8f69" offset="0" /> |
| 729 | </dataarea> |
| 730 | </part> |
| 731 | </software> |
| 732 | |
| 733 | <software name="barbar"> |
| 734 | <description>Barbár</description> |
| 735 | <year>198?</year> |
| 736 | <publisher>Cápasoft</publisher> |
| 737 | |
| 738 | <part name="flop1" interface="floppy_5_25"> |
| 739 | <dataarea name="flop" size="368640"> |
| 740 | <rom name="barbar.dsk" size="368640" crc="3f474c3e" sha1="be260365cbe1de44ca16e4ce7116bdd924e994ac" offset="0" /> |
| 741 | </dataarea> |
| 742 | </part> |
| 743 | </software> |
| 744 | |
| 745 | <software name="barchoba"> |
| 746 | <description>Barchoba</description> |
| 747 | <year>198?</year> |
| 748 | <publisher><unknown></publisher> |
| 749 | |
| 750 | <part name="flop1" interface="floppy_5_25"> |
| 751 | <dataarea name="flop" size="368640"> |
| 752 | <rom name="barchoba.dsk" size="368640" crc="54710a53" sha1="5f7e4e8eb060711b7f137411d88d84bb24404614" offset="0" /> |
| 753 | </dataarea> |
| 754 | </part> |
| 755 | </software> |
| 756 | |
| 757 | <software name="barkochb"> |
| 758 | <description>Barkochba</description> |
| 759 | <year>198?</year> |
| 760 | <publisher><unknown></publisher> |
| 761 | |
| 762 | <part name="flop1" interface="floppy_5_25"> |
| 763 | <dataarea name="flop" size="368640"> |
| 764 | <rom name="barkochba.dsk" size="368640" crc="a06d72fc" sha1="607b8ef595e3918b4266babd9562d8867aca705f" offset="0" /> |
| 765 | </dataarea> |
| 766 | </part> |
| 767 | </software> |
| 768 | |
| 769 | <software name="barna"> |
| 770 | <description>Barna</description> |
| 771 | <year>199?</year> |
| 772 | <publisher>K&K Soft</publisher> |
| 773 | |
| 774 | <part name="flop1" interface="floppy_5_25"> |
| 775 | <dataarea name="flop" size="368640"> |
| 776 | <rom name="barna.dsk" size="368640" crc="5f0e5f7f" sha1="152f458d22998e675a02bb0def8c94b0cd2d0cc8" offset="0" /> |
| 777 | </dataarea> |
| 778 | </part> |
| 779 | </software> |
| 780 | |
| 781 | <software name="basicmon"> |
| 782 | <description>TV Computer BASIC Monitor</description> |
| 783 | <year>1987</year> |
| 784 | <publisher>H-Software</publisher> |
| 785 | |
| 786 | <part name="flop1" interface="floppy_5_25"> |
| 787 | <dataarea name="flop" size="368640"> |
| 788 | <rom name="basicmon.dsk" size="368640" crc="d152878e" sha1="7f97e94464137fe0b49973f7bb25ff17943d15b6" offset="0" /> |
| 789 | </dataarea> |
| 790 | </part> |
| 791 | </software> |
| 792 | |
| 793 | <software name="batman"> |
| 794 | <description>Batman</description> |
| 795 | <year>198?</year> |
| 796 | <publisher>C.S. Software</publisher> |
| 797 | |
| 798 | <part name="flop1" interface="floppy_5_25"> |
| 799 | <dataarea name="flop" size="368640"> |
| 800 | <rom name="batman.dsk" size="368640" crc="c9895709" sha1="14851985bfbd702eae0629c7545ce1b088892423" offset="0" /> |
| 801 | </dataarea> |
| 802 | </part> |
| 803 | </software> |
| 804 | |
| 805 | <software name="bazisurh"> |
| 806 | <description>Bázis - űrhajós</description> |
| 807 | <year>198?</year> |
| 808 | <publisher><unknown></publisher> |
| 809 | |
| 810 | <part name="flop1" interface="floppy_5_25"> |
| 811 | <dataarea name="flop" size="368640"> |
| 812 | <rom name="bazis-urhajos.dsk" size="368640" crc="902af665" sha1="43c420cae5eec9d86be5b1fdfd20247a614c4805" offset="0" /> |
| 813 | </dataarea> |
| 814 | </part> |
| 815 | </software> |
| 816 | |
| 817 | <software name="bazis"> |
| 818 | <description>Bázis</description> |
| 819 | <year>198?</year> |
| 820 | <publisher>Software in LUX</publisher> |
| 821 | |
| 822 | <part name="flop1" interface="floppy_5_25"> |
| 823 | <dataarea name="flop" size="368640"> |
| 824 | <rom name="bazis.dsk" size="368640" crc="fcccab2c" sha1="ce959dabc94fdcb343cdad6a4927665a006a9078" offset="0" /> |
| 825 | </dataarea> |
| 826 | </part> |
| 827 | </software> |
| 828 | |
| 829 | <software name="bekajate"> |
| 830 | <description>Béka-játék</description> |
| 831 | <year>198?</year> |
| 832 | <publisher><unknown></publisher> |
| 833 | |
| 834 | <part name="flop1" interface="floppy_5_25"> |
| 835 | <dataarea name="flop" size="368640"> |
| 836 | <rom name="bekajate.dsk" size="368640" crc="c6fe9d67" sha1="32560aab2548d7172d7e925d86afd827af337139" offset="0" /> |
| 837 | </dataarea> |
| 838 | </part> |
| 839 | </software> |
| 840 | |
| 841 | <software name="bekajatea" cloneof="bekajate"> |
| 842 | <description>Béka-játék (Alt)</description> |
| 843 | <year>198?</year> |
| 844 | <publisher><unknown></publisher> |
| 845 | |
| 846 | <part name="flop1" interface="floppy_5_25"> |
| 847 | <dataarea name="flop" size="368640"> |
| 848 | <rom name="bekajav2.dsk" size="368640" crc="41f4f4e3" sha1="da90c598aa50fd2d7d08131542018574f9cbc893" offset="0" /> |
| 849 | </dataarea> |
| 850 | </part> |
| 851 | </software> |
| 852 | |
| 853 | <software name="bekajateb" cloneof="bekajate"> |
| 854 | <description>Béka-játék (Alt 2)</description> |
| 855 | <year>198?</year> |
| 856 | <publisher><unknown></publisher> |
| 857 | |
| 858 | <part name="flop1" interface="floppy_5_25"> |
| 859 | <dataarea name="flop" size="368640"> |
| 860 | <rom name="bekajav3.dsk" size="368640" crc="f301a96c" sha1="3cb811d888d25721acfa59198dce09b3189764ba" offset="0" /> |
| 861 | </dataarea> |
| 862 | </part> |
| 863 | </software> |
| 864 | |
| 865 | <software name="beka"> |
| 866 | <description>Béka</description> |
| 867 | <year>198?</year> |
| 868 | <publisher><unknown></publisher> |
| 869 | |
| 870 | <part name="flop1" interface="floppy_5_25"> |
| 871 | <dataarea name="flop" size="368640"> |
| 872 | <rom name="bekav1.dsk" size="368640" crc="45dc3be4" sha1="d355d50467aad66bb55703dba19b92cf06f6113b" offset="0" /> |
| 873 | </dataarea> |
| 874 | </part> |
| 875 | </software> |
| 876 | |
| 877 | <software name="bekaa" cloneof="beka"> |
| 878 | <description>Béka (Alt)</description> |
| 879 | <year>198?</year> |
| 880 | <publisher><unknown></publisher> |
| 881 | |
| 882 | <part name="flop1" interface="floppy_5_25"> |
| 883 | <dataarea name="flop" size="368640"> |
| 884 | <rom name="bekav2.dsk" size="368640" crc="8f74afaa" sha1="0c012ab8e36340d3af05514b8a549d848f7dbc20" offset="0" /> |
| 885 | </dataarea> |
| 886 | </part> |
| 887 | </software> |
| 888 | |
| 889 | <software name="bekab" cloneof="beka"> |
| 890 | <description>Béka (Alt 2)</description> |
| 891 | <year>198?</year> |
| 892 | <publisher><unknown></publisher> |
| 893 | |
| 894 | <part name="flop1" interface="floppy_5_25"> |
| 895 | <dataarea name="flop" size="368640"> |
| 896 | <rom name="bekaev.dsk" size="368640" crc="1cb67f8d" sha1="b18935762c90978abaff31990ab9be7c6a054faf" offset="0" /> |
| 897 | </dataarea> |
| 898 | </part> |
| 899 | </software> |
| 900 | |
| 901 | <software name="beszelo"> |
| 902 | <description>Beszélő program</description> |
| 903 | <year>198?</year> |
| 904 | <publisher><unknown></publisher> |
| 905 | |
| 906 | <part name="flop1" interface="floppy_5_25"> |
| 907 | <dataarea name="flop" size="368640"> |
| 908 | <rom name="beszelo.dsk" size="368640" crc="7223f302" sha1="07486a0c4965108506bce2986a0e43245534f0eb" offset="0" /> |
| 909 | </dataarea> |
| 910 | </part> |
| 911 | </software> |
| 912 | |
| 913 | <software name="betegban"> |
| 914 | <description>BetegBank</description> |
| 915 | <year>198?</year> |
| 916 | <publisher>TVCM</publisher> |
| 917 | |
| 918 | <part name="flop1" interface="floppy_5_25"> |
| 919 | <dataarea name="flop" size="368640"> |
| 920 | <rom name="betegbank.dsk" size="368640" crc="62d29266" sha1="bfbabffddbf1b1352829cad2aa30af73eed9ab9f" offset="0" /> |
| 921 | </dataarea> |
| 922 | </part> |
| 923 | </software> |
| 924 | |
| 925 | <software name="bigbadjo"> |
| 926 | <description>Big Bad John</description> |
| 927 | <year>1987</year> |
| 928 | <publisher>Zsolt Dobrovics</publisher> |
| 929 | |
| 930 | <part name="flop1" interface="floppy_5_25"> |
| 931 | <dataarea name="flop" size="368640"> |
| 932 | <rom name="bigbadjohn.dsk" size="368640" crc="d6a50bff" sha1="9da832f0e27120317998a6335e2504ddb1f623e4" offset="0" /> |
| 933 | </dataarea> |
| 934 | </part> |
| 935 | </software> |
| 936 | |
| 937 | <software name="bioritmu"> |
| 938 | <description>Bioritmus (v1)</description> |
| 939 | <year>1986</year> |
| 940 | <publisher>Unisoft GMK</publisher> |
| 941 | |
| 942 | <part name="flop1" interface="floppy_5_25"> |
| 943 | <dataarea name="flop" size="368640"> |
| 944 | <rom name="bioritv1.dsk" size="368640" crc="37fcb814" sha1="04146134c916e49982a3ebb4c9e37821c6275462" offset="0" /> |
| 945 | </dataarea> |
| 946 | </part> |
| 947 | </software> |
| 948 | |
| 949 | <software name="bioritmua" cloneof="bioritmu"> |
| 950 | <description>Bioritmus (Alt)</description> |
| 951 | <year>1986</year> |
| 952 | <publisher>Unisoft GMK</publisher> |
| 953 | |
| 954 | <part name="flop1" interface="floppy_5_25"> |
| 955 | <dataarea name="flop" size="368640"> |
| 956 | <rom name="bioritv2.dsk" size="368640" crc="317ffc7a" sha1="00f4b3903595de53982190148febbcd2f26eef85" offset="0" /> |
| 957 | </dataarea> |
| 958 | </part> |
| 959 | </software> |
| 960 | |
| 961 | <software name="biortape" cloneof="bioritmu"> |
| 962 | <description>Bioritmus (Cassette Version)</description> |
| 963 | <year>1986</year> |
| 964 | <publisher>Unisoft GMK</publisher> |
| 965 | |
| 966 | <part name="flop1" interface="floppy_5_25"> |
| 967 | <dataarea name="flop" size="368640"> |
| 968 | <rom name="biortape.dsk" size="368640" crc="aebd9a62" sha1="55451395e2889dc2af6620a7be7bd69044cd89df" offset="0" /> |
| 969 | </dataarea> |
| 970 | </part> |
| 971 | </software> |
| 972 | |
| 973 | <software name="biv02"> |
| 974 | <description>Biológia - Növényhatározás - Kétszikűek 1. - BIV02</description> |
| 975 | <year>1987</year> |
| 976 | <publisher>Panda Software</publisher> |
| 977 | |
| 978 | <part name="flop1" interface="floppy_5_25"> |
| 979 | <dataarea name="flop" size="368640"> |
| 980 | <rom name="biv02.dsk" size="368640" crc="0e82dfbc" sha1="04d65de23e912ae8f0f994db67d62e6266b04234" offset="0" /> |
| 981 | </dataarea> |
| 982 | </part> |
| 983 | </software> |
| 984 | |
| 985 | <software name="black"> |
| 986 | <description>Black</description> |
| 987 | <year>1989</year> |
| 988 | <publisher>Laszlo Csanyi</publisher> |
| 989 | |
| 990 | <part name="flop1" interface="floppy_5_25"> |
| 991 | <dataarea name="flop" size="368640"> |
| 992 | <rom name="black.dsk" size="368640" crc="69cd924b" sha1="8d994a7bd069fcd4d40ead00634a260f6a0b88e9" offset="0" /> |
| 993 | </dataarea> |
| 994 | </part> |
| 995 | </software> |
| 996 | |
| 997 | <software name="blocking"> |
| 998 | <description>Blocking</description> |
| 999 | <year>1991</year> |
| 1000 | <publisher>Vz</publisher> |
| 1001 | |
| 1002 | <part name="flop1" interface="floppy_5_25"> |
| 1003 | <dataarea name="flop" size="368640"> |
| 1004 | <rom name="blocking.dsk" size="368640" crc="d11ddd60" sha1="fc57732cb9a8e12f1dea1e8f10967254d11f5789" offset="0" /> |
| 1005 | </dataarea> |
| 1006 | </part> |
| 1007 | </software> |
| 1008 | |
| 1009 | <software name="bob"> |
| 1010 | <description>Bob</description> |
| 1011 | <year>198?</year> |
| 1012 | <publisher>Mamut Soft</publisher> |
| 1013 | |
| 1014 | <part name="flop1" interface="floppy_5_25"> |
| 1015 | <dataarea name="flop" size="368640"> |
| 1016 | <rom name="bob.dsk" size="368640" crc="42200a37" sha1="7c6c0e471e2651f0ee1460a1e6a1df377a83f9df" offset="0" /> |
| 1017 | </dataarea> |
| 1018 | </part> |
| 1019 | </software> |
| 1020 | |
| 1021 | <software name="bobkutya"> |
| 1022 | <description>Bob (kutya)</description> |
| 1023 | <year>198?</year> |
| 1024 | <publisher><unknown></publisher> |
| 1025 | |
| 1026 | <part name="flop1" interface="floppy_5_25"> |
| 1027 | <dataarea name="flop" size="368640"> |
| 1028 | <rom name="bobkutya.dsk" size="368640" crc="7f16f8ca" sha1="ede752356380562766f6c18023cb6ce758c4aa27" offset="0" /> |
| 1029 | </dataarea> |
| 1030 | </part> |
| 1031 | </software> |
| 1032 | |
| 1033 | <software name="boba" cloneof="bob"> |
| 1034 | <description>Bob (Alt)</description> |
| 1035 | <year>198?</year> |
| 1036 | <publisher>Mamut Soft</publisher> |
| 1037 | |
| 1038 | <part name="flop1" interface="floppy_5_25"> |
| 1039 | <dataarea name="flop" size="368640"> |
| 1040 | <rom name="bobv2.dsk" size="368640" crc="e295300e" sha1="2320f1e7b6a9790047eb649eb3e0b4396a69799b" offset="0" /> |
| 1041 | </dataarea> |
| 1042 | </part> |
| 1043 | </software> |
| 1044 | |
| 1045 | <software name="bogar"> |
| 1046 | <description>Bogár</description> |
| 1047 | <year>198?</year> |
| 1048 | <publisher><unknown></publisher> |
| 1049 | |
| 1050 | <part name="flop1" interface="floppy_5_25"> |
| 1051 | <dataarea name="flop" size="368640"> |
| 1052 | <rom name="bogar.dsk" size="368640" crc="e8d2af28" sha1="db2b59ac2de42bc17cad4224dae8c953adaf8a8f" offset="0" /> |
| 1053 | </dataarea> |
| 1054 | </part> |
| 1055 | </software> |
| 1056 | |
| 1057 | <software name="bombazd"> |
| 1058 | <description>Bombázd le Ceausecut</description> |
| 1059 | <year>198?</year> |
| 1060 | <publisher>Osmagyar Software</publisher> |
| 1061 | |
| 1062 | <part name="flop1" interface="floppy_5_25"> |
| 1063 | <dataarea name="flop" size="368640"> |
| 1064 | <rom name="bombazdleceausecut.dsk" size="368640" crc="2005060b" sha1="fa420ee8e511f8fb7fc862591475a19ca1e0c0e1" offset="0" /> |
| 1065 | </dataarea> |
| 1066 | </part> |
| 1067 | </software> |
| 1068 | |
| 1069 | <software name="bomlas"> |
| 1070 | <description>Rádióaktív bomlás</description> |
| 1071 | <year>198?</year> |
| 1072 | <publisher><unknown></publisher> |
| 1073 | |
| 1074 | <part name="flop1" interface="floppy_5_25"> |
| 1075 | <dataarea name="flop" size="368640"> |
| 1076 | <rom name="bomlas.dsk" size="368640" crc="f6b90bef" sha1="55992b7a85321e493ac226fcf8c3251b8fa5fd0b" offset="0" /> |
| 1077 | </dataarea> |
| 1078 | </part> |
| 1079 | </software> |
| 1080 | |
| 1081 | <software name="boszork1"> |
| 1082 | <description>Boszorkány 1</description> |
| 1083 | <year>198?</year> |
| 1084 | <publisher>Agilar</publisher> |
| 1085 | |
| 1086 | <part name="flop1" interface="floppy_5_25"> |
| 1087 | <dataarea name="flop" size="368640"> |
| 1088 | <rom name="boszorka.dsk" size="368640" crc="908a29ae" sha1="37224955339d6236616abcc09ad0bf0db049336f" offset="0" /> |
| 1089 | </dataarea> |
| 1090 | </part> |
| 1091 | </software> |
| 1092 | |
| 1093 | <software name="boszork2"> |
| 1094 | <description>Boszorkány 2</description> |
| 1095 | <year>198?</year> |
| 1096 | <publisher>Agilar</publisher> |
| 1097 | |
| 1098 | <part name="flop1" interface="floppy_5_25"> |
| 1099 | <dataarea name="flop" size="368640"> |
| 1100 | <rom name="boszorkany2.dsk" size="368640" crc="db1dc079" sha1="6280c3bba5e0462cfacefa5f528332b9d01a4c59" offset="0" /> |
| 1101 | </dataarea> |
| 1102 | </part> |
| 1103 | </software> |
| 1104 | |
| 1105 | <software name="asmbot"> |
| 1106 | <description>Mnemonic IV Assembler-Monitor - Bottom</description> |
| 1107 | <year>1989</year> |
| 1108 | <publisher>László Bata</publisher> |
| 1109 | |
| 1110 | <part name="flop1" interface="floppy_5_25"> |
| 1111 | <dataarea name="flop" size="368640"> |
| 1112 | <rom name="bottom.dsk" size="368640" crc="963cf18e" sha1="fc106957e23d5a8bbee8d264e5f6853317c8714a" offset="0" /> |
| 1113 | </dataarea> |
| 1114 | </part> |
| 1115 | </software> |
| 1116 | |
| 1117 | <software name="bdash"> |
| 1118 | <description>Boulder Dash</description> |
| 1119 | <year>1989</year> |
| 1120 | <publisher>Zsolt Dobrovics</publisher> |
| 1121 | |
| 1122 | <part name="flop1" interface="floppy_5_25"> |
| 1123 | <dataarea name="flop" size="368640"> |
| 1124 | <rom name="boulderdash.dsk" size="368640" crc="fd59920c" sha1="2713de539eb9208d5ce28fc5359d3bfe5627c114" offset="0" /> |
| 1125 | </dataarea> |
| 1126 | </part> |
| 1127 | </software> |
| 1128 | |
| 1129 | <software name="box"> |
| 1130 | <description>Box</description> |
| 1131 | <year>198?</year> |
| 1132 | <publisher>Szeki</publisher> |
| 1133 | |
| 1134 | <part name="flop1" interface="floppy_5_25"> |
| 1135 | <dataarea name="flop" size="368640"> |
| 1136 | <rom name="box.dsk" size="368640" crc="4c759bd6" sha1="1a935d79633a17cdc313acc5d30c2b8306dce3ba" offset="0" /> |
| 1137 | </dataarea> |
| 1138 | </part> |
| 1139 | </software> |
| 1140 | |
| 1141 | <software name="box2"> |
| 1142 | <description>Box 2</description> |
| 1143 | <year>198?</year> |
| 1144 | <publisher>Szeki</publisher> |
| 1145 | |
| 1146 | <part name="flop1" interface="floppy_5_25"> |
| 1147 | <dataarea name="flop" size="368640"> |
| 1148 | <rom name="box2.dsk" size="368640" crc="f5855825" sha1="bc93cfd97a88d08975440ce4e2940b2314af5669" offset="0" /> |
| 1149 | </dataarea> |
| 1150 | </part> |
| 1151 | </software> |
| 1152 | |
| 1153 | <software name="break2"> |
| 1154 | <description>Break 2</description> |
| 1155 | <year>198?</year> |
| 1156 | <publisher><unknown></publisher> |
| 1157 | |
| 1158 | <part name="flop1" interface="floppy_5_25"> |
| 1159 | <dataarea name="flop" size="368640"> |
| 1160 | <rom name="break2.dsk" size="368640" crc="73facc52" sha1="f2fe9ff8f144162b02955a032a2b252417462dbc" offset="0" /> |
| 1161 | </dataarea> |
| 1162 | </part> |
| 1163 | </software> |
| 1164 | |
| 1165 | <software name="break3"> |
| 1166 | <description>Break 3</description> |
| 1167 | <year>198?</year> |
| 1168 | <publisher><unknown></publisher> |
| 1169 | |
| 1170 | <part name="flop1" interface="floppy_5_25"> |
| 1171 | <dataarea name="flop" size="368640"> |
| 1172 | <rom name="break3.dsk" size="368640" crc="c4e3e138" sha1="41c8992d8b8fc8d546135a9574e22d4791afe6a7" offset="0" /> |
| 1173 | </dataarea> |
| 1174 | </part> |
| 1175 | </software> |
| 1176 | |
| 1177 | <software name="breakopn"> |
| 1178 | <description>Breakopen</description> |
| 1179 | <year>198?</year> |
| 1180 | <publisher><unknown></publisher> |
| 1181 | |
| 1182 | <part name="flop1" interface="floppy_5_25"> |
| 1183 | <dataarea name="flop" size="368640"> |
| 1184 | <rom name="breakopen.dsk" size="368640" crc="4f3777e2" sha1="b3d336445688ae20736cdc7b64399dc117ac1745" offset="0" /> |
| 1185 | </dataarea> |
| 1186 | </part> |
| 1187 | </software> |
| 1188 | |
| 1189 | <software name="bulldozr"> |
| 1190 | <description>Bulldozer</description> |
| 1191 | <year>198?</year> |
| 1192 | <publisher>Compi & Urz</publisher> |
| 1193 | |
| 1194 | <part name="flop1" interface="floppy_5_25"> |
| 1195 | <dataarea name="flop" size="368640"> |
| 1196 | <rom name="bulldoze.dsk" size="368640" crc="557937de" sha1="2763c1df53ab2f12f99f9ea926698b1c6131bba4" offset="0" /> |
| 1197 | </dataarea> |
| 1198 | </part> |
| 1199 | </software> |
| 1200 | |
| 1201 | <software name="bulldozrj" cloneof="bulldozr"> |
| 1202 | <description>Bulldozer (Joystick)</description> |
| 1203 | <year>198?</year> |
| 1204 | <publisher>Compi & Urz</publisher> |
| 1205 | |
| 1206 | <part name="flop1" interface="floppy_5_25"> |
| 1207 | <dataarea name="flop" size="368640"> |
| 1208 | <rom name="dozerjoy.dsk" size="368640" crc="589c301c" sha1="1219aa4eba7265f0ab3271c0074b297765b46fd7" offset="0" /> |
| 1209 | </dataarea> |
| 1210 | </part> |
| 1211 | </software> |
| 1212 | |
| 1213 | <software name="buvar"> |
| 1214 | <description>Búvár</description> |
| 1215 | <year>198?</year> |
| 1216 | <publisher>Berysoft</publisher> |
| 1217 | |
| 1218 | <part name="flop1" interface="floppy_5_25"> |
| 1219 | <dataarea name="flop" size="368640"> |
| 1220 | <rom name="buvar.dsk" size="368640" crc="f7144b23" sha1="027e4ff5adbe34f64a8f0f36ba89f23d63fecdc6" offset="0" /> |
| 1221 | </dataarea> |
| 1222 | </part> |
| 1223 | </software> |
| 1224 | |
| 1225 | <software name="buvoskoc"> |
| 1226 | <description>Bűvös kocka</description> |
| 1227 | <year>198?</year> |
| 1228 | <publisher><unknown></publisher> |
| 1229 | |
| 1230 | <part name="flop1" interface="floppy_5_25"> |
| 1231 | <dataarea name="flop" size="368640"> |
| 1232 | <rom name="buvoskoc.dsk" size="368640" crc="ed72dcd5" sha1="8b478b32feb8ba5c0c666bca4b859f0d46c87a85" offset="0" /> |
| 1233 | </dataarea> |
| 1234 | </part> |
| 1235 | </software> |
| 1236 | |
| 1237 | <software name="buvosneg"> |
| 1238 | <description>Bűvös négyzetek</description> |
| 1239 | <year>1987</year> |
| 1240 | <publisher>Octasoft</publisher> |
| 1241 | |
| 1242 | <part name="flop1" interface="floppy_5_25"> |
| 1243 | <dataarea name="flop" size="368640"> |
| 1244 | <rom name="buvosnegyzetek.dsk" size="368640" crc="db684bac" sha1="e97fe8b3a1bef44f094ff5b428ed393caa8fe273" offset="0" /> |
| 1245 | </dataarea> |
| 1246 | </part> |
| 1247 | </software> |
| 1248 | |
| 1249 | <software name="cammogo"> |
| 1250 | <description>Cammogó-derby</description> |
| 1251 | <year>198?</year> |
| 1252 | <publisher><unknown></publisher> |
| 1253 | |
| 1254 | <part name="flop1" interface="floppy_5_25"> |
| 1255 | <dataarea name="flop" size="368640"> |
| 1256 | <rom name="cammogoderby.dsk" size="368640" crc="f6bab1d8" sha1="740a77501f94ffa39558be11b232f3c83598863a" offset="0" /> |
| 1257 | </dataarea> |
| 1258 | </part> |
| 1259 | </software> |
| 1260 | |
| 1261 | <software name="casio"> |
| 1262 | <description>Casio</description> |
| 1263 | <year>198?</year> |
| 1264 | <publisher>Péter Dörner</publisher> |
| 1265 | |
| 1266 | <part name="flop1" interface="floppy_5_25"> |
| 1267 | <dataarea name="flop" size="368640"> |
| 1268 | <rom name="casio.dsk" size="368640" crc="0c4a7b6d" sha1="dedec6352e140e5fe0cfe12636f6b27956fd3780" offset="0" /> |
| 1269 | </dataarea> |
| 1270 | </part> |
| 1271 | </software> |
| 1272 | |
| 1273 | <software name="cellovo"> |
| 1274 | <description>Céllövő</description> |
| 1275 | <year>198?</year> |
| 1276 | <publisher><unknown></publisher> |
| 1277 | |
| 1278 | <part name="flop1" interface="floppy_5_25"> |
| 1279 | <dataarea name="flop" size="368640"> |
| 1280 | <rom name="cellov.dsk" size="368640" crc="b8e67e0b" sha1="9bae4b3b28f8706a75d5baf02f9eac94436c5ce3" offset="0" /> |
| 1281 | </dataarea> |
| 1282 | </part> |
| 1283 | </software> |
| 1284 | |
| 1285 | <software name="cellovol"> |
| 1286 | <description>Céllövölde</description> |
| 1287 | <year>198?</year> |
| 1288 | <publisher>Cápasoft</publisher> |
| 1289 | |
| 1290 | <part name="flop1" interface="floppy_5_25"> |
| 1291 | <dataarea name="flop" size="368640"> |
| 1292 | <rom name="cellovo.dsk" size="368640" crc="3be0aae9" sha1="683b722553180fb5e61193ab3c47ad68b97a5fcc" offset="0" /> |
| 1293 | </dataarea> |
| 1294 | </part> |
| 1295 | </software> |
| 1296 | |
| 1297 | <software name="centiped"> |
| 1298 | <description>Centipede</description> |
| 1299 | <year>198?</year> |
| 1300 | <publisher>STV</publisher> |
| 1301 | |
| 1302 | <part name="flop1" interface="floppy_5_25"> |
| 1303 | <dataarea name="flop" size="368640"> |
| 1304 | <rom name="centipede.dsk" size="368640" crc="45374dc4" sha1="dfdf9d9021c9344b27e6256045986e51b708aca7" offset="0" /> |
| 1305 | </dataarea> |
| 1306 | </part> |
| 1307 | </software> |
| 1308 | |
| 1309 | <software name="centaury"> |
| 1310 | <description>Centaury-1</description> |
| 1311 | <year>198?</year> |
| 1312 | <publisher>Novotrade</publisher> |
| 1313 | |
| 1314 | <part name="flop1" interface="floppy_5_25"> |
| 1315 | <dataarea name="flop" size="368640"> |
| 1316 | <rom name="centaury-1.dsk" size="368640" crc="bbc3f0df" sha1="8f506679d57d3dcebd1d52bec5f1e81119dd864b" offset="0" /> |
| 1317 | </dataarea> |
| 1318 | </part> |
| 1319 | </software> |
| 1320 | |
| 1321 | <software name="nasasim"> |
| 1322 | <description>NASA Simulator - Space Shuttle</description> |
| 1323 | <year>198?</year> |
| 1324 | <publisher><unknown></publisher> |
| 1325 | |
| 1326 | <part name="flop1" interface="floppy_5_25"> |
| 1327 | <dataarea name="flop" size="368640"> |
| 1328 | <rom name="challenger.dsk" size="368640" crc="e96055c6" sha1="9f2eb4dc079c5bdcc8f55b893b9458f7cc638b2e" offset="0" /> |
| 1329 | </dataarea> |
| 1330 | </part> |
| 1331 | </software> |
| 1332 | |
| 1333 | <software name="chip"> |
| 1334 | <description>Chip</description> |
| 1335 | <year>198?</year> |
| 1336 | <publisher><unknown></publisher> |
| 1337 | |
| 1338 | <part name="flop1" interface="floppy_5_25"> |
| 1339 | <dataarea name="flop" size="368640"> |
| 1340 | <rom name="chip.dsk" size="368640" crc="eab5152e" sha1="d458798eef74643329490a165a4f3ff3f3c2204e" offset="0" /> |
| 1341 | </dataarea> |
| 1342 | </part> |
| 1343 | </software> |
| 1344 | |
| 1345 | <software name="cicik"> |
| 1346 | <description>Lebegő Cicik</description> |
| 1347 | <year>198?</year> |
| 1348 | <publisher>G.V. Alfa Software</publisher> |
| 1349 | |
| 1350 | <part name="flop1" interface="floppy_5_25"> |
| 1351 | <dataarea name="flop" size="368640"> |
| 1352 | <rom name="cicik.dsk" size="368640" crc="4e9057e4" sha1="29c45862a3e648637f65400579e77a3f8cad53ee" offset="0" /> |
| 1353 | </dataarea> |
| 1354 | </part> |
| 1355 | </software> |
| 1356 | |
| 1357 | <software name="cikcakk"> |
| 1358 | <description>Cikcakk</description> |
| 1359 | <year>198?</year> |
| 1360 | <publisher><unknown></publisher> |
| 1361 | |
| 1362 | <part name="flop1" interface="floppy_5_25"> |
| 1363 | <dataarea name="flop" size="368640"> |
| 1364 | <rom name="cikcakk.dsk" size="368640" crc="3462df3b" sha1="058ab717c6bd99568545b0b879297b7399b37817" offset="0" /> |
| 1365 | </dataarea> |
| 1366 | </part> |
| 1367 | </software> |
| 1368 | |
| 1369 | <software name="ciklon"> |
| 1370 | <description>Ciklon</description> |
| 1371 | <year>198?</year> |
| 1372 | <publisher>Software in LUX</publisher> |
| 1373 | |
| 1374 | <part name="flop1" interface="floppy_5_25"> |
| 1375 | <dataarea name="flop" size="368640"> |
| 1376 | <rom name="ciklon.dsk" size="368640" crc="3aa85ee7" sha1="6c555314fe929cf4c9f216997238a6fa375c213b" offset="0" /> |
| 1377 | </dataarea> |
| 1378 | </part> |
| 1379 | </software> |
| 1380 | |
| 1381 | <software name="circle"> |
| 1382 | <description>Circle</description> |
| 1383 | <year>198?</year> |
| 1384 | <publisher>Atlas</publisher> |
| 1385 | |
| 1386 | <part name="flop1" interface="floppy_5_25"> |
| 1387 | <dataarea name="flop" size="368640"> |
| 1388 | <rom name="circle.dsk" size="368640" crc="7b01a040" sha1="bf06eb7dfa37b549fe2da0b32abc75f8f5b0d166" offset="0" /> |
| 1389 | </dataarea> |
| 1390 | </part> |
| 1391 | </software> |
| 1392 | |
| 1393 | <software name="citadell"> |
| 1394 | <description>Citadella</description> |
| 1395 | <year>1988</year> |
| 1396 | <publisher>SVS Software</publisher> |
| 1397 | |
| 1398 | <part name="flop1" interface="floppy_5_25"> |
| 1399 | <dataarea name="flop" size="368640"> |
| 1400 | <rom name="citadella.dsk" size="368640" crc="ae232b7c" sha1="1ae5fb204eefd69b84ce6dd11445e83c1a5537ba" offset="0" /> |
| 1401 | </dataarea> |
| 1402 | </part> |
| 1403 | </software> |
| 1404 | |
| 1405 | <software name="citycru"> |
| 1406 | <description>City Cruiser</description> |
| 1407 | <year>1988</year> |
| 1408 | <publisher>Banjoe</publisher> |
| 1409 | |
| 1410 | <part name="flop1" interface="floppy_5_25"> |
| 1411 | <dataarea name="flop" size="368640"> |
| 1412 | <rom name="citycruiser.dsk" size="368640" crc="b8775557" sha1="bdb8aeb07d56ff756669f78addf9153b1b525119" offset="0" /> |
| 1413 | </dataarea> |
| 1414 | </part> |
| 1415 | </software> |
| 1416 | |
| 1417 | <software name="clement"> |
| 1418 | <description>Clementina a boszorkány</description> |
| 1419 | <year>198?</year> |
| 1420 | <publisher>Zoltán Nagy - Zsolt Magyar</publisher> |
| 1421 | |
| 1422 | <part name="flop1" interface="floppy_5_25"> |
| 1423 | <dataarea name="flop" size="368640"> |
| 1424 | <rom name="clementina.dsk" size="368640" crc="4a98c979" sha1="b4738426e3227e6103170f9295a22a179e50f81c" offset="0" /> |
| 1425 | </dataarea> |
| 1426 | </part> |
| 1427 | </software> |
| 1428 | |
| 1429 | <software name="cobra"> |
| 1430 | <description>Cobra</description> |
| 1431 | <year>198?</year> |
| 1432 | <publisher>C.S. Software</publisher> |
| 1433 | |
| 1434 | <part name="flop1" interface="floppy_5_25"> |
| 1435 | <dataarea name="flop" size="368640"> |
| 1436 | <rom name="cobra.dsk" size="368640" crc="374cdb58" sha1="374f7dd57b41d8c28fa72790010f536b6ec01d06" offset="0" /> |
| 1437 | </dataarea> |
| 1438 | </part> |
| 1439 | </software> |
| 1440 | |
| 1441 | <software name="cobyvada"> |
| 1442 | <description>Coby-Vadász</description> |
| 1443 | <year>198?</year> |
| 1444 | <publisher><unknown></publisher> |
| 1445 | |
| 1446 | <part name="flop1" interface="floppy_5_25"> |
| 1447 | <dataarea name="flop" size="368640"> |
| 1448 | <rom name="cobyvada.dsk" size="368640" crc="736b98a2" sha1="7819d6d8e50e030f70ef7a04b9e40755a91c2a27" offset="0" /> |
| 1449 | </dataarea> |
| 1450 | </part> |
| 1451 | </software> |
| 1452 | |
| 1453 | <software name="cocademo"> |
| 1454 | <description>Coca Cola Demo</description> |
| 1455 | <year>198?</year> |
| 1456 | <publisher><unknown></publisher> |
| 1457 | |
| 1458 | <part name="flop1" interface="floppy_5_25"> |
| 1459 | <dataarea name="flop" size="368640"> |
| 1460 | <rom name="cocademo.dsk" size="368640" crc="348c1d2e" sha1="33f80f3eec0785a6d7f71283358f374b16f0067c" offset="0" /> |
| 1461 | </dataarea> |
| 1462 | </part> |
| 1463 | </software> |
| 1464 | |
| 1465 | <software name="codas64"> |
| 1466 | <description>Codas 64</description> |
| 1467 | <year>198?</year> |
| 1468 | <publisher><unknown></publisher> |
| 1469 | |
| 1470 | <part name="flop1" interface="floppy_5_25"> |
| 1471 | <dataarea name="flop" size="368640"> |
| 1472 | <rom name="codas64.dsk" size="368640" crc="854839bd" sha1="e8800d172fc5e0f3568c84d0ed045e7e8f5c8e45" offset="0" /> |
| 1473 | </dataarea> |
| 1474 | </part> |
| 1475 | </software> |
| 1476 | |
| 1477 | <software name="cogan"> |
| 1478 | <description>Cogan</description> |
| 1479 | <year>198?</year> |
| 1480 | <publisher>László Bagi - SonySoft</publisher> |
| 1481 | |
| 1482 | <part name="flop1" interface="floppy_5_25"> |
| 1483 | <dataarea name="flop" size="368640"> |
| 1484 | <rom name="cogan.dsk" size="368640" crc="62ea9d26" sha1="d648b4d8090095d0407aecbbcb35e6f7ed901efb" offset="0" /> |
| 1485 | </dataarea> |
| 1486 | </part> |
| 1487 | </software> |
| 1488 | |
| 1489 | <software name="color16"> |
| 1490 | <description>Color-16 színes karakterkészítő</description> |
| 1491 | <year>198?</year> |
| 1492 | <publisher><unknown></publisher> |
| 1493 | |
| 1494 | <part name="flop1" interface="floppy_5_25"> |
| 1495 | <dataarea name="flop" size="368640"> |
| 1496 | <rom name="color-16.dsk" size="368640" crc="dc20bad8" sha1="cbf8dcb07a348c2da2832880616813a02ca15b44" offset="0" /> |
| 1497 | </dataarea> |
| 1498 | </part> |
| 1499 | </software> |
| 1500 | |
| 1501 | <software name="coloris"> |
| 1502 | <description>Coloris</description> |
| 1503 | <year>198?</year> |
| 1504 | <publisher>Béla Csatlós</publisher> |
| 1505 | |
| 1506 | <part name="flop1" interface="floppy_5_25"> |
| 1507 | <dataarea name="flop" size="368640"> |
| 1508 | <rom name="coloris.dsk" size="368640" crc="bc111816" sha1="4e68909f80b070b24e9e7cf2a1bae9fe87d5e8c3" offset="0" /> |
| 1509 | </dataarea> |
| 1510 | </part> |
| 1511 | </software> |
| 1512 | |
| 1513 | <software name="colorisa" cloneof="coloris"> |
| 1514 | <description>Coloris (Alt)</description> |
| 1515 | <year>198?</year> |
| 1516 | <publisher>Béla Csatlós</publisher> |
| 1517 | |
| 1518 | <part name="flop1" interface="floppy_5_25"> |
| 1519 | <dataarea name="flop" size="368640"> |
| 1520 | <rom name="colorisv2.dsk" size="368640" crc="87e0b744" sha1="f721dca8c6665e3574c50f56dd213182627b1e17" offset="0" /> |
| 1521 | </dataarea> |
| 1522 | </part> |
| 1523 | </software> |
| 1524 | |
| 1525 | <software name="colormag"> |
| 1526 | <description>Colormagic - Színbűvölő</description> |
| 1527 | <year>1987</year> |
| 1528 | <publisher><unknown></publisher> |
| 1529 | |
| 1530 | <part name="flop1" interface="floppy_5_25"> |
| 1531 | <dataarea name="flop" size="368640"> |
| 1532 | <rom name="colormagic.dsk" size="368640" crc="21bcb2aa" sha1="542073b04212f9e831b68c467a9ae1c058241eee" offset="0" /> |
| 1533 | </dataarea> |
| 1534 | </part> |
| 1535 | </software> |
| 1536 | |
| 1537 | <software name="coltris"> |
| 1538 | <description>Coltris</description> |
| 1539 | <year>1993</year> |
| 1540 | <publisher>Gati Software</publisher> |
| 1541 | |
| 1542 | <part name="flop1" interface="floppy_5_25"> |
| 1543 | <dataarea name="flop" size="368640"> |
| 1544 | <rom name="coltris.dsk" size="368640" crc="adb76c06" sha1="194b8eb22532d5cf676184aacf9def998c4e9597" offset="0" /> |
| 1545 | </dataarea> |
| 1546 | </part> |
| 1547 | </software> |
| 1548 | |
| 1549 | <software name="commando"> |
| 1550 | <description>Commando</description> |
| 1551 | <year>1989</year> |
| 1552 | <publisher>Berysoft</publisher> |
| 1553 | |
| 1554 | <part name="flop1" interface="floppy_5_25"> |
| 1555 | <dataarea name="flop" size="368640"> |
| 1556 | <rom name="commando.dsk" size="368640" crc="cf079b80" sha1="125112a57f30c0f5afab99b5f58b16fa6814e2e8" offset="0" /> |
| 1557 | </dataarea> |
| 1558 | </part> |
| 1559 | </software> |
| 1560 | |
| 1561 | <software name="commandoa" cloneof="commando"> |
| 1562 | <description>Commando (Alt)</description> |
| 1563 | <year>1989</year> |
| 1564 | <publisher>Berysoft</publisher> |
| 1565 | |
| 1566 | <part name="flop1" interface="floppy_5_25"> |
| 1567 | <dataarea name="flop" size="368640"> |
| 1568 | <rom name="commanv2.dsk" size="368640" crc="bde0de7f" sha1="71b9ee3afeaa33d2c2e10790d145ca37820344af" offset="0" /> |
| 1569 | </dataarea> |
| 1570 | </part> |
| 1571 | </software> |
| 1572 | |
| 1573 | <software name="cmdo_sil"> |
| 1574 | <description>Commando (SIL)</description> |
| 1575 | <year>1987</year> |
| 1576 | <publisher>Software in LUX</publisher> |
| 1577 | |
| 1578 | <part name="flop1" interface="floppy_5_25"> |
| 1579 | <dataarea name="flop" size="368640"> |
| 1580 | <rom name="commando1.dsk" size="368640" crc="98ca35f9" sha1="66d126f761c581e7c7645cc6ae5b824ad38db654" offset="0" /> |
| 1581 | </dataarea> |
| 1582 | </part> |
| 1583 | </software> |
| 1584 | |
| 1585 | <software name="compwrld"> |
| 1586 | <description>ComputerWorld</description> |
| 1587 | <year>1991</year> |
| 1588 | <publisher>TVCM</publisher> |
| 1589 | |
| 1590 | <part name="flop1" interface="floppy_5_25"> |
| 1591 | <dataarea name="flop" size="368640"> |
| 1592 | <rom name="computerworld.dsk" size="368640" crc="2e07bd81" sha1="1c743c9944006a0371c58ca2d5d5905040c56834" offset="0" /> |
| 1593 | </dataarea> |
| 1594 | </part> |
| 1595 | </software> |
| 1596 | |
| 1597 | <software name="cosinus"> |
| 1598 | <description>Cosinus</description> |
| 1599 | <year>1985</year> |
| 1600 | <publisher>HLV</publisher> |
| 1601 | |
| 1602 | <part name="flop1" interface="floppy_5_25"> |
| 1603 | <dataarea name="flop" size="368640"> |
| 1604 | <rom name="cosinus.dsk" size="368640" crc="b4fe3700" sha1="83442e640ae1ccb62d013528cd422cde151dc225" offset="0" /> |
| 1605 | </dataarea> |
| 1606 | </part> |
| 1607 | </software> |
| 1608 | |
| 1609 | <software name="cowboy"> |
| 1610 | <description>Cowboy</description> |
| 1611 | <year>1987</year> |
| 1612 | <publisher><unknown></publisher> |
| 1613 | |
| 1614 | <part name="flop1" interface="floppy_5_25"> |
| 1615 | <dataarea name="flop" size="368640"> |
| 1616 | <rom name="cowboy.dsk" size="368640" crc="7530a04a" sha1="e358dfcc19f32f2b0c653cc6b344c445387ddefb" offset="0" /> |
| 1617 | </dataarea> |
| 1618 | </part> |
| 1619 | </software> |
| 1620 | |
| 1621 | <software name="cracked"> |
| 1622 | <description>Crack Ed</description> |
| 1623 | <year>198?</year> |
| 1624 | <publisher><unknown></publisher> |
| 1625 | |
| 1626 | <part name="flop1" interface="floppy_5_25"> |
| 1627 | <dataarea name="flop" size="368640"> |
| 1628 | <rom name="craked.dsk" size="368640" crc="f97e55ec" sha1="844f2f8aeefb450fc506d5093ec8923a42aebc7b" offset="0" /> |
| 1629 | </dataarea> |
| 1630 | </part> |
| 1631 | </software> |
| 1632 | |
| 1633 | <software name="kangaroo"> |
| 1634 | <description>Crazy Kangaroo</description> |
| 1635 | <year>1986</year> |
| 1636 | <publisher>Videoton</publisher> |
| 1637 | |
| 1638 | <part name="flop1" interface="floppy_5_25"> |
| 1639 | <dataarea name="flop" size="368640"> |
| 1640 | <rom name="crazykangaroo.dsk" size="368640" crc="87b01f60" sha1="a29d8ee0d3079e6438423c2464423c2005b98818" offset="0" /> |
| 1641 | </dataarea> |
| 1642 | </part> |
| 1643 | </software> |
| 1644 | |
| 1645 | <software name="kangarooa" cloneof="kangaroo"> |
| 1646 | <description>Crazy Kangaroo (Alt)</description> |
| 1647 | <year>1986</year> |
| 1648 | <publisher>Videoton</publisher> |
| 1649 | |
| 1650 | <part name="flop1" interface="floppy_5_25"> |
| 1651 | <dataarea name="flop" size="368640"> |
| 1652 | <rom name="crazy_kangaroov2.dsk" size="368640" crc="966c6173" sha1="4dd7609826999fb974738452c823482729785787" offset="0" /> |
| 1653 | </dataarea> |
| 1654 | </part> |
| 1655 | </software> |
| 1656 | |
| 1657 | <software name="kangaroob" cloneof="kangaroo"> |
| 1658 | <description>Crazy Kangaroo (Alt 2)</description> |
| 1659 | <year>1986</year> |
| 1660 | <publisher>Videoton</publisher> |
| 1661 | |
| 1662 | <part name="flop1" interface="floppy_5_25"> |
| 1663 | <dataarea name="flop" size="368640"> |
| 1664 | <rom name="crazy_kangaroov3.dsk" size="368640" crc="28f80f65" sha1="10b5f49829028eb963dc1e6032b11eb3d8e30175" offset="0" /> |
| 1665 | </dataarea> |
| 1666 | </part> |
| 1667 | </software> |
| 1668 | |
| 1669 | <software name="kangaroocr" cloneof="kangaroo"> |
| 1670 | <description>Crazy Kangaroo (Cracked)</description> |
| 1671 | <year>1986</year> |
| 1672 | <publisher>Videoton</publisher> |
| 1673 | |
| 1674 | <part name="flop1" interface="floppy_5_25"> |
| 1675 | <dataarea name="flop" size="368640"> |
| 1676 | <rom name="crazycr.dsk" size="368640" crc="1978c0a0" sha1="5e668549bea5c316d7594ad367bc39d2a2112cc7" offset="0" /> |
| 1677 | </dataarea> |
| 1678 | </part> |
| 1679 | </software> |
| 1680 | |
| 1681 | <software name="kangaroot" cloneof="kangaroo"> |
| 1682 | <description>Crazy Kangaroo (Trainer)</description> |
| 1683 | <year>1986</year> |
| 1684 | <publisher>Videoton</publisher> |
| 1685 | |
| 1686 | <part name="flop1" interface="floppy_5_25"> |
| 1687 | <dataarea name="flop" size="368640"> |
| 1688 | <rom name="crazykangarootrainer.dsk" size="368640" crc="f6adbe76" sha1="4469b6b1ba597869099bb45b7a9b82c16f73f396" offset="0" /> |
| 1689 | </dataarea> |
| 1690 | </part> |
| 1691 | </software> |
| 1692 | |
| 1693 | <software name="csapda"> |
| 1694 | <description>Csapda</description> |
| 1695 | <year>198?</year> |
| 1696 | <publisher><unknown></publisher> |
| 1697 | |
| 1698 | <part name="flop1" interface="floppy_5_25"> |
| 1699 | <dataarea name="flop" size="368640"> |
| 1700 | <rom name="csapda.dsk" size="368640" crc="27d587a6" sha1="431718a37e4446d95c1a7c77ef13cad86063760d" offset="0" /> |
| 1701 | </dataarea> |
| 1702 | </part> |
| 1703 | </software> |
| 1704 | |
| 1705 | <software name="csavarga"> |
| 1706 | <description>Csavargás a gombák birodalmában</description> |
| 1707 | <year>1988</year> |
| 1708 | <publisher>Green Soft</publisher> |
| 1709 | |
| 1710 | <part name="flop1" interface="floppy_5_25"> |
| 1711 | <dataarea name="flop" size="368640"> |
| 1712 | <rom name="csavargas.dsk" size="368640" crc="7d787cd7" sha1="959692eeb7abdcac93df2f5ccf13459a42f904fd" offset="0" /> |
| 1713 | </dataarea> |
| 1714 | </part> |
| 1715 | </software> |
| 1716 | |
| 1717 | <software name="csavargaa" cloneof="csavarga"> |
| 1718 | <description>Csavargás a gombák birodalmában (Alt)</description> |
| 1719 | <year>1988</year> |
| 1720 | <publisher>Green Soft</publisher> |
| 1721 | |
| 1722 | <part name="flop1" interface="floppy_5_25"> |
| 1723 | <dataarea name="flop" size="368640"> |
| 1724 | <rom name="csavargasv2.dsk" size="368640" crc="c9d27650" sha1="3c0673b6a73e29c3724cf523136b9bb4362b1a9d" offset="0" /> |
| 1725 | </dataarea> |
| 1726 | </part> |
| 1727 | </software> |
| 1728 | |
| 1729 | <software name="csonak"> |
| 1730 | <description>Csónak a folyón</description> |
| 1731 | <year>198?</year> |
| 1732 | <publisher>K&K Soft</publisher> |
| 1733 | |
| 1734 | <part name="flop1" interface="floppy_5_25"> |
| 1735 | <dataarea name="flop" size="368640"> |
| 1736 | <rom name="csonak.dsk" size="368640" crc="ec8578ac" sha1="8f981e385ace159d26ff67da5e9c46cf113e036c" offset="0" /> |
| 1737 | </dataarea> |
| 1738 | </part> |
| 1739 | </software> |
| 1740 | |
| 1741 | <software name="csovesek"> |
| 1742 | <description>Csövesek</description> |
| 1743 | <year>198?</year> |
| 1744 | <publisher><unknown></publisher> |
| 1745 | |
| 1746 | <part name="flop1" interface="floppy_5_25"> |
| 1747 | <dataarea name="flop" size="368640"> |
| 1748 | <rom name="csovesek.dsk" size="368640" crc="f3d8104a" sha1="50bd0a115f841fc52c60f2dfafa2d21df0491dff" offset="0" /> |
| 1749 | </dataarea> |
| 1750 | </part> |
| 1751 | </software> |
| 1752 | |
| 1753 | <software name="csrobot"> |
| 1754 | <description>C.S. Robot</description> |
| 1755 | <year>198?</year> |
| 1756 | <publisher>C.S. Software</publisher> |
| 1757 | |
| 1758 | <part name="flop1" interface="floppy_5_25"> |
| 1759 | <dataarea name="flop" size="368640"> |
| 1760 | <rom name="csrobot.dsk" size="368640" crc="512c83e3" sha1="5447255f8b2be9a48fd73cdea77b2410a88e8b62" offset="0" /> |
| 1761 | </dataarea> |
| 1762 | </part> |
| 1763 | </software> |
| 1764 | |
| 1765 | <software name="cyrus2"> |
| 1766 | <description>Cyrus 2</description> |
| 1767 | <year>1985</year> |
| 1768 | <publisher>Intelligent Chess Software</publisher> |
| 1769 | |
| 1770 | <part name="flop1" interface="floppy_5_25"> |
| 1771 | <dataarea name="flop" size="368640"> |
| 1772 | <rom name="cyrus2.dsk" size="368640" crc="1c014ee8" sha1="4089bbc6234bb0887aee6ac7710604452f2d7560" offset="0" /> |
| 1773 | </dataarea> |
| 1774 | </part> |
| 1775 | </software> |
| 1776 | |
| 1777 | <software name="cyrus2en" cloneof="cyrus2"> |
| 1778 | <description>Cyrus 2 (English)</description> |
| 1779 | <year>1985</year> |
| 1780 | <publisher>Intelligent Chess Software</publisher> |
| 1781 | |
| 1782 | <part name="flop1" interface="floppy_5_25"> |
| 1783 | <dataarea name="flop" size="368640"> |
| 1784 | <rom name="cyrus2 (english) (v1).dsk" size="368640" crc="bebb0b50" sha1="c3b5450b62b77f84285c5bc3e6a51e0e8ffd0eda" offset="0" /> |
| 1785 | </dataarea> |
| 1786 | </part> |
| 1787 | </software> |
| 1788 | |
| 1789 | <software name="cyrus2ena" cloneof="cyrus2"> |
| 1790 | <description>Cyrus 2 (English, Alt)</description> |
| 1791 | <year>1985</year> |
| 1792 | <publisher>Intelligent Chess Software</publisher> |
| 1793 | |
| 1794 | <part name="flop1" interface="floppy_5_25"> |
| 1795 | <dataarea name="flop" size="368640"> |
| 1796 | <rom name="cyrus2 (english) (alt).dsk" size="368640" crc="67bc6481" sha1="06be720c39821aed0e76d21575352051c8eba960" offset="0" /> |
| 1797 | </dataarea> |
| 1798 | </part> |
| 1799 | </software> |
| 1800 | |
| 1801 | <software name="dama"> |
| 1802 | <description>Dáma</description> |
| 1803 | <year>198?</year> |
| 1804 | <publisher><unknown></publisher> |
| 1805 | |
| 1806 | <part name="flop1" interface="floppy_5_25"> |
| 1807 | <dataarea name="flop" size="368640"> |
| 1808 | <rom name="dama.dsk" size="368640" crc="dbf17698" sha1="b5c089fe54c921cde6000d67273a9e077b83671e" offset="0" /> |
| 1809 | </dataarea> |
| 1810 | </part> |
| 1811 | </software> |
| 1812 | |
| 1813 | <software name="damaa" cloneof="dama"> |
| 1814 | <description>Dáma (Alt)</description> |
| 1815 | <year>198?</year> |
| 1816 | <publisher><unknown></publisher> |
| 1817 | |
| 1818 | <part name="flop1" interface="floppy_5_25"> |
| 1819 | <dataarea name="flop" size="368640"> |
| 1820 | <rom name="damav2.dsk" size="368640" crc="7391f7b3" sha1="0bd593378e5d294b1bee7c49ac70be2b9ecab484" offset="0" /> |
| 1821 | </dataarea> |
| 1822 | </part> |
| 1823 | </software> |
| 1824 | |
| 1825 | <software name="dama1"> |
| 1826 | <description>Dáma (Different)</description> |
| 1827 | <year>198?</year> |
| 1828 | <publisher><unknown></publisher> |
| 1829 | |
| 1830 | <part name="flop1" interface="floppy_5_25"> |
| 1831 | <dataarea name="flop" size="368640"> |
| 1832 | <rom name="dama_.dsk" size="368640" crc="39753ded" sha1="43a28c69082cfe8f030774b56eda116b502bc015" offset="0" /> |
| 1833 | </dataarea> |
| 1834 | </part> |
| 1835 | </software> |
| 1836 | |
| 1837 | <software name="darkside"> |
| 1838 | <description>Dark Side</description> |
| 1839 | <year>198?</year> |
| 1840 | <publisher>STV</publisher> |
| 1841 | |
| 1842 | <part name="flop1" interface="floppy_5_25"> |
| 1843 | <dataarea name="flop" size="368640"> |
| 1844 | <rom name="darkside.dsk" size="368640" crc="68a551db" sha1="03f0df24ac234d02351c1e587111bf63d23a8121" offset="0" /> |
| 1845 | </dataarea> |
| 1846 | </part> |
| 1847 | </software> |
| 1848 | |
| 1849 | <software name="datakesz"> |
| 1850 | <description>Data sor készítő</description> |
| 1851 | <year>198?</year> |
| 1852 | <publisher><unknown></publisher> |
| 1853 | |
| 1854 | <part name="flop1" interface="floppy_5_25"> |
| 1855 | <dataarea name="flop" size="368640"> |
| 1856 | <rom name="datakesz.dsk" size="368640" crc="2e0de17c" sha1="b9523d9c13c509aee4eeff44e74ad145b0052f60" offset="0" /> |
| 1857 | </dataarea> |
| 1858 | </part> |
| 1859 | </software> |
| 1860 | |
| 1861 | <software name="tvcdcopy"> |
| 1862 | <description>TVC Disk Copy 1.0</description> |
| 1863 | <year>198?</year> |
| 1864 | <publisher><unknown></publisher> |
| 1865 | |
| 1866 | <part name="flop1" interface="floppy_5_25"> |
| 1867 | <dataarea name="flop" size="368640"> |
| 1868 | <rom name="dcopy10.dsk" size="368640" crc="1e5c882e" sha1="48978a68ad343bdf4d5091adc93b8b2154a8a10e" offset="0" /> |
| 1869 | </dataarea> |
| 1870 | </part> |
| 1871 | </software> |
| 1872 | |
| 1873 | <software name="ddtleir"> |
| 1874 | <description>Mini DDT - Leiras</description> |
| 1875 | <year>198?</year> |
| 1876 | <publisher>Gaba Software</publisher> |
| 1877 | |
| 1878 | <part name="flop1" interface="floppy_5_25"> |
| 1879 | <dataarea name="flop" size="368640"> |
| 1880 | <rom name="ddtleir.dsk" size="368640" crc="5f76a558" sha1="37256cd9e77a3add9ca79ef7eabaea551f6f531f" offset="0" /> |
| 1881 | </dataarea> |
| 1882 | </part> |
| 1883 | </software> |
| 1884 | |
| 1885 | <software name="debugger"> |
| 1886 | <description>Debugger</description> |
| 1887 | <year>198?</year> |
| 1888 | <publisher><unknown></publisher> |
| 1889 | |
| 1890 | <part name="flop1" interface="floppy_5_25"> |
| 1891 | <dataarea name="flop" size="368640"> |
| 1892 | <rom name="debugger.dsk" size="368640" crc="baf3ceea" sha1="ec5cf3b194be77736ff3a2c69efff6956bc305f7" offset="0" /> |
| 1893 | </dataarea> |
| 1894 | </part> |
| 1895 | </software> |
| 1896 | |
| 1897 | <software name="deflekt"> |
| 1898 | <description>Deflektor</description> |
| 1899 | <year>1987</year> |
| 1900 | <publisher>STV</publisher> |
| 1901 | |
| 1902 | <part name="flop1" interface="floppy_5_25"> |
| 1903 | <dataarea name="flop" size="368640"> |
| 1904 | <rom name="deflektor.dsk" size="368640" crc="fb75b1cd" sha1="97cb3c86abe932fc5075c22f4d6933ac6b3311d9" offset="0" /> |
| 1905 | </dataarea> |
| 1906 | </part> |
| 1907 | </software> |
| 1908 | |
| 1909 | <software name="demokaz1"> |
| 1910 | <description>Demo Kazetta 01 - Bevezetés</description> |
| 1911 | <year>198?</year> |
| 1912 | <publisher>Videoton</publisher> |
| 1913 | |
| 1914 | <part name="flop1" interface="floppy_5_25"> |
| 1915 | <dataarea name="flop" size="368640"> |
| 1916 | <rom name="demo01-bevezetes.dsk" size="368640" crc="11929d4d" sha1="261e8efbe95e1e736adc6c9ca4d3e687db7933c5" offset="0" /> |
| 1917 | </dataarea> |
| 1918 | </part> |
| 1919 | </software> |
| 1920 | |
| 1921 | <software name="demokaz2"> |
| 1922 | <description>Demo Kazetta 02 - Tili-Toli</description> |
| 1923 | <year>198?</year> |
| 1924 | <publisher>Videoton</publisher> |
| 1925 | |
| 1926 | <part name="flop1" interface="floppy_5_25"> |
| 1927 | <dataarea name="flop" size="368640"> |
| 1928 | <rom name="demo02-tili-toli.dsk" size="368640" crc="89f9202c" sha1="9296d48fc176fb7842522b41bc8dd1f94081de49" offset="0" /> |
| 1929 | </dataarea> |
| 1930 | </part> |
| 1931 | </software> |
| 1932 | |
| 1933 | <software name="demokaz3"> |
| 1934 | <description>Demo Kazetta 03 - Rajzoló</description> |
| 1935 | <year>198?</year> |
| 1936 | <publisher>Videoton</publisher> |
| 1937 | |
| 1938 | <part name="flop1" interface="floppy_5_25"> |
| 1939 | <dataarea name="flop" size="368640"> |
| 1940 | <rom name="demo03-rajzolo.dsk" size="368640" crc="eef8a8cb" sha1="212a8540951c0fcf2d50db59e05efaa063d50415" offset="0" /> |
| 1941 | </dataarea> |
| 1942 | </part> |
| 1943 | </software> |
| 1944 | |
| 1945 | <software name="demokaz4"> |
| 1946 | <description>Demo Kazetta 04 - Zene</description> |
| 1947 | <year>198?</year> |
| 1948 | <publisher>Videoton</publisher> |
| 1949 | |
| 1950 | <part name="flop1" interface="floppy_5_25"> |
| 1951 | <dataarea name="flop" size="368640"> |
| 1952 | <rom name="demo04-zene.dsk" size="368640" crc="e587ad50" sha1="7a55339d9cc31e0114d75f6c7a5958127a32837b" offset="0" /> |
| 1953 | </dataarea> |
| 1954 | </part> |
| 1955 | </software> |
| 1956 | |
| 1957 | <software name="demokaz5"> |
| 1958 | <description>Demo Kazetta 05 - Betűkészítő, Bombázó</description> |
| 1959 | <year>198?</year> |
| 1960 | <publisher>Videoton</publisher> |
| 1961 | |
| 1962 | <part name="flop1" interface="floppy_5_25"> |
| 1963 | <dataarea name="flop" size="368640"> |
| 1964 | <rom name="demo05-betukeszito.dsk" size="368640" crc="36302c7d" sha1="703a4159bea1447e06b6703e01493fb8447577fd" offset="0" /> |
| 1965 | </dataarea> |
| 1966 | </part> |
| 1967 | </software> |
| 1968 | |
| 1969 | <software name="demokaz5a" cloneof="demokaz5"> |
| 1970 | <description>Demo Kazetta 05 - Betűkészítő, Bombázó (Alt)</description> |
| 1971 | <year>198?</year> |
| 1972 | <publisher><unknown></publisher> |
| 1973 | |
| 1974 | <part name="flop1" interface="floppy_5_25"> |
| 1975 | <dataarea name="flop" size="368640"> |
| 1976 | <rom name="demo5v2.dsk" size="368640" crc="d989cb86" sha1="f95292afee1f647d667d254e16ba073e3a4541c1" offset="0" /> |
| 1977 | </dataarea> |
| 1978 | </part> |
| 1979 | </software> |
| 1980 | |
| 1981 | <software name="demodisk"> |
| 1982 | <description>Demo Kazetta/Lemez 01-06</description> |
| 1983 | <year>2007</year> |
| 1984 | <publisher>Viktor Varga</publisher> |
| 1985 | |
| 1986 | <part name="flop1" interface="floppy_5_25"> |
| 1987 | <dataarea name="flop" size="368640"> |
| 1988 | <rom name="demodisk.dsk" size="368640" crc="7e6a6093" sha1="5482e34dd5fa60bd0297465acade927cf3b3091b" offset="0" /> |
| 1989 | </dataarea> |
| 1990 | </part> |
| 1991 | </software> |
| 1992 | |
| 1993 | <software name="demo01"> |
| 1994 | <description>DG Kép 1</description> |
| 1995 | <year>1991</year> |
| 1996 | <publisher>GATO Bt.</publisher> |
| 1997 | |
| 1998 | <part name="flop1" interface="floppy_5_25"> |
| 1999 | <dataarea name="flop" size="737280"> |
| 2000 | <rom name="demo01.dsk" size="737280" crc="ddef02de" sha1="4b3f309a807b09df0c1c30d8120f3db5e80897bd" offset="0" /> |
| 2001 | </dataarea> |
| 2002 | </part> |
| 2003 | </software> |
| 2004 | |
| 2005 | <software name="demo02"> |
| 2006 | <description>DG Kép 2</description> |
| 2007 | <year>1991</year> |
| 2008 | <publisher>GATO Bt.</publisher> |
| 2009 | |
| 2010 | <part name="flop1" interface="floppy_5_25"> |
| 2011 | <dataarea name="flop" size="737280"> |
| 2012 | <rom name="demo02.dsk" size="737280" crc="e44e1b47" sha1="dca4a194d124ac6cc319c3be336b4a29816f1507" offset="0" /> |
| 2013 | </dataarea> |
| 2014 | </part> |
| 2015 | </software> |
| 2016 | |
| 2017 | <software name="demo03"> |
| 2018 | <description>DG Kép 3</description> |
| 2019 | <year>1993</year> |
| 2020 | <publisher>GATO Bt.</publisher> |
| 2021 | |
| 2022 | <part name="flop1" interface="floppy_5_25"> |
| 2023 | <dataarea name="flop" size="737280"> |
| 2024 | <rom name="demo03.dsk" size="737280" crc="21afe287" sha1="b2b732e08085bf1d037a09d52228e9acbd1f869a" offset="0" /> |
| 2025 | </dataarea> |
| 2026 | </part> |
| 2027 | </software> |
| 2028 | |
| 2029 | <software name="diffuzio"> |
| 2030 | <description>Diffúzió</description> |
| 2031 | <year>198?</year> |
| 2032 | <publisher><unknown></publisher> |
| 2033 | |
| 2034 | <part name="flop1" interface="floppy_5_25"> |
| 2035 | <dataarea name="flop" size="368640"> |
| 2036 | <rom name="diffuzio.dsk" size="368640" crc="a18f752f" sha1="7c5d7534aad55c887a957f5a0b890106ad23b408" offset="0" /> |
| 2037 | </dataarea> |
| 2038 | </part> |
| 2039 | </software> |
| 2040 | |
| 2041 | <software name="digipok"> |
| 2042 | <description>Digipók</description> |
| 2043 | <year>1987</year> |
| 2044 | <publisher>Bit & Guy</publisher> |
| 2045 | |
| 2046 | <part name="flop1" interface="floppy_5_25"> |
| 2047 | <dataarea name="flop" size="368640"> |
| 2048 | <rom name="digipok.dsk" size="368640" crc="ec32b239" sha1="f771adcf30c61b6925f71fb0d5ea1c582c5bb293" offset="0" /> |
| 2049 | </dataarea> |
| 2050 | </part> |
| 2051 | </software> |
| 2052 | |
| 2053 | <software name="digipoka" cloneof="digipok"> |
| 2054 | <description>Digipók (Alt)</description> |
| 2055 | <year>1987</year> |
| 2056 | <publisher>Bit & Guy</publisher> |
| 2057 | |
| 2058 | <part name="flop1" interface="floppy_5_25"> |
| 2059 | <dataarea name="flop" size="368640"> |
| 2060 | <rom name="digipokv2.dsk" size="368640" crc="687acfa9" sha1="655081f53c19514e4b526da688313be1f9536d92" offset="0" /> |
| 2061 | </dataarea> |
| 2062 | </part> |
| 2063 | </software> |
| 2064 | |
| 2065 | <software name="dinosaur"> |
| 2066 | <description>Dinosaurus</description> |
| 2067 | <year>198?</year> |
| 2068 | <publisher>Buddha Softhouse</publisher> |
| 2069 | |
| 2070 | <part name="flop1" interface="floppy_5_25"> |
| 2071 | <dataarea name="flop" size="368640"> |
| 2072 | <rom name="dinosaur.dsk" size="368640" crc="07d48ddf" sha1="2bda1d8a02cede85a8c5872a12c4e40180dc5c24" offset="0" /> |
| 2073 | </dataarea> |
| 2074 | </part> |
| 2075 | </software> |
| 2076 | |
| 2077 | <software name="discmond"> |
| 2078 | <description>Disc Monitor v2.00 Demo</description> |
| 2079 | <year>1990</year> |
| 2080 | <publisher>GATO Bt.</publisher> |
| 2081 | |
| 2082 | <part name="flop1" interface="floppy_5_25"> |
| 2083 | <dataarea name="flop" size="368640"> |
| 2084 | <rom name="discmond.dsk" size="368640" crc="63d1aa96" sha1="2e62c18b60b2ab185dd34f6d1ad4e192f595bad6" offset="0" /> |
| 2085 | </dataarea> |
| 2086 | </part> |
| 2087 | </software> |
| 2088 | |
| 2089 | <software name="dobgep"> |
| 2090 | <description>Dobgép</description> |
| 2091 | <year>198?</year> |
| 2092 | <publisher>STV</publisher> |
| 2093 | |
| 2094 | <part name="flop1" interface="floppy_5_25"> |
| 2095 | <dataarea name="flop" size="368640"> |
| 2096 | <rom name="dobgep.dsk" size="368640" crc="c3d5b82f" sha1="3b378d827de7418b8f869f4553fa188950076a62" offset="0" /> |
| 2097 | </dataarea> |
| 2098 | </part> |
| 2099 | </software> |
| 2100 | |
| 2101 | <software name="dobprg"> |
| 2102 | <description>Dobprogram</description> |
| 2103 | <year>1989</year> |
| 2104 | <publisher>Cápasoft</publisher> |
| 2105 | |
| 2106 | <part name="flop1" interface="floppy_5_25"> |
| 2107 | <dataarea name="flop" size="368640"> |
| 2108 | <rom name="dobprg.dsk" size="368640" crc="fb966ef0" sha1="ff386b7ff076c0fe657db1d89f68ab7d6f0b0658" offset="0" /> |
| 2109 | </dataarea> |
| 2110 | </part> |
| 2111 | </software> |
| 2112 | |
| 2113 | <software name="domino"> |
| 2114 | <description>Dominó</description> |
| 2115 | <year>198?</year> |
| 2116 | <publisher>Agilar</publisher> |
| 2117 | |
| 2118 | <part name="flop1" interface="floppy_5_25"> |
| 2119 | <dataarea name="flop" size="368640"> |
| 2120 | <rom name="dominov1.dsk" size="368640" crc="79ac23a0" sha1="f5650a46ca215e0b1e9287e115ff61e9e3e4791b" offset="0" /> |
| 2121 | </dataarea> |
| 2122 | </part> |
| 2123 | </software> |
| 2124 | |
| 2125 | <software name="dominoa" cloneof="domino"> |
| 2126 | <description>Dominó (Alt)</description> |
| 2127 | <year>198?</year> |
| 2128 | <publisher>Agilar</publisher> |
| 2129 | |
| 2130 | <part name="flop1" interface="floppy_5_25"> |
| 2131 | <dataarea name="flop" size="368640"> |
| 2132 | <rom name="dominov2.dsk" size="368640" crc="6dd7f648" sha1="b9e7caf0b5df6c8e9a2bd8d5cddd510fa94f206c" offset="0" /> |
| 2133 | </dataarea> |
| 2134 | </part> |
| 2135 | </software> |
| 2136 | |
| 2137 | <software name="donald"> |
| 2138 | <description>Donald és Dézi</description> |
| 2139 | <year>1989</year> |
| 2140 | <publisher>Cápasoft</publisher> |
| 2141 | |
| 2142 | <part name="flop1" interface="floppy_5_25"> |
| 2143 | <dataarea name="flop" size="368640"> |
| 2144 | <rom name="donald.dsk" size="368640" crc="f171b15b" sha1="b03bed6b6b1f5e5335789a11f8d4213b6423156e" offset="0" /> |
| 2145 | </dataarea> |
| 2146 | </part> |
| 2147 | </software> |
| 2148 | |
| 2149 | <software name="dkong"> |
| 2150 | <description>Donkey Kong</description> |
| 2151 | <year>198?</year> |
| 2152 | <publisher>Béla Takács</publisher> |
| 2153 | |
| 2154 | <part name="flop1" interface="floppy_5_25"> |
| 2155 | <dataarea name="flop" size="368640"> |
| 2156 | <rom name="donkeykong.dsk" size="368640" crc="516c8a33" sha1="dc41a04790a5c58f9f234bcb0fccdd29c3104dbc" offset="0" /> |
| 2157 | </dataarea> |
| 2158 | </part> |
| 2159 | </software> |
| 2160 | |
| 2161 | <software name="dkonga" cloneof="dkong"> |
| 2162 | <description>Donkey Kong (Alt)</description> |
| 2163 | <year>198?</year> |
| 2164 | <publisher>Béla Takács</publisher> |
| 2165 | |
| 2166 | <part name="flop1" interface="floppy_5_25"> |
| 2167 | <dataarea name="flop" size="368640"> |
| 2168 | <rom name="donkeykongv2.dsk" size="368640" crc="63a80a00" sha1="1b51f483bb30ce780677c6c30e8a8d2dbc023d34" offset="0" /> |
| 2169 | </dataarea> |
| 2170 | </part> |
| 2171 | </software> |
| 2172 | |
| 2173 | <software name="drawer"> |
| 2174 | <description>Drawer</description> |
| 2175 | <year>198?</year> |
| 2176 | <publisher>Software in LUX</publisher> |
| 2177 | |
| 2178 | <part name="flop1" interface="floppy_5_25"> |
| 2179 | <dataarea name="flop" size="368640"> |
| 2180 | <rom name="drawer.dsk" size="368640" crc="6c1d80eb" sha1="e5952fa3c097e44188958040bbc1470b6c79bb17" offset="0" /> |
| 2181 | </dataarea> |
| 2182 | </part> |
| 2183 | </software> |
| 2184 | |
| 2185 | <software name="ediass"> |
| 2186 | <description>EdiAss</description> |
| 2187 | <year>198?</year> |
| 2188 | <publisher><unknown></publisher> |
| 2189 | |
| 2190 | <part name="flop1" interface="floppy_5_25"> |
| 2191 | <dataarea name="flop" size="368640"> |
| 2192 | <rom name="ediass.dsk" size="368640" crc="7803831d" sha1="cdc17aa7936ad1e375ff699d8c646f5cf335e01a" offset="0" /> |
| 2193 | </dataarea> |
| 2194 | </part> |
| 2195 | </software> |
| 2196 | |
| 2197 | <software name="effekt1"> |
| 2198 | <description>Effekt 1 - Hangeffekt</description> |
| 2199 | <year>198?</year> |
| 2200 | <publisher>Szeki</publisher> |
| 2201 | |
| 2202 | <part name="flop1" interface="floppy_5_25"> |
| 2203 | <dataarea name="flop" size="368640"> |
| 2204 | <rom name="effekt.dsk" size="368640" crc="5c8d12ce" sha1="8e60fea9d0029597ad3dd25cf9a047eaa2acb970" offset="0" /> |
| 2205 | </dataarea> |
| 2206 | </part> |
| 2207 | </software> |
| 2208 | |
| 2209 | <software name="effekt2"> |
| 2210 | <description>Effekt 2 - Raster Effektek</description> |
| 2211 | <year>198?</year> |
| 2212 | <publisher>Szeki</publisher> |
| 2213 | |
| 2214 | <part name="flop1" interface="floppy_5_25"> |
| 2215 | <dataarea name="flop" size="368640"> |
| 2216 | <rom name="effekt2.dsk" size="368640" crc="d85fc7c7" sha1="5d9d132d72c11275881e832081e77250a7042953" offset="0" /> |
| 2217 | </dataarea> |
| 2218 | </part> |
| 2219 | </software> |
| 2220 | |
| 2221 | <software name="egybeir1"> |
| 2222 | <description>Egybeirjam? Különírjam? 1</description> |
| 2223 | <year>1988</year> |
| 2224 | <publisher>Novotrade</publisher> |
| 2225 | |
| 2226 | <part name="flop1" interface="floppy_5_25"> |
| 2227 | <dataarea name="flop" size="368640"> |
| 2228 | <rom name="egybeirjam_kulonirjam_i.dsk" size="368640" crc="fdaf97b9" sha1="2926b62916a214946a5d052405bcb56c9a6cb739" offset="0" /> |
| 2229 | </dataarea> |
| 2230 | </part> |
| 2231 | </software> |
| 2232 | |
| 2233 | <software name="egybeir2"> |
| 2234 | <description>Egybeirjam? Különírjam? 2</description> |
| 2235 | <year>1988</year> |
| 2236 | <publisher>Novotrade</publisher> |
| 2237 | |
| 2238 | <part name="flop1" interface="floppy_5_25"> |
| 2239 | <dataarea name="flop" size="368640"> |
| 2240 | <rom name="egybeirjam_kulonirjam_ii.dsk" size="368640" crc="f7d41a0e" sha1="0db2d8285f765874a5736a6bf4d47123ce8fd606" offset="0" /> |
| 2241 | </dataarea> |
| 2242 | </part> |
| 2243 | </software> |
| 2244 | |
| 2245 | <software name="ejtoerny"> |
| 2246 | <description>Ejtőernyő</description> |
| 2247 | <year>198?</year> |
| 2248 | <publisher>Software in LUX</publisher> |
| 2249 | |
| 2250 | <part name="flop1" interface="floppy_5_25"> |
| 2251 | <dataarea name="flop" size="368640"> |
| 2252 | <rom name="ejtoernyo.dsk" size="368640" crc="c09dd1ad" sha1="e96e3df96f822166c8998df99cc011104f774dd5" offset="0" /> |
| 2253 | </dataarea> |
| 2254 | </part> |
| 2255 | </software> |
| 2256 | |
| 2257 | <software name="electman"> |
| 2258 | <description>Electric Man</description> |
| 2259 | <year>1987</year> |
| 2260 | <publisher>Béla Szalontai</publisher> |
| 2261 | |
| 2262 | <part name="flop1" interface="floppy_5_25"> |
| 2263 | <dataarea name="flop" size="368640"> |
| 2264 | <rom name="electricman.dsk" size="368640" crc="b7c12ff1" sha1="868decd65c4485fd33ddb2499f97818cd9323cd2" offset="0" /> |
| 2265 | </dataarea> |
| 2266 | </part> |
| 2267 | </software> |
| 2268 | |
| 2269 | <software name="eleccube"> |
| 2270 | <description>Electronics Cube</description> |
| 2271 | <year>1988</year> |
| 2272 | <publisher>VGy</publisher> |
| 2273 | |
| 2274 | <part name="flop1" interface="floppy_5_25"> |
| 2275 | <dataarea name="flop" size="368640"> |
| 2276 | <rom name="electronicscube.dsk" size="368640" crc="4b01fb2f" sha1="91dbae923da5cc825e57f92a104e6a0087fa9673" offset="0" /> |
| 2277 | </dataarea> |
| 2278 | </part> |
| 2279 | </software> |
| 2280 | |
| 2281 | <software name="eletjate"> |
| 2282 | <description>Életjáték</description> |
| 2283 | <year>198?</year> |
| 2284 | <publisher>Tekacs Bela</publisher> |
| 2285 | |
| 2286 | <part name="flop1" interface="floppy_5_25"> |
| 2287 | <dataarea name="flop" size="368640"> |
| 2288 | <rom name="eletjatek.dsk" size="368640" crc="633cead9" sha1="870c2efef910df058e06038b72d4af5c3aacc002" offset="0" /> |
| 2289 | </dataarea> |
| 2290 | </part> |
| 2291 | </software> |
| 2292 | |
| 2293 | <software name="eletkoro"> |
| 2294 | <description>Életkorod</description> |
| 2295 | <year>198?</year> |
| 2296 | <publisher><unknown></publisher> |
| 2297 | |
| 2298 | <part name="flop1" interface="floppy_5_25"> |
| 2299 | <dataarea name="flop" size="368640"> |
| 2300 | <rom name="eletkoro.dsk" size="368640" crc="155620dc" sha1="76b7e9f813d3d9adab4606644c38c2d3b2e76eca" offset="0" /> |
| 2301 | </dataarea> |
| 2302 | </part> |
| 2303 | </software> |
| 2304 | |
| 2305 | <software name="elite"> |
| 2306 | <description>Elite</description> |
| 2307 | <year>198?</year> |
| 2308 | <publisher><unknown></publisher> |
| 2309 | |
| 2310 | <part name="flop1" interface="floppy_5_25"> |
| 2311 | <dataarea name="flop" size="368640"> |
| 2312 | <rom name="elite.dsk" size="368640" crc="3545e4fc" sha1="8770d8bef9abb2f962e12b8aa2df6b8ea95d81dc" offset="0" /> |
| 2313 | </dataarea> |
| 2314 | </part> |
| 2315 | </software> |
| 2316 | |
| 2317 | <software name="elitea" cloneof="elite"> |
| 2318 | <description>Elite (Alt)</description> |
| 2319 | <year>198?</year> |
| 2320 | <publisher><unknown></publisher> |
| 2321 | |
| 2322 | <part name="flop1" interface="floppy_5_25"> |
| 2323 | <dataarea name="flop" size="368640"> |
| 2324 | <rom name="elitev2.dsk" size="368640" crc="a8f40861" sha1="28b56562d8c06b656c5b77b1acf48f75ddd0b66b" offset="0" /> |
| 2325 | </dataarea> |
| 2326 | </part> |
| 2327 | </software> |
| 2328 | |
| 2329 | <software name="ellopo"> |
| 2330 | <description>Ellopó</description> |
| 2331 | <year>198?</year> |
| 2332 | <publisher><unknown></publisher> |
| 2333 | |
| 2334 | <part name="flop1" interface="floppy_5_25"> |
| 2335 | <dataarea name="flop" size="368640"> |
| 2336 | <rom name="ellopo.dsk" size="368640" crc="8bead775" sha1="56e988da9a0fc760fe9f23ca8b46b43fa49676fe" offset="0" /> |
| 2337 | </dataarea> |
| 2338 | </part> |
| 2339 | </software> |
| 2340 | |
| 2341 | <software name="english1"> |
| 2342 | <description>English Test no.1</description> |
| 2343 | <year>1986</year> |
| 2344 | <publisher>VGy</publisher> |
| 2345 | |
| 2346 | <part name="flop1" interface="floppy_5_25"> |
| 2347 | <dataarea name="flop" size="368640"> |
| 2348 | <rom name="english1.dsk" size="368640" crc="e8cfab13" sha1="d05003c445dbe77030a16e9a3f690afd3b47a52d" offset="0" /> |
| 2349 | </dataarea> |
| 2350 | </part> |
| 2351 | </software> |
| 2352 | |
| 2353 | <software name="english2"> |
| 2354 | <description>English Test no.2</description> |
| 2355 | <year>1986</year> |
| 2356 | <publisher>VGy</publisher> |
| 2357 | |
| 2358 | <part name="flop1" interface="floppy_5_25"> |
| 2359 | <dataarea name="flop" size="368640"> |
| 2360 | <rom name="english2.dsk" size="368640" crc="64c2cb71" sha1="be560d97f8d07ecb32645e16788d460b11af7a07" offset="0" /> |
| 2361 | </dataarea> |
| 2362 | </part> |
| 2363 | </software> |
| 2364 | |
| 2365 | <software name="english3"> |
| 2366 | <description>English Test no.3</description> |
| 2367 | <year>1986</year> |
| 2368 | <publisher>VGy</publisher> |
| 2369 | |
| 2370 | <part name="flop1" interface="floppy_5_25"> |
| 2371 | <dataarea name="flop" size="368640"> |
| 2372 | <rom name="english3.dsk" size="368640" crc="69df0d43" sha1="35f5a38caaf9dca88c356839f9d7b16c03f2a982" offset="0" /> |
| 2373 | </dataarea> |
| 2374 | </part> |
| 2375 | </software> |
| 2376 | |
| 2377 | <software name="english4"> |
| 2378 | <description>English Test no.4</description> |
| 2379 | <year>1986</year> |
| 2380 | <publisher>VGy</publisher> |
| 2381 | |
| 2382 | <part name="flop1" interface="floppy_5_25"> |
| 2383 | <dataarea name="flop" size="368640"> |
| 2384 | <rom name="english4.dsk" size="368640" crc="72aaffb4" sha1="a5642e9f30272ad669b8f1ef8c005b81ae0c726a" offset="0" /> |
| 2385 | </dataarea> |
| 2386 | </part> |
| 2387 | </software> |
| 2388 | |
| 2389 | <software name="english5"> |
| 2390 | <description>English Test no.5</description> |
| 2391 | <year>1986</year> |
| 2392 | <publisher>VGy</publisher> |
| 2393 | |
| 2394 | <part name="flop1" interface="floppy_5_25"> |
| 2395 | <dataarea name="flop" size="368640"> |
| 2396 | <rom name="english5.dsk" size="368640" crc="25870265" sha1="8d1a5f7305ad8d78d524db21d5aa56152dff513c" offset="0" /> |
| 2397 | </dataarea> |
| 2398 | </part> |
| 2399 | </software> |
| 2400 | |
| 2401 | <software name="erod"> |
| 2402 | <description>Erőd</description> |
| 2403 | <year>198?</year> |
| 2404 | <publisher><unknown></publisher> |
| 2405 | |
| 2406 | <part name="flop1" interface="floppy_5_25"> |
| 2407 | <dataarea name="flop" size="368640"> |
| 2408 | <rom name="erod.dsk" size="368640" crc="4cbe273c" sha1="5d7d2319a193c28ec453fdae268b862b4c12b0c1" offset="0" /> |
| 2409 | </dataarea> |
| 2410 | </part> |
| 2411 | </software> |
| 2412 | |
| 2413 | <software name="etforth"> |
| 2414 | <description>ET-Forth 1.1</description> |
| 2415 | <year>1987</year> |
| 2416 | <publisher>Geza Kos</publisher> |
| 2417 | |
| 2418 | <part name="flop1" interface="floppy_5_25"> |
| 2419 | <dataarea name="flop" size="368640"> |
| 2420 | <rom name="et-forth.dsk" size="368640" crc="9826d74b" sha1="900d4920bf651c55c06258f62ea195358f8a4426" offset="0" /> |
| 2421 | </dataarea> |
| 2422 | </part> |
| 2423 | </software> |
| 2424 | |
| 2425 | <software name="europa"> |
| 2426 | <description>Keresd a Térképen - Európa</description> |
| 2427 | <year>198?</year> |
| 2428 | <publisher><unknown></publisher> |
| 2429 | |
| 2430 | <part name="flop1" interface="floppy_5_25"> |
| 2431 | <dataarea name="flop" size="368640"> |
| 2432 | <rom name="europa.dsk" size="368640" crc="3c7f0d4d" sha1="e2f8a4e619a6248f21ddb948c36ed8c9d7861b80" offset="0" /> |
| 2433 | </dataarea> |
| 2434 | </part> |
| 2435 | </software> |
| 2436 | |
| 2437 | <software name="europaa" cloneof="europa"> |
| 2438 | <description>Keresd a Térképen - Európa (Alt)</description> |
| 2439 | <year>198?</year> |
| 2440 | <publisher><unknown></publisher> |
| 2441 | |
| 2442 | <part name="flop1" interface="floppy_5_25"> |
| 2443 | <dataarea name="flop" size="368640"> |
| 2444 | <rom name="europav2.dsk" size="368640" crc="5fe0bd7b" sha1="2eec5d88bf63e8e9b3459c01cc0e0938aab956f6" offset="0" /> |
| 2445 | </dataarea> |
| 2446 | </part> |
| 2447 | </software> |
| 2448 | |
| 2449 | <software name="expedici"> |
| 2450 | <description>Expedíció</description> |
| 2451 | <year>1989</year> |
| 2452 | <publisher>Berysoft</publisher> |
| 2453 | |
| 2454 | <part name="flop1" interface="floppy_5_25"> |
| 2455 | <dataarea name="flop" size="368640"> |
| 2456 | <rom name="expedici.dsk" size="368640" crc="3dddaef3" sha1="e97d6863680215895449aee26bdf74920664accf" offset="0" /> |
| 2457 | </dataarea> |
| 2458 | </part> |
| 2459 | </software> |
| 2460 | |
| 2461 | <software name="expedicia" cloneof="expedici"> |
| 2462 | <description>Expedíció (Alt)</description> |
| 2463 | <year>1989</year> |
| 2464 | <publisher>Berysoft</publisher> |
| 2465 | |
| 2466 | <part name="flop1" interface="floppy_5_25"> |
| 2467 | <dataarea name="flop" size="368640"> |
| 2468 | <rom name="expediciov2.dsk" size="368640" crc="d5a82a6f" sha1="d76131ee379a0a0e83a1efe776d0da6626f38dee" offset="0" /> |
| 2469 | </dataarea> |
| 2470 | </part> |
| 2471 | </software> |
| 2472 | |
| 2473 | <software name="faltoro"> |
| 2474 | <description>TV-Computer Faltörő Játék</description> |
| 2475 | <year>198?</year> |
| 2476 | <publisher><unknown></publisher> |
| 2477 | |
| 2478 | <part name="flop1" interface="floppy_5_25"> |
| 2479 | <dataarea name="flop" size="368640"> |
| 2480 | <rom name="faltoro.dsk" size="368640" crc="69adadae" sha1="8775f07548f29265b98213abd97211f8a815c83a" offset="0" /> |
| 2481 | </dataarea> |
| 2482 | </part> |
| 2483 | </software> |
| 2484 | |
| 2485 | <software name="faltjate"> |
| 2486 | <description>Faltörő játék</description> |
| 2487 | <year>198?</year> |
| 2488 | <publisher><unknown></publisher> |
| 2489 | |
| 2490 | <part name="flop1" interface="floppy_5_25"> |
| 2491 | <dataarea name="flop" size="368640"> |
| 2492 | <rom name="faltorojatek.dsk" size="368640" crc="b879d758" sha1="9686b6af60d137f36a38b5debf91fdde00b7c264" offset="0" /> |
| 2493 | </dataarea> |
| 2494 | </part> |
| 2495 | </software> |
| 2496 | |
| 2497 | <software name="family1"> |
| 2498 | <description>Family 1</description> |
| 2499 | <year>198?</year> |
| 2500 | <publisher><unknown></publisher> |
| 2501 | |
| 2502 | <part name="flop1" interface="floppy_5_25"> |
| 2503 | <dataarea name="flop" size="368640"> |
| 2504 | <rom name="family1.dsk" size="368640" crc="b3a6e891" sha1="e11aff8cf1993ced8c65649f48909e03c8dd1471" offset="0" /> |
| 2505 | </dataarea> |
| 2506 | </part> |
| 2507 | </software> |
| 2508 | |
| 2509 | <software name="family2"> |
| 2510 | <description>Family 2</description> |
| 2511 | <year>198?</year> |
| 2512 | <publisher><unknown></publisher> |
| 2513 | |
| 2514 | <part name="flop1" interface="floppy_5_25"> |
| 2515 | <dataarea name="flop" size="368640"> |
| 2516 | <rom name="family2.dsk" size="368640" crc="06de22c8" sha1="877e99f888dc711a64286eb9e1371079422438e3" offset="0" /> |
| 2517 | </dataarea> |
| 2518 | </part> |
| 2519 | </software> |
| 2520 | |
| 2521 | <software name="family2a" cloneof="family2"> |
| 2522 | <description>Family 2 (Alt)</description> |
| 2523 | <year>198?</year> |
| 2524 | <publisher><unknown></publisher> |
| 2525 | |
| 2526 | <part name="flop1" interface="floppy_5_25"> |
| 2527 | <dataarea name="flop" size="368640"> |
| 2528 | <rom name="family.dsk" size="368640" crc="2be9ff2d" sha1="c4b53ac2477fbaac1bdaefca88e7cc20dd949c0f" offset="0" /> |
| 2529 | </dataarea> |
| 2530 | </part> |
| 2531 | </software> |
| 2532 | |
| 2533 | <software name="family2b" cloneof="family2"> |
| 2534 | <description>Family 2 (Alt 2)</description> |
| 2535 | <year>198?</year> |
| 2536 | <publisher><unknown></publisher> |
| 2537 | |
| 2538 | <part name="flop1" interface="floppy_5_25"> |
| 2539 | <dataarea name="flop" size="368640"> |
| 2540 | <rom name="family3.dsk" size="368640" crc="b0ebd77a" sha1="b776717b8ef8da74241ec05ef7feaf04edcd32f4" offset="0" /> |
| 2541 | </dataarea> |
| 2542 | </part> |
| 2543 | </software> |
| 2544 | |
| 2545 | <software name="family4"> |
| 2546 | <description>Family 4 - Lesson 1</description> |
| 2547 | <year>198?</year> |
| 2548 | <publisher><unknown></publisher> |
| 2549 | |
| 2550 | <part name="flop1" interface="floppy_5_25"> |
| 2551 | <dataarea name="flop" size="368640"> |
| 2552 | <rom name="family4.dsk" size="368640" crc="2d227803" sha1="d4ca0cf6f7812d881c7533cd1460b5d76d661b52" offset="0" /> |
| 2553 | </dataarea> |
| 2554 | </part> |
| 2555 | </software> |
| 2556 | |
| 2557 | <software name="family5"> |
| 2558 | <description>Family 5 - Test</description> |
| 2559 | <year>198?</year> |
| 2560 | <publisher><unknown></publisher> |
| 2561 | |
| 2562 | <part name="flop1" interface="floppy_5_25"> |
| 2563 | <dataarea name="flop" size="368640"> |
| 2564 | <rom name="family5.dsk" size="368640" crc="65fa9bc1" sha1="2462c50c3b2ff896fdcb0f99e588e83ddcbe49d4" offset="0" /> |
| 2565 | </dataarea> |
| 2566 | </part> |
| 2567 | </software> |
| 2568 | |
| 2569 | <software name="farao"> |
| 2570 | <description>Fáraó</description> |
| 2571 | <year>1988</year> |
| 2572 | <publisher>Gigasoft</publisher> |
| 2573 | |
| 2574 | <part name="flop1" interface="floppy_5_25"> |
| 2575 | <dataarea name="flop" size="368640"> |
| 2576 | <rom name="farao.dsk" size="368640" crc="75e1f280" sha1="c34e4b8c87400502356ffaf559ad84ccb13ac2f4" offset="0" /> |
| 2577 | </dataarea> |
| 2578 | </part> |
| 2579 | </software> |
| 2580 | |
| 2581 | <software name="fcopy10"> |
| 2582 | <description>TVC File Copy 1.0</description> |
| 2583 | <year>1986</year> |
| 2584 | <publisher>Gyorgy Hudoba - Tibor Cseh</publisher> |
| 2585 | |
| 2586 | <part name="flop1" interface="floppy_5_25"> |
| 2587 | <dataarea name="flop" size="368640"> |
| 2588 | <rom name="fcopy10.dsk" size="368640" crc="8a798a56" sha1="abb759f90bc23d79f635cd55abc675cf2cf042da" offset="0" /> |
| 2589 | </dataarea> |
| 2590 | </part> |
| 2591 | </software> |
| 2592 | |
| 2593 | <software name="fcopyd2t"> |
| 2594 | <description>File Másolás - Floppy to Magnó</description> |
| 2595 | <year>198?</year> |
| 2596 | <publisher><unknown></publisher> |
| 2597 | |
| 2598 | <part name="flop1" interface="floppy_5_25"> |
| 2599 | <dataarea name="flop" size="368640"> |
| 2600 | <rom name="fcopyd2t.dsk" size="368640" crc="2f4d9e30" sha1="7c7f465d118931b2c426644db381dd0ea37d8f1c" offset="0" /> |
| 2601 | </dataarea> |
| 2602 | </part> |
| 2603 | </software> |
| 2604 | |
| 2605 | <software name="tapecopy"> |
| 2606 | <description>File Másolás - Magnó to Floppy</description> |
| 2607 | <year>198?</year> |
| 2608 | <publisher><unknown></publisher> |
| 2609 | |
| 2610 | <part name="flop1" interface="floppy_5_25"> |
| 2611 | <dataarea name="flop" size="368640"> |
| 2612 | <rom name="tapecopy.dsk" size="368640" crc="a0b7ffb2" sha1="3e300c66285fe7374227599c947bcf2e0c155619" offset="0" /> |
| 2613 | </dataarea> |
| 2614 | </part> |
| 2615 | </software> |
| 2616 | |
| 2617 | <software name="tapedos"> |
| 2618 | <description>File Másoló - VTDOS to Floppy</description> |
| 2619 | <year>1990</year> |
| 2620 | <publisher><unknown></publisher> |
| 2621 | |
| 2622 | <part name="flop1" interface="floppy_5_25"> |
| 2623 | <dataarea name="flop" size="368640"> |
| 2624 | <rom name="tapedos.dsk" size="368640" crc="20d8c027" sha1="b4e20f21f7894a9da438794af19dde406bbd6227" offset="0" /> |
| 2625 | </dataarea> |
| 2626 | </part> |
| 2627 | </software> |
| 2628 | |
| 2629 | <software name="fcopyt2t"> |
| 2630 | <description>File Másoló - Szalag to Szalag</description> |
| 2631 | <year>1990</year> |
| 2632 | <publisher>László Tóth</publisher> |
| 2633 | |
| 2634 | <part name="flop1" interface="floppy_5_25"> |
| 2635 | <dataarea name="flop" size="368640"> |
| 2636 | <rom name="fcopyt2t.dsk" size="368640" crc="871e4cd2" sha1="432ac36ac056862fe795d569b0166f2debaa0a3e" offset="0" /> |
| 2637 | </dataarea> |
| 2638 | </part> |
| 2639 | </software> |
| 2640 | |
| 2641 | <software name="fejtoro"> |
| 2642 | <description>15-ös fejtörő</description> |
| 2643 | <year>198?</year> |
| 2644 | <publisher>Nyitrai</publisher> |
| 2645 | |
| 2646 | <part name="flop1" interface="floppy_5_25"> |
| 2647 | <dataarea name="flop" size="368640"> |
| 2648 | <rom name="fejtoro.dsk" size="368640" crc="3e7cabba" sha1="c852abad0699c9a360b29280e5cf12cbb12f5dbb" offset="0" /> |
| 2649 | </dataarea> |
| 2650 | </part> |
| 2651 | </software> |
| 2652 | |
| 2653 | <software name="feketeso"> |
| 2654 | <description>Fekete Sólyom</description> |
| 2655 | <year>198?</year> |
| 2656 | <publisher>Software in LUX</publisher> |
| 2657 | |
| 2658 | <part name="flop1" interface="floppy_5_25"> |
| 2659 | <dataarea name="flop" size="368640"> |
| 2660 | <rom name="feketesolyom.dsk" size="368640" crc="a7877882" sha1="44f0adf2d07e460d479e71815c34b07bbc309476" offset="0" /> |
| 2661 | </dataarea> |
| 2662 | </part> |
| 2663 | </software> |
| 2664 | |
| 2665 | <software name="felderit"> |
| 2666 | <description>Felderítő</description> |
| 2667 | <year>198?</year> |
| 2668 | <publisher>Software in LUX</publisher> |
| 2669 | |
| 2670 | <part name="flop1" interface="floppy_5_25"> |
| 2671 | <dataarea name="flop" size="368640"> |
| 2672 | <rom name="felderito.dsk" size="368640" crc="39c40157" sha1="c3659996a8d15cd49530f401987181704ebd7429" offset="0" /> |
| 2673 | </dataarea> |
| 2674 | </part> |
| 2675 | </software> |
| 2676 | |
| 2677 | <software name="felirato"> |
| 2678 | <description>Feliratozó</description> |
| 2679 | <year>1987</year> |
| 2680 | <publisher>STV</publisher> |
| 2681 | |
| 2682 | <part name="flop1" interface="floppy_5_25"> |
| 2683 | <dataarea name="flop" size="368640"> |
| 2684 | <rom name="feliratozo.dsk" size="368640" crc="ce756b86" sha1="34f46c7afff954aefbaf76bc996932dbec4b383b" offset="0" /> |
| 2685 | </dataarea> |
| 2686 | </part> |
| 2687 | </software> |
| 2688 | |
| 2689 | <software name="felkaru"> |
| 2690 | <description>Félkarú rabló</description> |
| 2691 | <year>1986</year> |
| 2692 | <publisher>Gabor Balogh</publisher> |
| 2693 | |
| 2694 | <part name="flop1" interface="floppy_5_25"> |
| 2695 | <dataarea name="flop" size="368640"> |
| 2696 | <rom name="felkarurablo.dsk" size="368640" crc="2a4a6539" sha1="cb21892344e743ced485a08bde315426744b041b" offset="0" /> |
| 2697 | </dataarea> |
| 2698 | </part> |
| 2699 | </software> |
| 2700 | |
| 2701 | <software name="festojat"> |
| 2702 | <description>Festő játék</description> |
| 2703 | <year>198?</year> |
| 2704 | <publisher>Béla Takács</publisher> |
| 2705 | |
| 2706 | <part name="flop1" interface="floppy_5_25"> |
| 2707 | <dataarea name="flop" size="368640"> |
| 2708 | <rom name="festojatek.dsk" size="368640" crc="d8e5160f" sha1="9f5accbb2f8eace4c6aa6e691e72ee2db9d656f5" offset="0" /> |
| 2709 | </dataarea> |
| 2710 | </part> |
| 2711 | </software> |
| 2712 | |
| 2713 | <software name="fgabr"> |
| 2714 | <description>Függvényábrázolás</description> |
| 2715 | <year>198?</year> |
| 2716 | <publisher><unknown></publisher> |
| 2717 | |
| 2718 | <part name="flop1" interface="floppy_5_25"> |
| 2719 | <dataarea name="flop" size="368640"> |
| 2720 | <rom name="fgabr.dsk" size="368640" crc="01540ca0" sha1="cf3cf1c9828d5e7f556eeb8225cbae5259de8c5f" offset="0" /> |
| 2721 | </dataarea> |
| 2722 | </part> |
| 2723 | </software> |
| 2724 | |
| 2725 | <software name="filem"> |
| 2726 | <description>Fájlmásoló</description> |
| 2727 | <year>198?</year> |
| 2728 | <publisher>Csongrád - SCS</publisher> |
| 2729 | |
| 2730 | <part name="flop1" interface="floppy_5_25"> |
| 2731 | <dataarea name="flop" size="368640"> |
| 2732 | <rom name="filem.dsk" size="368640" crc="7f916870" sha1="c9d249e0e6485aa29cdd71a4dca960150b7c998b" offset="0" /> |
| 2733 | </dataarea> |
| 2734 | </part> |
| 2735 | </software> |
| 2736 | |
| 2737 | <software name="firebow"> |
| 2738 | <description>Firebow - The Planet of Death</description> |
| 2739 | <year>1991</year> |
| 2740 | <publisher>Zsolt Szigeti</publisher> |
| 2741 | |
| 2742 | <part name="flop1" interface="floppy_5_25"> |
| 2743 | <dataarea name="flop" size="368640"> |
| 2744 | <rom name="firebow.dsk" size="368640" crc="1c0b82c8" sha1="5b275ffbe9aadc28176443abc6a248b74969ff73" offset="0" /> |
| 2745 | </dataarea> |
| 2746 | </part> |
| 2747 | </software> |
| 2748 | |
| 2749 | <software name="firebowt" cloneof="firebow"> |
| 2750 | <description>Firebow - The Planet of Death (Trainer)</description> |
| 2751 | <year>1991</year> |
| 2752 | <publisher>Zsolt Szigeti</publisher> |
| 2753 | |
| 2754 | <part name="flop1" interface="floppy_5_25"> |
| 2755 | <dataarea name="flop" size="368640"> |
| 2756 | <rom name="firebow(trainer).dsk" size="368640" crc="99f466d2" sha1="f8bb890cf9f71afa1a7ae8fc31995b01db1b3236" offset="0" /> |
| 2757 | </dataarea> |
| 2758 | </part> |
| 2759 | </software> |
| 2760 | |
| 2761 | <software name="firebowl"> |
| 2762 | <description>Firebow Leírás</description> |
| 2763 | <year>1992</year> |
| 2764 | <publisher>Krisztan Dunder</publisher> |
| 2765 | |
| 2766 | <part name="flop1" interface="floppy_5_25"> |
| 2767 | <dataarea name="flop" size="368640"> |
| 2768 | <rom name="firebowleiras.dsk" size="368640" crc="83a3d2af" sha1="2c329757f1b67f7f83d6e49eb760156bfc079a88" offset="0" /> |
| 2769 | </dataarea> |
| 2770 | </part> |
| 2771 | </software> |
| 2772 | |
| 2773 | <software name="fiv03"> |
| 2774 | <description>Fizika - Soros RC kör - FIV03</description> |
| 2775 | <year>198?</year> |
| 2776 | <publisher><unknown></publisher> |
| 2777 | |
| 2778 | <part name="flop1" interface="floppy_5_25"> |
| 2779 | <dataarea name="flop" size="368640"> |
| 2780 | <rom name="fiv03.dsk" size="368640" crc="9c16bae7" sha1="e1ee22d78a7ea303515d22d6082ab862fb24fd58" offset="0" /> |
| 2781 | </dataarea> |
| 2782 | </part> |
| 2783 | </software> |
| 2784 | |
| 2785 | <software name="fiv92"> |
| 2786 | <description>Fizika - Mágneses mező - FIV92</description> |
| 2787 | <year>198?</year> |
| 2788 | <publisher><unknown></publisher> |
| 2789 | |
| 2790 | <part name="flop1" interface="floppy_5_25"> |
| 2791 | <dataarea name="flop" size="368640"> |
| 2792 | <rom name="fiv92.dsk" size="368640" crc="660647fe" sha1="f06770d4c7a44bab5485cf5490d087562861c777" offset="0" /> |
| 2793 | </dataarea> |
| 2794 | </part> |
| 2795 | </software> |
| 2796 | |
| 2797 | <software name="fizikaio"> |
| 2798 | <description>Fizikai összefüggések</description> |
| 2799 | <year>1987</year> |
| 2800 | <publisher>Novotrade - Octasoft</publisher> |
| 2801 | |
| 2802 | <part name="flop1" interface="floppy_5_25"> |
| 2803 | <dataarea name="flop" size="368640"> |
| 2804 | <rom name="fizikaio.dsk" size="368640" crc="a9080926" sha1="2bd12c7d8f5239e69db19fdbdf1a991a0e1cea40" offset="0" /> |
| 2805 | </dataarea> |
| 2806 | </part> |
| 2807 | </software> |
| 2808 | |
| 2809 | <software name="flight"> |
| 2810 | <description>Flight</description> |
| 2811 | <year>1987</year> |
| 2812 | <publisher>BirdSoft</publisher> |
| 2813 | |
| 2814 | <part name="flop1" interface="floppy_5_25"> |
| 2815 | <dataarea name="flop" size="368640"> |
| 2816 | <rom name="flight.dsk" size="368640" crc="3a5b39de" sha1="37059f9baf324de69ad4c8be270f63a0bac9b37d" offset="0" /> |
| 2817 | </dataarea> |
| 2818 | </part> |
| 2819 | </software> |
| 2820 | |
| 2821 | <software name="flipper"> |
| 2822 | <description>Flipper</description> |
| 2823 | <year>1987</year> |
| 2824 | <publisher>Andromeda</publisher> |
| 2825 | |
| 2826 | <part name="flop1" interface="floppy_5_25"> |
| 2827 | <dataarea name="flop" size="368640"> |
| 2828 | <rom name="flipper.dsk" size="368640" crc="cac0266d" sha1="61aef2fc0bf5dcbbb9efaff2bd721ff9808c28c4" offset="0" /> |
| 2829 | </dataarea> |
| 2830 | </part> |
| 2831 | </software> |
| 2832 | |
| 2833 | <software name="flippera" cloneof="flipper"> |
| 2834 | <description>Flipper (Alt)</description> |
| 2835 | <year>1987</year> |
| 2836 | <publisher>Andromeda</publisher> |
| 2837 | |
| 2838 | <part name="flop1" interface="floppy_5_25"> |
| 2839 | <dataarea name="flop" size="368640"> |
| 2840 | <rom name="flipperv2.dsk" size="368640" crc="bcc1076e" sha1="4a1780c57c6ee9fad3dca886fff506a00ece69bb" offset="0" /> |
| 2841 | </dataarea> |
| 2842 | </part> |
| 2843 | </software> |
| 2844 | |
| 2845 | <software name="flipperb" cloneof="flipper"> |
| 2846 | <description>Flipper (Alt 2)</description> |
| 2847 | <year>1987</year> |
| 2848 | <publisher>Andromeda</publisher> |
| 2849 | |
| 2850 | <part name="flop1" interface="floppy_5_25"> |
| 2851 | <dataarea name="flop" size="368640"> |
| 2852 | <rom name="flipperv3.dsk" size="368640" crc="62ad6b93" sha1="458ff82ee48e369e3e5eb9f7a8006791b29bd479" offset="0" /> |
| 2853 | </dataarea> |
| 2854 | </part> |
| 2855 | </software> |
| 2856 | |
| 2857 | <software name="flopp"> |
| 2858 | <description>Flopp</description> |
| 2859 | <year>198?</year> |
| 2860 | <publisher>C.S. Software</publisher> |
| 2861 | |
| 2862 | <part name="flop1" interface="floppy_5_25"> |
| 2863 | <dataarea name="flop" size="368640"> |
| 2864 | <rom name="flopp.dsk" size="368640" crc="c786f028" sha1="9dce1035fbeb039039f5353c3c8bbdbe8ab80c96" offset="0" /> |
| 2865 | </dataarea> |
| 2866 | </part> |
| 2867 | </software> |
| 2868 | |
| 2869 | <software name="flsgraph"> |
| 2870 | <description>FLS Graphics Editor</description> |
| 2871 | <year>1987</year> |
| 2872 | <publisher>Flighter Software</publisher> |
| 2873 | |
| 2874 | <part name="flop1" interface="floppy_5_25"> |
| 2875 | <dataarea name="flop" size="368640"> |
| 2876 | <rom name="flsgraph.dsk" size="368640" crc="d9f8635c" sha1="68937de97a2a67ee0a4b0c73f29630e4c3aa2520" offset="0" /> |
| 2877 | </dataarea> |
| 2878 | </part> |
| 2879 | </software> |
| 2880 | |
| 2881 | <software name="foci"> |
| 2882 | <description>Foci</description> |
| 2883 | <year>198?</year> |
| 2884 | <publisher><unknown></publisher> |
| 2885 | |
| 2886 | <part name="flop1" interface="floppy_5_25"> |
| 2887 | <dataarea name="flop" size="368640"> |
| 2888 | <rom name="foci.dsk" size="368640" crc="8d2d4fc9" sha1="c07e8ac69109bec00662608cf4ef0d9454a681b6" offset="0" /> |
| 2889 | </dataarea> |
| 2890 | </part> |
| 2891 | </software> |
| 2892 | |
| 2893 | <software name="fogmosos"> |
| 2894 | <description>Fogmosós Játék</description> |
| 2895 | <year>198?</year> |
| 2896 | <publisher><unknown></publisher> |
| 2897 | |
| 2898 | <part name="flop1" interface="floppy_5_25"> |
| 2899 | <dataarea name="flop" size="368640"> |
| 2900 | <rom name="fogmosos.dsk" size="368640" crc="5000daa4" sha1="0d0f8507583c2e1eafafcc39601b399483b3070e" offset="0" /> |
| 2901 | </dataarea> |
| 2902 | </part> |
| 2903 | </software> |
| 2904 | |
| 2905 | <software name="foldrajz"> |
| 2906 | <description>Környezetismeret Oktató és Témazáró</description> |
| 2907 | <year>198?</year> |
| 2908 | <publisher><unknown></publisher> |
| 2909 | |
| 2910 | <part name="flop1" interface="floppy_5_25"> |
| 2911 | <dataarea name="flop" size="368640"> |
| 2912 | <rom name="foldrajz.dsk" size="368640" crc="c0360132" sha1="3b103b0cb6ee86c10b9a9fdd01945a994c3e1897" offset="0" /> |
| 2913 | </dataarea> |
| 2914 | </part> |
| 2915 | </software> |
| 2916 | |
| 2917 | <software name="football"> |
| 2918 | <description>Football</description> |
| 2919 | <year>198?</year> |
| 2920 | <publisher><unknown></publisher> |
| 2921 | |
| 2922 | <part name="flop1" interface="floppy_5_25"> |
| 2923 | <dataarea name="flop" size="368640"> |
| 2924 | <rom name="football.dsk" size="368640" crc="d59dc075" sha1="0a90ac9a7ff6d86ea715db0f4b5568743600a045" offset="0" /> |
| 2925 | </dataarea> |
| 2926 | </part> |
| 2927 | </software> |
| 2928 | |
| 2929 | <software name="fordits"> |
| 2930 | <description>Fordíts</description> |
| 2931 | <year>198?</year> |
| 2932 | <publisher><unknown></publisher> |
| 2933 | |
| 2934 | <part name="flop1" interface="floppy_5_25"> |
| 2935 | <dataarea name="flop" size="368640"> |
| 2936 | <rom name="fordits.dsk" size="368640" crc="1be27897" sha1="643d63446829d3cc7ca54c66182140491c9fda55" offset="0" /> |
| 2937 | </dataarea> |
| 2938 | </part> |
| 2939 | </software> |
| 2940 | |
| 2941 | <software name="format"> |
| 2942 | <description>Format</description> |
| 2943 | <year>198?</year> |
| 2944 | <publisher><unknown></publisher> |
| 2945 | |
| 2946 | <part name="flop1" interface="floppy_5_25"> |
| 2947 | <dataarea name="flop" size="368640"> |
| 2948 | <rom name="format.dsk" size="368640" crc="6c2c4fcd" sha1="f65022a9c1fe4d7c890d0cf25e4884c64b765086" offset="0" /> |
| 2949 | </dataarea> |
| 2950 | </part> |
| 2951 | </software> |
| 2952 | |
| 2953 | <software name="forthlei"> |
| 2954 | <description>Forth Leírás</description> |
| 2955 | <year>198?</year> |
| 2956 | <publisher><unknown></publisher> |
| 2957 | |
| 2958 | <part name="flop1" interface="floppy_5_25"> |
| 2959 | <dataarea name="flop" size="368640"> |
| 2960 | <rom name="forthlei.dsk" size="368640" crc="6d7e861d" sha1="39873721c8c661c97be357f22b3ba44c23ace3c3" offset="0" /> |
| 2961 | </dataarea> |
| 2962 | </part> |
| 2963 | </software> |
| 2964 | |
| 2965 | <software name="fov02"> |
| 2966 | <description>Földrajz - Magyarországi városok - FOV02</description> |
| 2967 | <year>198?</year> |
| 2968 | <publisher><unknown></publisher> |
| 2969 | |
| 2970 | <part name="flop1" interface="floppy_5_25"> |
| 2971 | <dataarea name="flop" size="368640"> |
| 2972 | <rom name="fov02.dsk" size="368640" crc="c4b5fbd5" sha1="b7eb0a7373a06358f1c26b6f8515ff847cd393e4" offset="0" /> |
| 2973 | </dataarea> |
| 2974 | </part> |
| 2975 | </software> |
| 2976 | |
| 2977 | <software name="fov03"> |
| 2978 | <description>Földrajz - Szovjetúnió városai - FOV03</description> |
| 2979 | <year>198?</year> |
| 2980 | <publisher><unknown></publisher> |
| 2981 | |
| 2982 | <part name="flop1" interface="floppy_5_25"> |
| 2983 | <dataarea name="flop" size="368640"> |
| 2984 | <rom name="fov03.dsk" size="368640" crc="18b44bd1" sha1="21c3758ed188957785e2ec7767165b87a9a8c004" offset="0" /> |
| 2985 | </dataarea> |
| 2986 | </part> |
| 2987 | </software> |
| 2988 | |
| 2989 | <software name="fov04"> |
| 2990 | <description>Földrajz - USA városai - FOV04</description> |
| 2991 | <year>198?</year> |
| 2992 | <publisher><unknown></publisher> |
| 2993 | |
| 2994 | <part name="flop1" interface="floppy_5_25"> |
| 2995 | <dataarea name="flop" size="368640"> |
| 2996 | <rom name="fov04.dsk" size="368640" crc="e64fab74" sha1="eae2cfd6b2ccb27652a90af2576f14d59d1c3237" offset="0" /> |
| 2997 | </dataarea> |
| 2998 | </part> |
| 2999 | </software> |
| 3000 | |
| 3001 | <software name="freddie"> |
| 3002 | <description>Freddie</description> |
| 3003 | <year>198?</year> |
| 3004 | <publisher>Black Star Software</publisher> |
| 3005 | |
| 3006 | <part name="flop1" interface="floppy_5_25"> |
| 3007 | <dataarea name="flop" size="368640"> |
| 3008 | <rom name="freddie.dsk" size="368640" crc="31f1b1bd" sha1="1c5f0053406d9e76c7ecb3258d1c1798d8b712c0" offset="0" /> |
| 3009 | </dataarea> |
| 3010 | </part> |
| 3011 | </software> |
| 3012 | |
| 3013 | <software name="fuel"> |
| 3014 | <description>Fuel</description> |
| 3015 | <year>1988</year> |
| 3016 | <publisher>Attila Barabas</publisher> |
| 3017 | |
| 3018 | <part name="flop1" interface="floppy_5_25"> |
| 3019 | <dataarea name="flop" size="368640"> |
| 3020 | <rom name="fuel.dsk" size="368640" crc="2a3f8eb9" sha1="9d626605b1e393d92399fe3d777fd7e301beced5" offset="0" /> |
| 3021 | </dataarea> |
| 3022 | </part> |
| 3023 | </software> |
| 3024 | |
| 3025 | <software name="fuggvabr"> |
| 3026 | <description>Függvény ábrázolás</description> |
| 3027 | <year>198?</year> |
| 3028 | <publisher><unknown></publisher> |
| 3029 | |
| 3030 | <part name="flop1" interface="floppy_5_25"> |
| 3031 | <dataarea name="flop" size="368640"> |
| 3032 | <rom name="fuggvabr.dsk" size="368640" crc="287bd584" sha1="f22da75020f875bca769567d935a8ed8df883b3b" offset="0" /> |
| 3033 | </dataarea> |
| 3034 | </part> |
| 3035 | </software> |
| 3036 | |
| 3037 | <software name="futakep"> |
| 3038 | <description>Fut A Kép - Keretlebontás</description> |
| 3039 | <year>198?</year> |
| 3040 | <publisher><unknown></publisher> |
| 3041 | |
| 3042 | <part name="flop1" interface="floppy_5_25"> |
| 3043 | <dataarea name="flop" size="368640"> |
| 3044 | <rom name="futakep.dsk" size="368640" crc="36bac09e" sha1="ac3f7546b7bef4eedc5fcbf77d75c1880bcc903c" offset="0" /> |
| 3045 | </dataarea> |
| 3046 | </part> |
| 3047 | </software> |
| 3048 | |
| 3049 | <software name="futovad"> |
| 3050 | <description>Futóvad</description> |
| 3051 | <year>198?</year> |
| 3052 | <publisher><unknown></publisher> |
| 3053 | |
| 3054 | <part name="flop1" interface="floppy_5_25"> |
| 3055 | <dataarea name="flop" size="368640"> |
| 3056 | <rom name="futovad.dsk" size="368640" crc="0c4000d9" sha1="df6bac6af111f5b887744adf63ae12204a7d6ee3" offset="0" /> |
| 3057 | </dataarea> |
| 3058 | </part> |
| 3059 | </software> |
| 3060 | |
| 3061 | <software name="galaxy"> |
| 3062 | <description>Galaxy</description> |
| 3063 | <year>1991</year> |
| 3064 | <publisher>Béla Csatlós</publisher> |
| 3065 | |
| 3066 | <part name="flop1" interface="floppy_5_25"> |
| 3067 | <dataarea name="flop" size="368640"> |
| 3068 | <rom name="galaxyv1.dsk" size="368640" crc="52798b37" sha1="047a1e628fa007a7dcc8cbe9925da33d72f2f1b5" offset="0" /> |
| 3069 | </dataarea> |
| 3070 | </part> |
| 3071 | </software> |
| 3072 | |
| 3073 | <software name="galaxya" cloneof="galaxy"> |
| 3074 | <description>Galaxy (Alt)</description> |
| 3075 | <year>1991</year> |
| 3076 | <publisher>Béla Csatlós</publisher> |
| 3077 | |
| 3078 | <part name="flop1" interface="floppy_5_25"> |
| 3079 | <dataarea name="flop" size="368640"> |
| 3080 | <rom name="galaxyv2.dsk" size="368640" crc="2dee5fb4" sha1="bad6a1d6447db78e8f8ea86700d137026f095435" offset="0" /> |
| 3081 | </dataarea> |
| 3082 | </part> |
| 3083 | </software> |
| 3084 | |
| 3085 | <software name="galaxyb" cloneof="galaxy"> |
| 3086 | <description>Galaxy (Alt 2)</description> |
| 3087 | <year>1991</year> |
| 3088 | <publisher>Béla Csatlós</publisher> |
| 3089 | |
| 3090 | <part name="flop1" interface="floppy_5_25"> |
| 3091 | <dataarea name="flop" size="368640"> |
| 3092 | <rom name="galaxyv3.dsk" size="368640" crc="1dd5a65f" sha1="ddbe88f6182beaf94159edd7fc797867b6ce122d" offset="0" /> |
| 3093 | </dataarea> |
| 3094 | </part> |
| 3095 | </software> |
| 3096 | |
| 3097 | <software name="gallaste"> |
| 3098 | <description>Gall Asterix</description> |
| 3099 | <year>198?</year> |
| 3100 | <publisher><unknown></publisher> |
| 3101 | |
| 3102 | <part name="flop1" interface="floppy_5_25"> |
| 3103 | <dataarea name="flop" size="368640"> |
| 3104 | <rom name="gallasterix.dsk" size="368640" crc="b919330b" sha1="dcea5391e0ba084d57e99768c8b941e9f62c7bf0" offset="0" /> |
| 3105 | </dataarea> |
| 3106 | </part> |
| 3107 | </software> |
| 3108 | |
| 3109 | <software name="generato"> |
| 3110 | <description>Generátor</description> |
| 3111 | <year>198?</year> |
| 3112 | <publisher><unknown></publisher> |
| 3113 | |
| 3114 | <part name="flop1" interface="floppy_5_25"> |
| 3115 | <dataarea name="flop" size="368640"> |
| 3116 | <rom name="generato.dsk" size="368640" crc="c96ac673" sha1="b15b764057b7d4f508800773c62f346df22ccb17" offset="0" /> |
| 3117 | </dataarea> |
| 3118 | </part> |
| 3119 | </software> |
| 3120 | |
| 3121 | <software name="geo"> |
| 3122 | <description>Geo</description> |
| 3123 | <year>1987</year> |
| 3124 | <publisher>Videoton</publisher> |
| 3125 | |
| 3126 | <part name="flop1" interface="floppy_5_25"> |
| 3127 | <dataarea name="flop" size="368640"> |
| 3128 | <rom name="geo_v1.dsk" size="368640" crc="14bc4370" sha1="0ace1946b43ecf5a658ae2c3cb4734b841451ec0" offset="0" /> |
| 3129 | </dataarea> |
| 3130 | </part> |
| 3131 | </software> |
| 3132 | |
| 3133 | <software name="geoa" cloneof="geo"> |
| 3134 | <description>Geo (Alt)</description> |
| 3135 | <year>1987</year> |
| 3136 | <publisher>Videoton</publisher> |
| 3137 | |
| 3138 | <part name="flop1" interface="floppy_5_25"> |
| 3139 | <dataarea name="flop" size="368640"> |
| 3140 | <rom name="geo_v2.dsk" size="368640" crc="36cb7159" sha1="8cee0fcd7306e698ef033761529a566ce8047f9a" offset="0" /> |
| 3141 | </dataarea> |
| 3142 | </part> |
| 3143 | </software> |
| 3144 | |
| 3145 | <software name="geob" cloneof="geo"> |
| 3146 | <description>Geo (Alt 2)</description> |
| 3147 | <year>1987</year> |
| 3148 | <publisher>Videoton</publisher> |
| 3149 | |
| 3150 | <part name="flop1" interface="floppy_5_25"> |
| 3151 | <dataarea name="flop" size="368640"> |
| 3152 | <rom name="geo_v3.dsk" size="368640" crc="3a5b9241" sha1="6b525522aafa3009cd06015bfc04b1aa0527ea3e" offset="0" /> |
| 3153 | </dataarea> |
| 3154 | </part> |
| 3155 | </software> |
| 3156 | |
| 3157 | <software name="geomtran"> |
| 3158 | <description>Geometriai Transzformációk</description> |
| 3159 | <year>1988</year> |
| 3160 | <publisher>Novotrade - Octasoft</publisher> |
| 3161 | |
| 3162 | <part name="flop1" interface="floppy_5_25"> |
| 3163 | <dataarea name="flop" size="368640"> |
| 3164 | <rom name="geomtran.dsk" size="368640" crc="9e86935e" sha1="a976ab430f13f940a5abb7eee1ee1279a74a08d1" offset="0" /> |
| 3165 | </dataarea> |
| 3166 | </part> |
| 3167 | </software> |
| 3168 | |
| 3169 | <software name="geomtrana" cloneof="geomtran"> |
| 3170 | <description>Geometriai Transzformációk (Alt)</description> |
| 3171 | <year>1988</year> |
| 3172 | <publisher>Novotrade - Octasoft</publisher> |
| 3173 | |
| 3174 | <part name="flop1" interface="floppy_5_25"> |
| 3175 | <dataarea name="flop" size="368640"> |
| 3176 | <rom name="mertan.dsk" size="368640" crc="bd6cf35c" sha1="47b9c550f04c3ecf7b982b9688f5f7cc33630398" offset="0" /> |
| 3177 | </dataarea> |
| 3178 | </part> |
| 3179 | </software> |
| 3180 | |
| 3181 | <software name="gepzene"> |
| 3182 | <description>Gépzene</description> |
| 3183 | <year>198?</year> |
| 3184 | <publisher><unknown></publisher> |
| 3185 | |
| 3186 | <part name="flop1" interface="floppy_5_25"> |
| 3187 | <dataarea name="flop" size="368640"> |
| 3188 | <rom name="gepzene.dsk" size="368640" crc="8fb491ad" sha1="e7242936df7745926ec90d22130048582a9ef719" offset="0" /> |
| 3189 | </dataarea> |
| 3190 | </part> |
| 3191 | </software> |
| 3192 | |
| 3193 | <software name="ghostbus"> |
| 3194 | <description>Ghostbusters</description> |
| 3195 | <year>1991</year> |
| 3196 | <publisher>Agilar</publisher> |
| 3197 | |
| 3198 | <part name="flop1" interface="floppy_5_25"> |
| 3199 | <dataarea name="flop" size="368640"> |
| 3200 | <rom name="ghostbusters.dsk" size="368640" crc="b74e5558" sha1="b10678784cfc9079eeef64bb925cfd95eb17d864" offset="0" /> |
| 3201 | </dataarea> |
| 3202 | </part> |
| 3203 | </software> |
| 3204 | |
| 3205 | <software name="gianti"> |
| 3206 | <description>Giantigascutus</description> |
| 3207 | <year>198?</year> |
| 3208 | <publisher>Cápasoft</publisher> |
| 3209 | |
| 3210 | <part name="flop1" interface="floppy_5_25"> |
| 3211 | <dataarea name="flop" size="368640"> |
| 3212 | <rom name="gianti.dsk" size="368640" crc="9f0248b0" sha1="ccfb73a120cee14d8c531d651f46339c259ac07c" offset="0" /> |
| 3213 | </dataarea> |
| 3214 | </part> |
| 3215 | </software> |
| 3216 | |
| 3217 | <software name="giliszta"> |
| 3218 | <description>Giliszta</description> |
| 3219 | <year>198?</year> |
| 3220 | <publisher><unknown></publisher> |
| 3221 | |
| 3222 | <part name="flop1" interface="floppy_5_25"> |
| 3223 | <dataarea name="flop" size="368640"> |
| 3224 | <rom name="giliszta.dsk" size="368640" crc="52d5ce52" sha1="15c7385ff4c26974c371be84fe7fabe6c9fa7b78" offset="0" /> |
| 3225 | </dataarea> |
| 3226 | </part> |
| 3227 | </software> |
| 3228 | |
| 3229 | <software name="goblinka"> |
| 3230 | <description>Goblin Kastélya</description> |
| 3231 | <year>198?</year> |
| 3232 | <publisher><unknown></publisher> |
| 3233 | |
| 3234 | <part name="flop1" interface="floppy_5_25"> |
| 3235 | <dataarea name="flop" size="368640"> |
| 3236 | <rom name="goblinkastelya.dsk" size="368640" crc="dba9b3ad" sha1="b76879ab5cdd45d07a8523114f4feb576722d720" offset="0" /> |
| 3237 | </dataarea> |
| 3238 | </part> |
| 3239 | </software> |
| 3240 | |
| 3241 | <software name="goldcopy"> |
| 3242 | <description>Goldcopy</description> |
| 3243 | <year>198?</year> |
| 3244 | <publisher><unknown></publisher> |
| 3245 | |
| 3246 | <part name="flop1" interface="floppy_5_25"> |
| 3247 | <dataarea name="flop" size="368640"> |
| 3248 | <rom name="goldcopy.dsk" size="368640" crc="0790b5e8" sha1="3a2a6d1b0df0101b6736c8bacb50982af4bc4410" offset="0" /> |
| 3249 | </dataarea> |
| 3250 | </part> |
| 3251 | </software> |
| 3252 | |
| 3253 | <software name="golf"> |
| 3254 | <description>Golf</description> |
| 3255 | <year>198?</year> |
| 3256 | <publisher>Berysoft</publisher> |
| 3257 | |
| 3258 | <part name="flop1" interface="floppy_5_25"> |
| 3259 | <dataarea name="flop" size="368640"> |
| 3260 | <rom name="golf.dsk" size="368640" crc="38e35609" sha1="cea07690a1ae4288390152c6b635712749cb05d4" offset="0" /> |
| 3261 | </dataarea> |
| 3262 | </part> |
| 3263 | </software> |
| 3264 | |
| 3265 | <software name="golyoviz"> |
| 3266 | <description>Golyó a Vízben</description> |
| 3267 | <year>198?</year> |
| 3268 | <publisher><unknown></publisher> |
| 3269 | |
| 3270 | <part name="flop1" interface="floppy_5_25"> |
| 3271 | <dataarea name="flop" size="368640"> |
| 3272 | <rom name="golyoviz.dsk" size="368640" crc="58b924a2" sha1="03725c7554cc616e7e0360cea3e9c01914d84287" offset="0" /> |
| 3273 | </dataarea> |
| 3274 | </part> |
| 3275 | </software> |
| 3276 | |
| 3277 | <software name="gombak"> |
| 3278 | <description>Gombák</description> |
| 3279 | <year>1990</year> |
| 3280 | <publisher>Agilar</publisher> |
| 3281 | |
| 3282 | <part name="flop1" interface="floppy_5_25"> |
| 3283 | <dataarea name="flop" size="368640"> |
| 3284 | <rom name="gombak.dsk" size="368640" crc="d73779d3" sha1="044f2b4a761071bd31effcbd388aa61ffeadb7f7" offset="0" /> |
| 3285 | </dataarea> |
| 3286 | </part> |
| 3287 | </software> |
| 3288 | |
| 3289 | <software name="gombocfa"> |
| 3290 | <description>Gombócfaló</description> |
| 3291 | <year>198?</year> |
| 3292 | <publisher><unknown></publisher> |
| 3293 | |
| 3294 | <part name="flop1" interface="floppy_5_25"> |
| 3295 | <dataarea name="flop" size="368640"> |
| 3296 | <rom name="gombocfalo_v1.dsk" size="368640" crc="2dfdc20f" sha1="dcd1af3a86a444c8d3f3567a7211799791d4f620" offset="0" /> |
| 3297 | </dataarea> |
| 3298 | </part> |
| 3299 | </software> |
| 3300 | |
| 3301 | <software name="gombocfaa" cloneof="gombocfa"> |
| 3302 | <description>Gombócfaló (Alt)</description> |
| 3303 | <year>198?</year> |
| 3304 | <publisher><unknown></publisher> |
| 3305 | |
| 3306 | <part name="flop1" interface="floppy_5_25"> |
| 3307 | <dataarea name="flop" size="368640"> |
| 3308 | <rom name="gombocfalo_v2.dsk" size="368640" crc="afe63b34" sha1="c7ab4374cd2541582116ea1ee80951555d92f579" offset="0" /> |
| 3309 | </dataarea> |
| 3310 | </part> |
| 3311 | </software> |
| 3312 | |
| 3313 | <software name="gombtuko"> |
| 3314 | <description>Gömbtükör</description> |
| 3315 | <year>198?</year> |
| 3316 | <publisher><unknown></publisher> |
| 3317 | |
| 3318 | <part name="flop1" interface="floppy_5_25"> |
| 3319 | <dataarea name="flop" size="368640"> |
| 3320 | <rom name="gombtuko.dsk" size="368640" crc="b2fc3019" sha1="2257586dbd983ba966b6ca1d9b7cb75008a4fd23" offset="0" /> |
| 3321 | </dataarea> |
| 3322 | </part> |
| 3323 | </software> |
| 3324 | |
| 3325 | <software name="gravitac"> |
| 3326 | <description>Gravitáció</description> |
| 3327 | <year>198?</year> |
| 3328 | <publisher><unknown></publisher> |
| 3329 | |
| 3330 | <part name="flop1" interface="floppy_5_25"> |
| 3331 | <dataarea name="flop" size="368640"> |
| 3332 | <rom name="gravitac.dsk" size="368640" crc="bc894aa3" sha1="6954bf9279d9101533835365fc3bf7db219f3afe" offset="0" /> |
| 3333 | </dataarea> |
| 3334 | </part> |
| 3335 | </software> |
| 3336 | |
| 3337 | <software name="griff"> |
| 3338 | <description>Griff</description> |
| 3339 | <year>198?</year> |
| 3340 | <publisher>Software in LUX</publisher> |
| 3341 | |
| 3342 | <part name="flop1" interface="floppy_5_25"> |
| 3343 | <dataarea name="flop" size="368640"> |
| 3344 | <rom name="griff.dsk" size="368640" crc="94d4ece6" sha1="72222d128f9712bc90ea0ba76203ea5c3cffe4d4" offset="0" /> |
| 3345 | </dataarea> |
| 3346 | </part> |
| 3347 | </software> |
| 3348 | |
| 3349 | <software name="griff3d"> |
| 3350 | <description>Griff - 3 Dimenziós Griff Grafika</description> |
| 3351 | <year>198?</year> |
| 3352 | <publisher><unknown></publisher> |
| 3353 | |
| 3354 | <part name="flop1" interface="floppy_5_25"> |
| 3355 | <dataarea name="flop" size="368640"> |
| 3356 | <rom name="graf.dsk" size="368640" crc="f9252fad" sha1="015bf77d5815f27a86383d385fc4fd2d344e9581" offset="0" /> |
| 3357 | </dataarea> |
| 3358 | </part> |
| 3359 | </software> |
| 3360 | |
| 3361 | <software name="grdemo"> |
| 3362 | <description>Griff-Grafika Bemutató Program</description> |
| 3363 | <year>198?</year> |
| 3364 | <publisher><unknown></publisher> |
| 3365 | |
| 3366 | <part name="flop1" interface="floppy_5_25"> |
| 3367 | <dataarea name="flop" size="368640"> |
| 3368 | <rom name="grdemo.dsk" size="368640" crc="7061705c" sha1="682a4e5ba62af822d5160e8955934e051dfa193f" offset="0" /> |
| 3369 | </dataarea> |
| 3370 | </part> |
| 3371 | </software> |
| 3372 | |
| 3373 | <software name="gt2"> |
| 3374 | <description>Ghost Tower 2</description> |
| 3375 | <year>198?</year> |
| 3376 | <publisher><unknown></publisher> |
| 3377 | |
| 3378 | <part name="flop1" interface="floppy_5_25"> |
| 3379 | <dataarea name="flop" size="368640"> |
| 3380 | <rom name="gt2.dsk" size="368640" crc="3b0a70df" sha1="6839ddc5a101eea7e9e8470ed678751676caf780" offset="0" /> |
| 3381 | </dataarea> |
| 3382 | </part> |
| 3383 | </software> |
| 3384 | |
| 3385 | <software name="gulpman"> |
| 3386 | <description>Gulpman (Trainer)</description> |
| 3387 | <year>1990</year> |
| 3388 | <publisher>Béla Csatlós</publisher> |
| 3389 | |
| 3390 | <part name="flop1" interface="floppy_5_25"> |
| 3391 | <dataarea name="flop" size="368640"> |
| 3392 | <rom name="gulpmant.dsk" size="368640" crc="ad6ed72e" sha1="49506c6a68e3c2fb8e29795518d0c2b231b05099" offset="0" /> |
| 3393 | </dataarea> |
| 3394 | </part> |
| 3395 | </software> |
| 3396 | |
| 3397 | <software name="gunfight"> |
| 3398 | <description>Gunfight</description> |
| 3399 | <year>198?</year> |
| 3400 | <publisher><unknown></publisher> |
| 3401 | |
| 3402 | <part name="flop1" interface="floppy_5_25"> |
| 3403 | <dataarea name="flop" size="368640"> |
| 3404 | <rom name="gunfight.dsk" size="368640" crc="02587b89" sha1="01696d97379e05b6c6681d1efd454e7d37feadca" offset="0" /> |
| 3405 | </dataarea> |
| 3406 | </part> |
| 3407 | </software> |
| 3408 | |
| 3409 | <software name="gusztleg"> |
| 3410 | <description>Gusztáv legyeket írt</description> |
| 3411 | <year>198?</year> |
| 3412 | <publisher><unknown></publisher> |
| 3413 | |
| 3414 | <part name="flop1" interface="floppy_5_25"> |
| 3415 | <dataarea name="flop" size="368640"> |
| 3416 | <rom name="gusztavlegyeketirt.dsk" size="368640" crc="d5b05567" sha1="279bbb9d2ffe3b5c02201f925bf3046c0a8ac65c" offset="0" /> |
| 3417 | </dataarea> |
| 3418 | </part> |
| 3419 | </software> |
| 3420 | |
| 3421 | <software name="gusztspo"> |
| 3422 | <description>Gusztáv Sportol</description> |
| 3423 | <year>198?</year> |
| 3424 | <publisher>László Nagy</publisher> |
| 3425 | |
| 3426 | <part name="flop1" interface="floppy_5_25"> |
| 3427 | <dataarea name="flop" size="368640"> |
| 3428 | <rom name="gusztavsportol.dsk" size="368640" crc="2d48ac6d" sha1="fca224ee59288a49966684671b40841dfd425e08" offset="0" /> |
| 3429 | </dataarea> |
| 3430 | </part> |
| 3431 | </software> |
| 3432 | |
| 3433 | <software name="gyertya"> |
| 3434 | <description>Gyertya</description> |
| 3435 | <year>198?</year> |
| 3436 | <publisher><unknown></publisher> |
| 3437 | |
| 3438 | <part name="flop1" interface="floppy_5_25"> |
| 3439 | <dataarea name="flop" size="368640"> |
| 3440 | <rom name="gyertya.dsk" size="368640" crc="53c8018e" sha1="375055eccd09ea61576b6be61f32edcb2f0140e6" offset="0" /> |
| 3441 | </dataarea> |
| 3442 | </part> |
| 3443 | </software> |
| 3444 | |
| 3445 | <software name="gyufajat"> |
| 3446 | <description>Gyufajáték</description> |
| 3447 | <year>198?</year> |
| 3448 | <publisher>Zsolt</publisher> |
| 3449 | |
| 3450 | <part name="flop1" interface="floppy_5_25"> |
| 3451 | <dataarea name="flop" size="368640"> |
| 3452 | <rom name="gyufajatek.dsk" size="368640" crc="64619a01" sha1="a9f5b961cadcdb92fe88af6530d8d54282605005" offset="0" /> |
| 3453 | </dataarea> |
| 3454 | </part> |
| 3455 | </software> |
| 3456 | |
| 3457 | <software name="hajo"> |
| 3458 | <description>Hajó</description> |
| 3459 | <year>198?</year> |
| 3460 | <publisher><unknown></publisher> |
| 3461 | |
| 3462 | <part name="flop1" interface="floppy_5_25"> |
| 3463 | <dataarea name="flop" size="368640"> |
| 3464 | <rom name="hajo.dsk" size="368640" crc="17685e78" sha1="79c138213247f2edc082b3a479068fb8e5dd760f" offset="0" /> |
| 3465 | </dataarea> |
| 3466 | </part> |
| 3467 | </software> |
| 3468 | |
| 3469 | <software name="hajo1"> |
| 3470 | <description>Hajó (Different)</description> |
| 3471 | <year>198?</year> |
| 3472 | <publisher><unknown></publisher> |
| 3473 | |
| 3474 | <part name="flop1" interface="floppy_5_25"> |
| 3475 | <dataarea name="flop" size="368640"> |
| 3476 | <rom name="hajor.dsk" size="368640" crc="748421f6" sha1="bdd4c622c10b8e89646d2d15f42b5317f592f8a7" offset="0" /> |
| 3477 | </dataarea> |
| 3478 | </part> |
| 3479 | </software> |
| 3480 | |
| 3481 | <software name="halak"> |
| 3482 | <description>Halak</description> |
| 3483 | <year>1991</year> |
| 3484 | <publisher>K&K Soft</publisher> |
| 3485 | |
| 3486 | <part name="flop1" interface="floppy_5_25"> |
| 3487 | <dataarea name="flop" size="368640"> |
| 3488 | <rom name="halak.dsk" size="368640" crc="80fb19d2" sha1="b8241bbee506933f940b08fac8ebdd118c91e117" offset="0" /> |
| 3489 | </dataarea> |
| 3490 | </part> |
| 3491 | </software> |
| 3492 | |
| 3493 | <software name="halalla"> |
| 3494 | <description>Halállabirintus</description> |
| 3495 | <year>198?</year> |
| 3496 | <publisher><unknown></publisher> |
| 3497 | |
| 3498 | <part name="flop1" interface="floppy_5_25"> |
| 3499 | <dataarea name="flop" size="368640"> |
| 3500 | <rom name="halallabirintus.dsk" size="368640" crc="fc8a000c" sha1="21e8b97f0da9673b991ac570ed619510b74090d5" offset="0" /> |
| 3501 | </dataarea> |
| 3502 | </part> |
| 3503 | </software> |
| 3504 | |
| 3505 | <software name="hamm"> |
| 3506 | <description>Hamm</description> |
| 3507 | <year>198?</year> |
| 3508 | <publisher><unknown></publisher> |
| 3509 | |
| 3510 | <part name="flop1" interface="floppy_5_25"> |
| 3511 | <dataarea name="flop" size="368640"> |
| 3512 | <rom name="hamm.dsk" size="368640" crc="fd020ea9" sha1="0a74f95f21b83da4df10bed9042e3b0cf275c9f1" offset="0" /> |
| 3513 | </dataarea> |
| 3514 | </part> |
| 3515 | </software> |
| 3516 | |
| 3517 | <software name="hang"> |
| 3518 | <description>Hang</description> |
| 3519 | <year>198?</year> |
| 3520 | <publisher><unknown></publisher> |
| 3521 | |
| 3522 | <part name="flop1" interface="floppy_5_25"> |
| 3523 | <dataarea name="flop" size="368640"> |
| 3524 | <rom name="hang.dsk" size="368640" crc="8de35864" sha1="bc7c93f9fe36a9a583fa42d6233530b473ef73f9" offset="0" /> |
| 3525 | </dataarea> |
| 3526 | </part> |
| 3527 | </software> |
| 3528 | |
| 3529 | <software name="hangd"> |
| 3530 | <description>Hang (Different)</description> |
| 3531 | <year>198?</year> |
| 3532 | <publisher><unknown></publisher> |
| 3533 | |
| 3534 | <part name="flop1" interface="floppy_5_25"> |
| 3535 | <dataarea name="flop" size="368640"> |
| 3536 | <rom name="hangd.dsk" size="368640" crc="2030a412" sha1="d7422817eea76372dd04172331c63091c297c88a" offset="0" /> |
| 3537 | </dataarea> |
| 3538 | </part> |
| 3539 | </software> |
| 3540 | |
| 3541 | <software name="hangdigi"> |
| 3542 | <description>Hangdigitalizáló</description> |
| 3543 | <year>198?</year> |
| 3544 | <publisher><unknown></publisher> |
| 3545 | |
| 3546 | <part name="flop1" interface="floppy_5_25"> |
| 3547 | <dataarea name="flop" size="368640"> |
| 3548 | <rom name="hangdigi.dsk" size="368640" crc="bd430ec6" sha1="3961b3732fd2626c4c919f678e42d0da639e580e" offset="0" /> |
| 3549 | </dataarea> |
| 3550 | </part> |
| 3551 | </software> |
| 3552 | |
| 3553 | <software name="hanggal"> |
| 3554 | <description>Hanggal</description> |
| 3555 | <year>1989</year> |
| 3556 | <publisher>Endre Győrffy</publisher> |
| 3557 | |
| 3558 | <part name="flop1" interface="floppy_5_25"> |
| 3559 | <dataarea name="flop" size="368640"> |
| 3560 | <rom name="hanggal.dsk" size="368640" crc="b69352d2" sha1="e6908982c21de9658585750139c0aa7a17327ba0" offset="0" /> |
| 3561 | </dataarea> |
| 3562 | </part> |
| 3563 | </software> |
| 3564 | |
| 3565 | <software name="hangok"> |
| 3566 | <description>Hangok</description> |
| 3567 | <year>198?</year> |
| 3568 | <publisher><unknown></publisher> |
| 3569 | |
| 3570 | <part name="flop1" interface="floppy_5_25"> |
| 3571 | <dataarea name="flop" size="368640"> |
| 3572 | <rom name="hangok.dsk" size="368640" crc="c9911b93" sha1="ac67521e71aa840351a0d54f476510a8b3620e8a" offset="0" /> |
| 3573 | </dataarea> |
| 3574 | </part> |
| 3575 | </software> |
| 3576 | |
| 3577 | <software name="hangosbi"> |
| 3578 | <description>Hangos Billentyűzet</description> |
| 3579 | <year>198?</year> |
| 3580 | <publisher>Tombor Márton</publisher> |
| 3581 | |
| 3582 | <part name="flop1" interface="floppy_5_25"> |
| 3583 | <dataarea name="flop" size="368640"> |
| 3584 | <rom name="hangosbi.dsk" size="368640" crc="0d190703" sha1="7dedecbc346a9d4ca9131be6fada161874a66ff6" offset="0" /> |
| 3585 | </dataarea> |
| 3586 | </part> |
| 3587 | </software> |
| 3588 | |
| 3589 | <software name="hanoi"> |
| 3590 | <description>Hanoi Torony</description> |
| 3591 | <year>1983</year> |
| 3592 | <publisher>Gyorgy Vamos - Janos Horvath</publisher> |
| 3593 | |
| 3594 | <part name="flop1" interface="floppy_5_25"> |
| 3595 | <dataarea name="flop" size="368640"> |
| 3596 | <rom name="hanoi.dsk" size="368640" crc="f495f99d" sha1="f56c88ac925e42f3aefe5d14642e5bf7ed3d1370" offset="0" /> |
| 3597 | </dataarea> |
| 3598 | </part> |
| 3599 | </software> |
| 3600 | |
| 3601 | <software name="hanoitr"> |
| 3602 | <description>Hanoi-Torony</description> |
| 3603 | <year>1987</year> |
| 3604 | <publisher>Zsolt</publisher> |
| 3605 | |
| 3606 | <part name="flop1" interface="floppy_5_25"> |
| 3607 | <dataarea name="flop" size="368640"> |
| 3608 | <rom name="hanoi_.dsk" size="368640" crc="a394f747" sha1="f6602f3493586a7fa309f844014e8408a0fa1652" offset="0" /> |
| 3609 | </dataarea> |
| 3610 | </part> |
| 3611 | </software> |
| 3612 | |
| 3613 | <software name="hanoi_t"> |
| 3614 | <description>Hanoi Tornyai</description> |
| 3615 | <year>1986</year> |
| 3616 | <publisher>ZMKMF</publisher> |
| 3617 | |
| 3618 | <part name="flop1" interface="floppy_5_25"> |
| 3619 | <dataarea name="flop" size="368640"> |
| 3620 | <rom name="hanoi_t.dsk" size="368640" crc="63e78bb2" sha1="5fe56dc9cd5011e35ad87119a614ff1171c9ef27" offset="0" /> |
| 3621 | </dataarea> |
| 3622 | </part> |
| 3623 | </software> |
| 3624 | |
| 3625 | <software name="harcaflk"> |
| 3626 | <description>Harc a Föld Körül</description> |
| 3627 | <year>198?</year> |
| 3628 | <publisher>Novotrade</publisher> |
| 3629 | |
| 3630 | <part name="flop1" interface="floppy_5_25"> |
| 3631 | <dataarea name="flop" size="368640"> |
| 3632 | <rom name="harcaflk.dsk" size="368640" crc="5b8a4486" sha1="29cb470ee18232a8b660340830938913e8a42fa7" offset="0" /> |
| 3633 | </dataarea> |
| 3634 | </part> |
| 3635 | </software> |
| 3636 | |
| 3637 | <software name="harcaflka" cloneof="harcaflk"> |
| 3638 | <description>Harc a Föld Körül (Alt)</description> |
| 3639 | <year>198?</year> |
| 3640 | <publisher>Novotrade</publisher> |
| 3641 | |
| 3642 | <part name="flop1" interface="floppy_5_25"> |
| 3643 | <dataarea name="flop" size="368640"> |
| 3644 | <rom name="harcafoldkorul.dsk" size="368640" crc="5cd0d02b" sha1="2b55f2b3a37008ba74d456cd16d1dbb896551915" offset="0" /> |
| 3645 | </dataarea> |
| 3646 | </part> |
| 3647 | </software> |
| 3648 | |
| 3649 | <software name="haromtes"> |
| 3650 | <description>Háromtestprobléma</description> |
| 3651 | <year>198?</year> |
| 3652 | <publisher><unknown></publisher> |
| 3653 | |
| 3654 | <part name="flop1" interface="floppy_5_25"> |
| 3655 | <dataarea name="flop" size="368640"> |
| 3656 | <rom name="haromtes.dsk" size="368640" crc="21857488" sha1="deaa347fd5b2810d351ed464f484c31bde273452" offset="0" /> |
| 3657 | </dataarea> |
| 3658 | </part> |
| 3659 | </software> |
| 3660 | |
| 3661 | <software name="hcopy"> |
| 3662 | <description>HCopy</description> |
| 3663 | <year>198?</year> |
| 3664 | <publisher><unknown></publisher> |
| 3665 | |
| 3666 | <part name="flop1" interface="floppy_5_25"> |
| 3667 | <dataarea name="flop" size="368640"> |
| 3668 | <rom name="hcopy.dsk" size="368640" crc="e47e3073" sha1="5ebd2c5bb8597c6afc3f37eacd1a082861d56261" offset="0" /> |
| 3669 | </dataarea> |
| 3670 | </part> |
| 3671 | </software> |
| 3672 | |
| 3673 | <software name="hds"> |
| 3674 | <description>Hiper Digital - System v3.5</description> |
| 3675 | <year>1989</year> |
| 3676 | <publisher>Béla Szalontai</publisher> |
| 3677 | |
| 3678 | <part name="flop1" interface="floppy_5_25"> |
| 3679 | <dataarea name="flop" size="368640"> |
| 3680 | <rom name="hds.dsk" size="368640" crc="ee41e22f" sha1="04b14ff93dcfbcac2b84f5a022311362e2cfabc8" offset="0" /> |
| 3681 | </dataarea> |
| 3682 | </part> |
| 3683 | </software> |
| 3684 | |
| 3685 | <software name="head"> |
| 3686 | <description>Head</description> |
| 3687 | <year>198?</year> |
| 3688 | <publisher><unknown></publisher> |
| 3689 | |
| 3690 | <part name="flop1" interface="floppy_5_25"> |
| 3691 | <dataarea name="flop" size="368640"> |
| 3692 | <rom name="head.dsk" size="368640" crc="63cd5d17" sha1="196d69350ffb609fdcc657f54a7a9b51ce4e09b8" offset="0" /> |
| 3693 | </dataarea> |
| 3694 | </part> |
| 3695 | </software> |
| 3696 | |
| 3697 | <software name="heartlnd"> |
| 3698 | <description>Heartland</description> |
| 3699 | <year>1990</year> |
| 3700 | <publisher>Zsolt Szigeti</publisher> |
| 3701 | |
| 3702 | <part name="flop1" interface="floppy_5_25"> |
| 3703 | <dataarea name="flop" size="368640"> |
| 3704 | <rom name="heartland.dsk" size="368640" crc="dee6da92" sha1="0df2550e4fb4298bd59f07354f930051dd51e154" offset="0" /> |
| 3705 | </dataarea> |
| 3706 | </part> |
| 3707 | </software> |
| 3708 | |
| 3709 | <software name="hlndisme"> |
| 3710 | <description>Heartland Ismertető</description> |
| 3711 | <year>1990</year> |
| 3712 | <publisher>Zsolt Szigeti</publisher> |
| 3713 | |
| 3714 | <part name="flop1" interface="floppy_5_25"> |
| 3715 | <dataarea name="flop" size="368640"> |
| 3716 | <rom name="heartlandismerteto.dsk" size="368640" crc="2a8506ce" sha1="59cad75f312d85f8bf4b07422bc4478821642cd9" offset="0" /> |
| 3717 | </dataarea> |
| 3718 | </part> |
| 3719 | </software> |
| 3720 | |
| 3721 | <software name="helikopt"> |
| 3722 | <description>Helikopter</description> |
| 3723 | <year>198?</year> |
| 3724 | <publisher>SCS - Csongrád</publisher> |
| 3725 | |
| 3726 | <part name="flop1" interface="floppy_5_25"> |
| 3727 | <dataarea name="flop" size="368640"> |
| 3728 | <rom name="helikopter.dsk" size="368640" crc="d1a324af" sha1="4b54de6bfa4f779faf549f9008ad735acfe82b1a" offset="0" /> |
| 3729 | </dataarea> |
| 3730 | </part> |
| 3731 | </software> |
| 3732 | |
| 3733 | <software name="helpbasi"> |
| 3734 | <description>HELP BASIC v1.0</description> |
| 3735 | <year>198?</year> |
| 3736 | <publisher>Albatross</publisher> |
| 3737 | |
| 3738 | <part name="flop1" interface="floppy_5_25"> |
| 3739 | <dataarea name="flop" size="368640"> |
| 3740 | <rom name="helpbasi.dsk" size="368640" crc="8a564273" sha1="99e6721124369c1e2757d27ce6c5fdac48787102" offset="0" /> |
| 3741 | </dataarea> |
| 3742 | </part> |
| 3743 | </software> |
| 3744 | |
| 3745 | <software name="helpleir"> |
| 3746 | <description>HELP BASIC v1.0 Leírás</description> |
| 3747 | <year>198?</year> |
| 3748 | <publisher>Albatross</publisher> |
| 3749 | |
| 3750 | <part name="flop1" interface="floppy_5_25"> |
| 3751 | <dataarea name="flop" size="368640"> |
| 3752 | <rom name="helpleir.dsk" size="368640" crc="3428c982" sha1="4efce15ca6b93f02fbee84783b1a4a525671b659" offset="0" /> |
| 3753 | </dataarea> |
| 3754 | </part> |
| 3755 | </software> |
| 3756 | |
| 3757 | <software name="hexa"> |
| 3758 | <description>Decimális - Hexadecimális átváltó</description> |
| 3759 | <year>198?</year> |
| 3760 | <publisher><unknown></publisher> |
| 3761 | |
| 3762 | <part name="flop1" interface="floppy_5_25"> |
| 3763 | <dataarea name="flop" size="368640"> |
| 3764 | <rom name="hexa.dsk" size="368640" crc="b9dc6633" sha1="9261d4faf479ff05684b11313ece81bff9b1a39d" offset="0" /> |
| 3765 | </dataarea> |
| 3766 | </part> |
| 3767 | </software> |
| 3768 | |
| 3769 | <software name="homoru"> |
| 3770 | <description>Homorú Tükör Képalkotása</description> |
| 3771 | <year>198?</year> |
| 3772 | <publisher><unknown></publisher> |
| 3773 | |
| 3774 | <part name="flop1" interface="floppy_5_25"> |
| 3775 | <dataarea name="flop" size="368640"> |
| 3776 | <rom name="homoru.dsk" size="368640" crc="442d979a" sha1="d95e23ef17a7b0af0161e556f1592d7a2238db85" offset="0" /> |
| 3777 | </dataarea> |
| 3778 | </part> |
| 3779 | </software> |
| 3780 | |
| 3781 | <software name="hotelneu"> |
| 3782 | <description>Hotel Neutron</description> |
| 3783 | <year>198?</year> |
| 3784 | <publisher><unknown></publisher> |
| 3785 | |
| 3786 | <part name="flop1" interface="floppy_5_25"> |
| 3787 | <dataarea name="flop" size="368640"> |
| 3788 | <rom name="hotelneu.dsk" size="368640" crc="7ac8a035" sha1="40a54e448087c067b4de7173ef740cfc370ce9ea" offset="0" /> |
| 3789 | </dataarea> |
| 3790 | </part> |
| 3791 | </software> |
| 3792 | |
| 3793 | <software name="hoterjed"> |
| 3794 | <description>Hőterjedés</description> |
| 3795 | <year>198?</year> |
| 3796 | <publisher><unknown></publisher> |
| 3797 | |
| 3798 | <part name="flop1" interface="floppy_5_25"> |
| 3799 | <dataarea name="flop" size="368640"> |
| 3800 | <rom name="hoterjed.dsk" size="368640" crc="55c792b7" sha1="66a2f22c43b3fb130b90e27629d1c152e8b364fe" offset="0" /> |
| 3801 | </dataarea> |
| 3802 | </part> |
| 3803 | </software> |
| 3804 | |
| 3805 | <software name="hullam"> |
| 3806 | <description>Hullámcsomag</description> |
| 3807 | <year>198?</year> |
| 3808 | <publisher><unknown></publisher> |
| 3809 | |
| 3810 | <part name="flop1" interface="floppy_5_25"> |
| 3811 | <dataarea name="flop" size="368640"> |
| 3812 | <rom name="hullam.dsk" size="368640" crc="60cb5ecc" sha1="f324cb4846b956b45a0d637253fb37ed3fd46a5f" offset="0" /> |
| 3813 | </dataarea> |
| 3814 | </part> |
| 3815 | </software> |
| 3816 | |
| 3817 | <software name="hungaror"> |
| 3818 | <description>Hungaroring</description> |
| 3819 | <year>198?</year> |
| 3820 | <publisher>Novotrade</publisher> |
| 3821 | |
| 3822 | <part name="flop1" interface="floppy_5_25"> |
| 3823 | <dataarea name="flop" size="368640"> |
| 3824 | <rom name="hungaroring.dsk" size="368640" crc="fbb2b8d5" sha1="747036ff9aa71c5a729e7a98985c1949b5213484" offset="0" /> |
| 3825 | </dataarea> |
| 3826 | </part> |
| 3827 | </software> |
| 3828 | |
| 3829 | <software name="ikplusz"> |
| 3830 | <description>Interkarate+</description> |
| 3831 | <year>1989</year> |
| 3832 | <publisher>Tom</publisher> |
| 3833 | |
| 3834 | <part name="flop1" interface="floppy_5_25"> |
| 3835 | <dataarea name="flop" size="368640"> |
| 3836 | <rom name="ikplusz.dsk" size="368640" crc="01a364d7" sha1="dbdc90b55b9d58499b2d41cb5364a2fe8f6571b4" offset="0" /> |
| 3837 | </dataarea> |
| 3838 | </part> |
| 3839 | </software> |
| 3840 | |
| 3841 | <software name="ikplusza" cloneof="ikplusz"> |
| 3842 | <description>Interkarate+ (Alt)</description> |
| 3843 | <year>1989</year> |
| 3844 | <publisher>Tom</publisher> |
| 3845 | |
| 3846 | <part name="flop1" interface="floppy_5_25"> |
| 3847 | <dataarea name="flop" size="368640"> |
| 3848 | <rom name="ikpluszv2.dsk" size="368640" crc="862f9832" sha1="f6ff18681bc3a89889a6e376d209a94918c5f3e1" offset="0" /> |
| 3849 | </dataarea> |
| 3850 | </part> |
| 3851 | </software> |
| 3852 | |
| 3853 | <software name="inv182"> |
| 3854 | <description>Angol-Magyar Szótár és Kikérdező - INV182</description> |
| 3855 | <year>198?</year> |
| 3856 | <publisher><unknown></publisher> |
| 3857 | |
| 3858 | <part name="flop1" interface="floppy_5_25"> |
| 3859 | <dataarea name="flop" size="368640"> |
| 3860 | <rom name="inv182.dsk" size="368640" crc="cd1fcaa9" sha1="fadd24eef8d47cc752c668f4ec4f8eb792cd1d0d" offset="0" /> |
| 3861 | </dataarea> |
| 3862 | </part> |
| 3863 | </software> |
| 3864 | |
| 3865 | <software name="inv183"> |
| 3866 | <description>Német-Magyar Szótár és Kikérdező - INV183</description> |
| 3867 | <year>198?</year> |
| 3868 | <publisher><unknown></publisher> |
| 3869 | |
| 3870 | <part name="flop1" interface="floppy_5_25"> |
| 3871 | <dataarea name="flop" size="368640"> |
| 3872 | <rom name="inv183.dsk" size="368640" crc="fd9dbb26" sha1="39da76b2a482a62edf89b2e7237c982f23b21a94" offset="0" /> |
| 3873 | </dataarea> |
| 3874 | </part> |
| 3875 | </software> |
| 3876 | |
| 3877 | <software name="inv24"> |
| 3878 | <description>Űrcsata - INV24</description> |
| 3879 | <year>198?</year> |
| 3880 | <publisher><unknown></publisher> |
| 3881 | |
| 3882 | <part name="flop1" interface="floppy_5_25"> |
| 3883 | <dataarea name="flop" size="368640"> |
| 3884 | <rom name="inv24.dsk" size="368640" crc="6ff75ae0" sha1="863ba2681df9760c5b774d8b42439e73101af1c8" offset="0" /> |
| 3885 | </dataarea> |
| 3886 | </part> |
| 3887 | </software> |
| 3888 | |
| 3889 | <software name="invaders"> |
| 3890 | <description>Space Invaders</description> |
| 3891 | <year>198?</year> |
| 3892 | <publisher><unknown></publisher> |
| 3893 | |
| 3894 | <part name="flop1" interface="floppy_5_25"> |
| 3895 | <dataarea name="flop" size="368640"> |
| 3896 | <rom name="invaders.dsk" size="368640" crc="6780bf62" sha1="e351beaadc3684a3c93cd4a38269d281332629bc" offset="0" /> |
| 3897 | </dataarea> |
| 3898 | </part> |
| 3899 | </software> |
| 3900 | |
| 3901 | <software name="invazio"> |
| 3902 | <description>Invázió</description> |
| 3903 | <year>198?</year> |
| 3904 | <publisher>STV</publisher> |
| 3905 | |
| 3906 | <part name="flop1" interface="floppy_5_25"> |
| 3907 | <dataarea name="flop" size="368640"> |
| 3908 | <rom name="invazio.dsk" size="368640" crc="acc155ac" sha1="d4d78bcc3ac18c2ad52e1769d7a7f86d22cf19db" offset="0" /> |
| 3909 | </dataarea> |
| 3910 | </part> |
| 3911 | </software> |
| 3912 | |
| 3913 | <software name="iqteszt"> |
| 3914 | <description>IQ Teszt</description> |
| 3915 | <year>198?</year> |
| 3916 | <publisher><unknown></publisher> |
| 3917 | |
| 3918 | <part name="flop1" interface="floppy_5_25"> |
| 3919 | <dataarea name="flop" size="368640"> |
| 3920 | <rom name="iq-teszt.dsk" size="368640" crc="ca412285" sha1="69e6be3d716326f8214b3a1457ef493270050558" offset="0" /> |
| 3921 | </dataarea> |
| 3922 | </part> |
| 3923 | </software> |
| 3924 | |
| 3925 | <software name="jancsi"> |
| 3926 | <description>Jancsi a Várban</description> |
| 3927 | <year>1986</year> |
| 3928 | <publisher>STV</publisher> |
| 3929 | |
| 3930 | <part name="flop1" interface="floppy_5_25"> |
| 3931 | <dataarea name="flop" size="368640"> |
| 3932 | <rom name="jancsiavarban.dsk" size="368640" crc="15f6a09b" sha1="68375326e57cdab2e0309f7bd513c286753420e2" offset="0" /> |
| 3933 | </dataarea> |
| 3934 | </part> |
| 3935 | </software> |
| 3936 | |
| 3937 | <software name="jatekok"> |
| 3938 | <description>Játékok</description> |
| 3939 | <year>198?</year> |
| 3940 | <publisher>Jozsef Petrovszky - Szabolcs Rota</publisher> |
| 3941 | |
| 3942 | <part name="flop1" interface="floppy_5_25"> |
| 3943 | <dataarea name="flop" size="368640"> |
| 3944 | <rom name="jatekok.dsk" size="368640" crc="22e61972" sha1="aab273c53eb00557616ddec10e2818d6d3fbdb38" offset="0" /> |
| 3945 | </dataarea> |
| 3946 | </part> |
| 3947 | </software> |
| 3948 | |
| 3949 | <software name="jegyzet"> |
| 3950 | <description>Jegyzettömb</description> |
| 3951 | <year>1987</year> |
| 3952 | <publisher>Gyorgy Gerlai</publisher> |
| 3953 | |
| 3954 | <part name="flop1" interface="floppy_5_25"> |
| 3955 | <dataarea name="flop" size="368640"> |
| 3956 | <rom name="jegyzettomb.dsk" size="368640" crc="5aeaed3f" sha1="b9f67723f8381371fc27ea9df69790398750ffb2" offset="0" /> |
| 3957 | </dataarea> |
| 3958 | </part> |
| 3959 | </software> |
| 3960 | |
| 3961 | <software name="jetpack"> |
| 3962 | <description>Jet Pack</description> |
| 3963 | <year>198?</year> |
| 3964 | <publisher>Software in LUX</publisher> |
| 3965 | |
| 3966 | <part name="flop1" interface="floppy_5_25"> |
| 3967 | <dataarea name="flop" size="368640"> |
| 3968 | <rom name="jetpack.dsk" size="368640" crc="88b151bf" sha1="4b2dd04d34dad27719bfa3c91ad465e724e1adb9" offset="0" /> |
| 3969 | </dataarea> |
| 3970 | </part> |
| 3971 | </software> |
| 3972 | |
| 3973 | <software name="joy"> |
| 3974 | <description>Joy</description> |
| 3975 | <year>198?</year> |
| 3976 | <publisher><unknown></publisher> |
| 3977 | |
| 3978 | <part name="flop1" interface="floppy_5_25"> |
| 3979 | <dataarea name="flop" size="368640"> |
| 3980 | <rom name="joy.dsk" size="368640" crc="59dc043d" sha1="732a0d839884c2207a4c8aa680ee2aa825d38957" offset="0" /> |
| 3981 | </dataarea> |
| 3982 | </part> |
| 3983 | </software> |
| 3984 | |
| 3985 | <software name="jumpjack"> |
| 3986 | <description>Jumping Jack</description> |
| 3987 | <year>198?</year> |
| 3988 | <publisher><unknown></publisher> |
| 3989 | |
| 3990 | <part name="flop1" interface="floppy_5_25"> |
| 3991 | <dataarea name="flop" size="368640"> |
| 3992 | <rom name="jumpingjack.dsk" size="368640" crc="673c0c33" sha1="3d620796f4175275fc9d0da40eb8fbb18fb8dd43" offset="0" /> |
| 3993 | </dataarea> |
| 3994 | </part> |
| 3995 | </software> |
| 3996 | |
| 3997 | <software name="jupiter"> |
| 3998 | <description>Jupiter</description> |
| 3999 | <year>198?</year> |
| 4000 | <publisher>Péter Dörner</publisher> |
| 4001 | |
| 4002 | <part name="flop1" interface="floppy_5_25"> |
| 4003 | <dataarea name="flop" size="368640"> |
| 4004 | <rom name="jupiter.dsk" size="368640" crc="7abd132a" sha1="6fd70d5dd176ec13417f0c7033523718a9e91a78" offset="0" /> |
| 4005 | </dataarea> |
| 4006 | </part> |
| 4007 | </software> |
| 4008 | |
| 4009 | <software name="kalandfi"> |
| 4010 | <description>Kalandozások a Fizikában</description> |
| 4011 | <year>1987</year> |
| 4012 | <publisher>Octasoft</publisher> |
| 4013 | |
| 4014 | <part name="flop1" interface="floppy_5_25"> |
| 4015 | <dataarea name="flop" size="368640"> |
| 4016 | <rom name="kalandfi.dsk" size="368640" crc="fb54fb88" sha1="a246a05ca926dc4f67051b5343a696cfff9bca5b" offset="0" /> |
| 4017 | </dataarea> |
| 4018 | </part> |
| 4019 | </software> |
| 4020 | |
| 4021 | <software name="kalandoz"> |
| 4022 | <description>Kalandozz Velem!</description> |
| 4023 | <year>198?</year> |
| 4024 | <publisher><unknown></publisher> |
| 4025 | |
| 4026 | <part name="flop1" interface="floppy_5_25"> |
| 4027 | <dataarea name="flop" size="368640"> |
| 4028 | <rom name="kalandozz_velem.dsk" size="368640" crc="41f084d4" sha1="8d88d16e180e3f7ef093758136b5903d589dfd6d" offset="0" /> |
| 4029 | </dataarea> |
| 4030 | </part> |
| 4031 | </software> |
| 4032 | |
| 4033 | <software name="kalannen"> |
| 4034 | <description>Kalán néni puzzle</description> |
| 4035 | <year>1989</year> |
| 4036 | <publisher>Sume Software Service</publisher> |
| 4037 | |
| 4038 | <part name="flop1" interface="floppy_5_25"> |
| 4039 | <dataarea name="flop" size="368640"> |
| 4040 | <rom name="kalanneni.dsk" size="368640" crc="4b91f79a" sha1="984d727686c2279bca1c0f626c49dac5a1fb274e" offset="0" /> |
| 4041 | </dataarea> |
| 4042 | </part> |
| 4043 | </software> |
| 4044 | |
| 4045 | <software name="kapkodo"> |
| 4046 | <description>Kapkodó</description> |
| 4047 | <year>198?</year> |
| 4048 | <publisher>Zsolt</publisher> |
| 4049 | |
| 4050 | <part name="flop1" interface="floppy_5_25"> |
| 4051 | <dataarea name="flop" size="368640"> |
| 4052 | <rom name="kapkodo.dsk" size="368640" crc="7f0665f6" sha1="1e5d0e2d38d47cfdb758ae304fc3431a9bcc2267" offset="0" /> |
| 4053 | </dataarea> |
| 4054 | </part> |
| 4055 | </software> |
| 4056 | |
| 4057 | <software name="karakter"> |
| 4058 | <description>Karakter készítő</description> |
| 4059 | <year>1987</year> |
| 4060 | <publisher>Octasoft</publisher> |
| 4061 | |
| 4062 | <part name="flop1" interface="floppy_5_25"> |
| 4063 | <dataarea name="flop" size="368640"> |
| 4064 | <rom name="karakter.dsk" size="368640" crc="d4bf2e0e" sha1="e2efff44954cb42f875622e994f3124dd5f98fc3" offset="0" /> |
| 4065 | </dataarea> |
| 4066 | </part> |
| 4067 | </software> |
| 4068 | |
| 4069 | <software name="karate"> |
| 4070 | <description>Karate</description> |
| 4071 | <year>198?</year> |
| 4072 | <publisher><unknown></publisher> |
| 4073 | |
| 4074 | <part name="flop1" interface="floppy_5_25"> |
| 4075 | <dataarea name="flop" size="368640"> |
| 4076 | <rom name="karate.dsk" size="368640" crc="356c4ccb" sha1="c29415025a952da6e5430301c27e57d19bf46314" offset="0" /> |
| 4077 | </dataarea> |
| 4078 | </part> |
| 4079 | </software> |
| 4080 | |
| 4081 | <software name="kardhala"> |
| 4082 | <description>Kardhalak és Kincsek</description> |
| 4083 | <year>198?</year> |
| 4084 | <publisher><unknown></publisher> |
| 4085 | |
| 4086 | <part name="flop1" interface="floppy_5_25"> |
| 4087 | <dataarea name="flop" size="368640"> |
| 4088 | <rom name="kardhalakeskincsek.dsk" size="368640" crc="70985e44" sha1="4f9669b47605d2586c3c2d46a2f5eeaa21d7acc6" offset="0" /> |
| 4089 | </dataarea> |
| 4090 | </part> |
| 4091 | </software> |
| 4092 | |
| 4093 | <software name="kardhalf"> |
| 4094 | <description>Kardhalak és Kincsek (Different)</description> |
| 4095 | <year>198?</year> |
| 4096 | <publisher><unknown></publisher> |
| 4097 | |
| 4098 | <part name="flop1" interface="floppy_5_25"> |
| 4099 | <dataarea name="flop" size="368640"> |
| 4100 | <rom name="kardhf.dsk" size="368640" crc="0bc5b2c8" sha1="5747f41ac06a54593fc222d1b7c6c56e09c6d12d" offset="0" /> |
| 4101 | </dataarea> |
| 4102 | </part> |
| 4103 | </software> |
| 4104 | |
| 4105 | <software name="keljfelj"> |
| 4106 | <description>Keljfeljancsi</description> |
| 4107 | <year>198?</year> |
| 4108 | <publisher>STV</publisher> |
| 4109 | |
| 4110 | <part name="flop1" interface="floppy_5_25"> |
| 4111 | <dataarea name="flop" size="368640"> |
| 4112 | <rom name="keljfeljancsi.dsk" size="368640" crc="1e9317d3" sha1="21de1655907fc1df3496cfd800c7b30a66439757" offset="0" /> |
| 4113 | </dataarea> |
| 4114 | </part> |
| 4115 | </software> |
| 4116 | |
| 4117 | <software name="kem"> |
| 4118 | <description>Kém</description> |
| 4119 | <year>1988</year> |
| 4120 | <publisher>SPT</publisher> |
| 4121 | |
| 4122 | <part name="flop1" interface="floppy_5_25"> |
| 4123 | <dataarea name="flop" size="368640"> |
| 4124 | <rom name="kem.dsk" size="368640" crc="6acbb509" sha1="0ee53f33bbd01f1800a63d3019efe7e1df0d364d" offset="0" /> |
| 4125 | </dataarea> |
| 4126 | </part> |
| 4127 | </software> |
| 4128 | |
| 4129 | <software name="kemia"> |
| 4130 | <description>Boszorkánykonyha - Kalandozások a Kémiában</description> |
| 4131 | <year>1987</year> |
| 4132 | <publisher>Novotrade</publisher> |
| 4133 | |
| 4134 | <part name="flop1" interface="floppy_5_25"> |
| 4135 | <dataarea name="flop" size="368640"> |
| 4136 | <rom name="kemia.dsk" size="368640" crc="c17e7e7c" sha1="7f2b8f8d8a39d52e0a2a0804ad9a8d37a9ac4eb9" offset="0" /> |
| 4137 | </dataarea> |
| 4138 | </part> |
| 4139 | </software> |
| 4140 | |
| 4141 | <software name="kepek"> |
| 4142 | <description>Képek</description> |
| 4143 | <year>1987</year> |
| 4144 | <publisher>VGy</publisher> |
| 4145 | |
| 4146 | <part name="flop1" interface="floppy_5_25"> |
| 4147 | <dataarea name="flop" size="368640"> |
| 4148 | <rom name="kepek.dsk" size="368640" crc="cf829ec3" sha1="91c82f053b4ec7ad1bfe77f2842888c7232fc62d" offset="0" /> |
| 4149 | </dataarea> |
| 4150 | </part> |
| 4151 | </software> |
| 4152 | |
| 4153 | <software name="keprub"> |
| 4154 | <description>Keprub</description> |
| 4155 | <year>198?</year> |
| 4156 | <publisher><unknown></publisher> |
| 4157 | |
| 4158 | <part name="flop1" interface="floppy_5_25"> |
| 4159 | <dataarea name="flop" size="368640"> |
| 4160 | <rom name="keprub.dsk" size="368640" crc="3c70d715" sha1="b11f5ef24549ed88562eece798c5e4f58328d70a" offset="0" /> |
| 4161 | </dataarea> |
| 4162 | </part> |
| 4163 | </software> |
| 4164 | |
| 4165 | <software name="kepujsag"> |
| 4166 | <description>Képújság</description> |
| 4167 | <year>198?</year> |
| 4168 | <publisher><unknown></publisher> |
| 4169 | |
| 4170 | <part name="flop1" interface="floppy_5_25"> |
| 4171 | <dataarea name="flop" size="368640"> |
| 4172 | <rom name="kepujsag.dsk" size="368640" crc="b0637d71" sha1="89e38fbbe6a3863d28bc9aa29d787809172a8594" offset="0" /> |
| 4173 | </dataarea> |
| 4174 | </part> |
| 4175 | </software> |
| 4176 | |
| 4177 | <software name="keresd"> |
| 4178 | <description>Keresd a gyűrűt</description> |
| 4179 | <year>198?</year> |
| 4180 | <publisher>Software in LUX</publisher> |
| 4181 | |
| 4182 | <part name="flop1" interface="floppy_5_25"> |
| 4183 | <dataarea name="flop" size="368640"> |
| 4184 | <rom name="keresdagyurut.dsk" size="368640" crc="47105b8c" sha1="dbbd30c9cb02a5afd04567c25d98bc9200fe7c0f" offset="0" /> |
| 4185 | </dataarea> |
| 4186 | </part> |
| 4187 | </software> |
| 4188 | |
| 4189 | <software name="kigyo"> |
| 4190 | <description>Kígyó</description> |
| 4191 | <year>198?</year> |
| 4192 | <publisher><unknown></publisher> |
| 4193 | |
| 4194 | <part name="flop1" interface="floppy_5_25"> |
| 4195 | <dataarea name="flop" size="368640"> |
| 4196 | <rom name="kigyo.dsk" size="368640" crc="5202d07e" sha1="92922d3716fe54c02a4824bc840b856abf3c4a73" offset="0" /> |
| 4197 | </dataarea> |
| 4198 | </part> |
| 4199 | </software> |
| 4200 | |
| 4201 | <software name="kigyosja"> |
| 4202 | <description>Kigyós Játék</description> |
| 4203 | <year>198?</year> |
| 4204 | <publisher><unknown></publisher> |
| 4205 | |
| 4206 | <part name="flop1" interface="floppy_5_25"> |
| 4207 | <dataarea name="flop" size="368640"> |
| 4208 | <rom name="kigyosjatekv1.dsk" size="368640" crc="1c2cc376" sha1="72af320d6b665799d2329b10361b8bffb89398f6" offset="0" /> |
| 4209 | </dataarea> |
| 4210 | </part> |
| 4211 | </software> |
| 4212 | |
| 4213 | <software name="kigyosjaa" cloneof="kigyosja"> |
| 4214 | <description>Kigyós Játék (Alt)</description> |
| 4215 | <year>198?</year> |
| 4216 | <publisher><unknown></publisher> |
| 4217 | |
| 4218 | <part name="flop1" interface="floppy_5_25"> |
| 4219 | <dataarea name="flop" size="368640"> |
| 4220 | <rom name="kigyosjatekv2.dsk" size="368640" crc="48e87697" sha1="f300bbafab505a33e0f36adab38eb3fa4c2effd4" offset="0" /> |
| 4221 | </dataarea> |
| 4222 | </part> |
| 4223 | </software> |
| 4224 | |
| 4225 | <software name="kikzene"> |
| 4226 | <description>Kikstart - Zene</description> |
| 4227 | <year>198?</year> |
| 4228 | <publisher>STV</publisher> |
| 4229 | |
| 4230 | <part name="flop1" interface="floppy_5_25"> |
| 4231 | <dataarea name="flop" size="368640"> |
| 4232 | <rom name="kikzene.dsk" size="368640" crc="33ff38f9" sha1="fd3b70001588d49cdca7e025be53aae76267e10d" offset="0" /> |
| 4233 | </dataarea> |
| 4234 | </part> |
| 4235 | </software> |
| 4236 | |
| 4237 | <software name="kimento"> |
| 4238 | <description>Kimentő</description> |
| 4239 | <year>198?</year> |
| 4240 | <publisher><unknown></publisher> |
| 4241 | |
| 4242 | <part name="flop1" interface="floppy_5_25"> |
| 4243 | <dataarea name="flop" size="368640"> |
| 4244 | <rom name="kimento.dsk" size="368640" crc="3f536d06" sha1="64d352ddc72c677c81b24d32637d6017ad362db1" offset="0" /> |
| 4245 | </dataarea> |
| 4246 | </part> |
| 4247 | </software> |
| 4248 | |
| 4249 | <software name="kincsatl"> |
| 4250 | <description>Kincskereső (Atlas)</description> |
| 4251 | <year>1987</year> |
| 4252 | <publisher>Atlas</publisher> |
| 4253 | |
| 4254 | <part name="flop1" interface="floppy_5_25"> |
| 4255 | <dataarea name="flop" size="368640"> |
| 4256 | <rom name="kincsatl.dsk" size="368640" crc="18f0b1a7" sha1="1c5316da9ecaa8f1c508e91b70824d1d4574a66e" offset="0" /> |
| 4257 | </dataarea> |
| 4258 | </part> |
| 4259 | </software> |
| 4260 | |
| 4261 | <software name="kincsker"> |
| 4262 | <description>Kincskereső</description> |
| 4263 | <year>198?</year> |
| 4264 | <publisher><unknown></publisher> |
| 4265 | |
| 4266 | <part name="flop1" interface="floppy_5_25"> |
| 4267 | <dataarea name="flop" size="368640"> |
| 4268 | <rom name="kincsker.dsk" size="368640" crc="bcf771a3" sha1="2f13648b804b9bdcca02c9154699ceb4e40d2b89" offset="0" /> |
| 4269 | </dataarea> |
| 4270 | </part> |
| 4271 | </software> |
| 4272 | |
| 4273 | <software name="kiscsava"> |
| 4274 | <description>Kis Csavargó</description> |
| 4275 | <year>198?</year> |
| 4276 | <publisher><unknown></publisher> |
| 4277 | |
| 4278 | <part name="flop1" interface="floppy_5_25"> |
| 4279 | <dataarea name="flop" size="368640"> |
| 4280 | <rom name="kiscsavargo.dsk" size="368640" crc="d3213065" sha1="e52a1f72c43a0efa138dfe302ab38a918fd50109" offset="0" /> |
| 4281 | </dataarea> |
| 4282 | </part> |
| 4283 | </software> |
| 4284 | |
| 4285 | <software name="kisersil"> |
| 4286 | <description>Kísértetkastély 1</description> |
| 4287 | <year>198?</year> |
| 4288 | <publisher>Software in LUX</publisher> |
| 4289 | |
| 4290 | <part name="flop1" interface="floppy_5_25"> |
| 4291 | <dataarea name="flop" size="368640"> |
| 4292 | <rom name="kisertet1.dsk" size="368640" crc="b5a52864" sha1="8bf0fffa8257493bbe94e585d2d530a70161f43e" offset="0" /> |
| 4293 | </dataarea> |
| 4294 | </part> |
| 4295 | </software> |
| 4296 | |
| 4297 | <software name="kisertet"> |
| 4298 | <description>Kísértetkastély</description> |
| 4299 | <year>1989</year> |
| 4300 | <publisher>Attila Canjavec</publisher> |
| 4301 | |
| 4302 | <part name="flop1" interface="floppy_5_25"> |
| 4303 | <dataarea name="flop" size="368640"> |
| 4304 | <rom name="kisertetkastelyv1.dsk" size="368640" crc="d1891cf8" sha1="c52971b50a01a6318c8e755c0b02ae2f82e080be" offset="0" /> |
| 4305 | </dataarea> |
| 4306 | </part> |
| 4307 | </software> |
| 4308 | |
| 4309 | <software name="kiserteta" cloneof="kisertet"> |
| 4310 | <description>Kísértetkastély (Alt)</description> |
| 4311 | <year>1989</year> |
| 4312 | <publisher>Attila Canjavec</publisher> |
| 4313 | |
| 4314 | <part name="flop1" interface="floppy_5_25"> |
| 4315 | <dataarea name="flop" size="368640"> |
| 4316 | <rom name="kisertetkastelyv2.dsk" size="368640" crc="87b931b0" sha1="cd4be66c2c4e9814a8a7f16d0bd8524ab4ed2b65" offset="0" /> |
| 4317 | </dataarea> |
| 4318 | </part> |
| 4319 | </software> |
| 4320 | |
| 4321 | <software name="kisertetb" cloneof="kisertet"> |
| 4322 | <description>Kísértetkastély (Alt 2)</description> |
| 4323 | <year>1989</year> |
| 4324 | <publisher>Attila Canjavec</publisher> |
| 4325 | |
| 4326 | <part name="flop1" interface="floppy_5_25"> |
| 4327 | <dataarea name="flop" size="368640"> |
| 4328 | <rom name="kisertetkastelyv3.dsk" size="368640" crc="9982a4b7" sha1="7de873f25e6c801a6b672b975ca25ff8cd3cf7d9" offset="0" /> |
| 4329 | </dataarea> |
| 4330 | </part> |
| 4331 | </software> |
| 4332 | |
| 4333 | <software name="kismozdo"> |
| 4334 | <description>Kismozdony</description> |
| 4335 | <year>198?</year> |
| 4336 | <publisher>STV</publisher> |
| 4337 | |
| 4338 | <part name="flop1" interface="floppy_5_25"> |
| 4339 | <dataarea name="flop" size="368640"> |
| 4340 | <rom name="kismozdony.dsk" size="368640" crc="0948f8b7" sha1="d7280c6cc8bf4db7df73ca73df237be2ee82b828" offset="0" /> |
| 4341 | </dataarea> |
| 4342 | </part> |
| 4343 | </software> |
| 4344 | |
| 4345 | <software name="kitoltes"> |
| 4346 | <description>Kitöltés</description> |
| 4347 | <year>198?</year> |
| 4348 | <publisher><unknown></publisher> |
| 4349 | |
| 4350 | <part name="flop1" interface="floppy_5_25"> |
| 4351 | <dataarea name="flop" size="368640"> |
| 4352 | <rom name="kitoltes.dsk" size="368640" crc="d738746c" sha1="fbb5ba1400e7a86133b8c58ade73411d378f2674" offset="0" /> |
| 4353 | </dataarea> |
| 4354 | </part> |
| 4355 | </software> |
| 4356 | |
| 4357 | <software name="knemet11"> |
| 4358 | <description>Képes Német 1-1 - Szófelismerés</description> |
| 4359 | <year>198?</year> |
| 4360 | <publisher><unknown></publisher> |
| 4361 | |
| 4362 | <part name="flop1" interface="floppy_5_25"> |
| 4363 | <dataarea name="flop" size="368640"> |
| 4364 | <rom name="knemet11.dsk" size="368640" crc="04d651a8" sha1="69a668fd1bd84be54aa58ac39bf863c51f6c005c" offset="0" /> |
| 4365 | </dataarea> |
| 4366 | </part> |
| 4367 | </software> |
| 4368 | |
| 4369 | <software name="knemet12"> |
| 4370 | <description>Képes Német 1-2 - Szófelismerés</description> |
| 4371 | <year>198?</year> |
| 4372 | <publisher><unknown></publisher> |
| 4373 | |
| 4374 | <part name="flop1" interface="floppy_5_25"> |
| 4375 | <dataarea name="flop" size="368640"> |
| 4376 | <rom name="knemet12.dsk" size="368640" crc="70881a05" sha1="63dc6ccf62b5fbcdf5239fc0176bb03275895539" offset="0" /> |
| 4377 | </dataarea> |
| 4378 | </part> |
| 4379 | </software> |
| 4380 | |
| 4381 | <software name="knemet13"> |
| 4382 | <description>Képes Német 1-3 - Szófelismerés</description> |
| 4383 | <year>198?</year> |
| 4384 | <publisher><unknown></publisher> |
| 4385 | |
| 4386 | <part name="flop1" interface="floppy_5_25"> |
| 4387 | <dataarea name="flop" size="368640"> |
| 4388 | <rom name="knemet13.dsk" size="368640" crc="01099321" sha1="11c9101ad167b1330f24ee4f9e103f4d63fa8a4c" offset="0" /> |
| 4389 | </dataarea> |
| 4390 | </part> |
| 4391 | </software> |
| 4392 | |
| 4393 | <software name="knemet14"> |
| 4394 | <description>Képes Német 1-4 - Szófelismerés</description> |
| 4395 | <year>198?</year> |
| 4396 | <publisher><unknown></publisher> |
| 4397 | |
| 4398 | <part name="flop1" interface="floppy_5_25"> |
| 4399 | <dataarea name="flop" size="368640"> |
| 4400 | <rom name="knemet14.dsk" size="368640" crc="b4064713" sha1="cae6a0371fae44034fb7771bcdfc5c98070dd1b8" offset="0" /> |
| 4401 | </dataarea> |
| 4402 | </part> |
| 4403 | </software> |
| 4404 | |
| 4405 | <software name="knemet15"> |
| 4406 | <description>Képes Német 1-5 - Szófelismerés</description> |
| 4407 | <year>198?</year> |
| 4408 | <publisher><unknown></publisher> |
| 4409 | |
| 4410 | <part name="flop1" interface="floppy_5_25"> |
| 4411 | <dataarea name="flop" size="368640"> |
| 4412 | <rom name="knemet15.dsk" size="368640" crc="de5d4c90" sha1="f5ff92ddec2de81e6228aade43c4bf27bfac66ff" offset="0" /> |
| 4413 | </dataarea> |
| 4414 | </part> |
| 4415 | </software> |
| 4416 | |
| 4417 | <software name="knemet21"> |
| 4418 | <description>Képes Német 2-1 - Szófelismerés</description> |
| 4419 | <year>198?</year> |
| 4420 | <publisher><unknown></publisher> |
| 4421 | |
| 4422 | <part name="flop1" interface="floppy_5_25"> |
| 4423 | <dataarea name="flop" size="368640"> |
| 4424 | <rom name="knemet21.dsk" size="368640" crc="94ea8482" sha1="1d0168a552fd8a5191592ddf8d17ce85eda72c0b" offset="0" /> |
| 4425 | </dataarea> |
| 4426 | </part> |
| 4427 | </software> |
| 4428 | |
| 4429 | <software name="knemet22"> |
| 4430 | <description>Képes Német 2-2 - Szófelismerés</description> |
| 4431 | <year>198?</year> |
| 4432 | <publisher><unknown></publisher> |
| 4433 | |
| 4434 | <part name="flop1" interface="floppy_5_25"> |
| 4435 | <dataarea name="flop" size="368640"> |
| 4436 | <rom name="knemet22.dsk" size="368640" crc="5f4e78a5" sha1="62f6999e7f42bcdb8ed1c82fe5dc9d967cbe6bd9" offset="0" /> |
| 4437 | </dataarea> |
| 4438 | </part> |
| 4439 | </software> |
| 4440 | |
| 4441 | <software name="knemet23"> |
| 4442 | <description>Képes Német 2-3 - Szófelismerés</description> |
| 4443 | <year>198?</year> |
| 4444 | <publisher><unknown></publisher> |
| 4445 | |
| 4446 | <part name="flop1" interface="floppy_5_25"> |
| 4447 | <dataarea name="flop" size="368640"> |
| 4448 | <rom name="knemet23.dsk" size="368640" crc="b0fdf6a7" sha1="9d614fa19262249a8ebc9124ad911fa0d32b09d3" offset="0" /> |
| 4449 | </dataarea> |
| 4450 | </part> |
| 4451 | </software> |
| 4452 | |
| 4453 | <software name="knemet24"> |
| 4454 | <description>Képes Német 2-4 - Szófelismerés</description> |
| 4455 | <year>198?</year> |
| 4456 | <publisher><unknown></publisher> |
| 4457 | |
| 4458 | <part name="flop1" interface="floppy_5_25"> |
| 4459 | <dataarea name="flop" size="368640"> |
| 4460 | <rom name="knemet24.dsk" size="368640" crc="8a21b4d1" sha1="2fe8d62a05f93e527228538a3479a68e1fafa39e" offset="0" /> |
| 4461 | </dataarea> |
| 4462 | </part> |
| 4463 | </software> |
| 4464 | |
| 4465 | <software name="knemet25"> |
| 4466 | <description>Képes Német 2-5 - Szófelismerés</description> |
| 4467 | <year>198?</year> |
| 4468 | <publisher><unknown></publisher> |
| 4469 | |
| 4470 | <part name="flop1" interface="floppy_5_25"> |
| 4471 | <dataarea name="flop" size="368640"> |
| 4472 | <rom name="knemet25.dsk" size="368640" crc="7ddc67c3" sha1="4663f171ce70e2ee5eabdd75806015c395f657ae" offset="0" /> |
| 4473 | </dataarea> |
| 4474 | </part> |
| 4475 | </software> |
| 4476 | |
| 4477 | <software name="knemet31"> |
| 4478 | <description>Képes Német 3-1 - Der, Die Das</description> |
| 4479 | <year>198?</year> |
| 4480 | <publisher><unknown></publisher> |
| 4481 | |
| 4482 | <part name="flop1" interface="floppy_5_25"> |
| 4483 | <dataarea name="flop" size="368640"> |
| 4484 | <rom name="knemet31.dsk" size="368640" crc="fb513d65" sha1="65e3efc96880c69c39a8af367ec720ff90cc6f77" offset="0" /> |
| 4485 | </dataarea> |
| 4486 | </part> |
| 4487 | </software> |
| 4488 | |
| 4489 | <software name="knemet32"> |
| 4490 | <description>Képes Német 3-2 - Der, Die Das</description> |
| 4491 | <year>198?</year> |
| 4492 | <publisher><unknown></publisher> |
| 4493 | |
| 4494 | <part name="flop1" interface="floppy_5_25"> |
| 4495 | <dataarea name="flop" size="368640"> |
| 4496 | <rom name="knemet32.dsk" size="368640" crc="1b6bc8d1" sha1="d0ca6ea21fb24b0833e659adfb328ecb55f87a61" offset="0" /> |
| 4497 | </dataarea> |
| 4498 | </part> |
| 4499 | </software> |
| 4500 | |
| 4501 | <software name="knemet33"> |
| 4502 | <description>Képes Német 3-3 - Der, Die Das</description> |
| 4503 | <year>198?</year> |
| 4504 | <publisher><unknown></publisher> |
| 4505 | |
| 4506 | <part name="flop1" interface="floppy_5_25"> |
| 4507 | <dataarea name="flop" size="368640"> |
| 4508 | <rom name="knemet33.dsk" size="368640" crc="0aa0e921" sha1="63ae1e9877c5441bc40e79d64f3bd32b3b48401b" offset="0" /> |
| 4509 | </dataarea> |
| 4510 | </part> |
| 4511 | </software> |
| 4512 | |
| 4513 | <software name="knemet34"> |
| 4514 | <description>Képes Német 3-4 - Der, Die Das</description> |
| 4515 | <year>198?</year> |
| 4516 | <publisher><unknown></publisher> |
| 4517 | |
| 4518 | <part name="flop1" interface="floppy_5_25"> |
| 4519 | <dataarea name="flop" size="368640"> |
| 4520 | <rom name="knemet34.dsk" size="368640" crc="83bb5bc7" sha1="222d777e52e2ca96aaffa1c25e1afa802f4acd2c" offset="0" /> |
| 4521 | </dataarea> |
| 4522 | </part> |
| 4523 | </software> |
| 4524 | |
| 4525 | <software name="knemet35"> |
| 4526 | <description>Képes Német 3-5 - Der, Die Das</description> |
| 4527 | <year>198?</year> |
| 4528 | <publisher><unknown></publisher> |
| 4529 | |
| 4530 | <part name="flop1" interface="floppy_5_25"> |
| 4531 | <dataarea name="flop" size="368640"> |
| 4532 | <rom name="knemet35.dsk" size="368640" crc="4951173d" sha1="37b4f78a7f018ade206defe1d6f129f80f111d8e" offset="0" /> |
| 4533 | </dataarea> |
| 4534 | </part> |
| 4535 | </software> |
| 4536 | |
| 4537 | <software name="knemet41"> |
| 4538 | <description>Képes Német 4-1 - Ja Oder Nein</description> |
| 4539 | <year>198?</year> |
| 4540 | <publisher><unknown></publisher> |
| 4541 | |
| 4542 | <part name="flop1" interface="floppy_5_25"> |
| 4543 | <dataarea name="flop" size="368640"> |
| 4544 | <rom name="knemet41.dsk" size="368640" crc="e7b34c1c" sha1="559bf3b0799c5002587fb9bc82d8f0997fb51dfd" offset="0" /> |
| 4545 | </dataarea> |
| 4546 | </part> |
| 4547 | </software> |
| 4548 | |
| 4549 | <software name="knemet42"> |
| 4550 | <description>Képes Német 4-2 - Ja Oder Nein</description> |
| 4551 | <year>198?</year> |
| 4552 | <publisher><unknown></publisher> |
| 4553 | |
| 4554 | <part name="flop1" interface="floppy_5_25"> |
| 4555 | <dataarea name="flop" size="368640"> |
| 4556 | <rom name="knemet42.dsk" size="368640" crc="0423165a" sha1="46b142a11990f1595d22d0c51b97119fd0fc5a40" offset="0" /> |
| 4557 | </dataarea> |
| 4558 | </part> |
| 4559 | </software> |
| 4560 | |
| 4561 | <software name="knemet43"> |
| 4562 | <description>Képes Német 4-3 - Ja Oder Nein</description> |
| 4563 | <year>198?</year> |
| 4564 | <publisher><unknown></publisher> |
| 4565 | |
| 4566 | <part name="flop1" interface="floppy_5_25"> |
| 4567 | <dataarea name="flop" size="368640"> |
| 4568 | <rom name="knemet43.dsk" size="368640" crc="eaaee9ba" sha1="c07c9a18c024b437262b92c3ed07e1b1fe77010d" offset="0" /> |
| 4569 | </dataarea> |
| 4570 | </part> |
| 4571 | </software> |
| 4572 | |
| 4573 | <software name="knemet44"> |
| 4574 | <description>Képes Német 4-4 - Ja Oder Nein</description> |
| 4575 | <year>198?</year> |
| 4576 | <publisher><unknown></publisher> |
| 4577 | |
| 4578 | <part name="flop1" interface="floppy_5_25"> |
| 4579 | <dataarea name="flop" size="368640"> |
| 4580 | <rom name="knemet44.dsk" size="368640" crc="28723bf0" sha1="37b3cc3a7dc1a004f561626840e620efc7f4a1aa" offset="0" /> |
| 4581 | </dataarea> |
| 4582 | </part> |
| 4583 | </software> |
| 4584 | |
| 4585 | <software name="knemet45"> |
| 4586 | <description>Képes Német 4-5 - Ja Oder Nein</description> |
| 4587 | <year>198?</year> |
| 4588 | <publisher><unknown></publisher> |
| 4589 | |
| 4590 | <part name="flop1" interface="floppy_5_25"> |
| 4591 | <dataarea name="flop" size="368640"> |
| 4592 | <rom name="knemet45.dsk" size="368640" crc="7b139737" sha1="a293d32779e5a6fcb8e457f94e8acf93af9b29a8" offset="0" /> |
| 4593 | </dataarea> |
| 4594 | </part> |
| 4595 | </software> |
| 4596 | |
| 4597 | <software name="knightlo"> |
| 4598 | <description>Knight Lore</description> |
| 4599 | <year>1985</year> |
| 4600 | <publisher>'a' Studio</publisher> |
| 4601 | |
| 4602 | <part name="flop1" interface="floppy_5_25"> |
| 4603 | <dataarea name="flop" size="368640"> |
| 4604 | <rom name="knightlore.dsk" size="368640" crc="cf5d6bf5" sha1="2093aac40dba54b8b1a79d95b8f23377df1af634" offset="0" /> |
| 4605 | </dataarea> |
| 4606 | </part> |
| 4607 | </software> |
| 4608 | |
| 4609 | <software name="knightloa" cloneof="knightlo"> |
| 4610 | <description>Knight Lore (Alt)</description> |
| 4611 | <year>1985</year> |
| 4612 | <publisher>'a' Studio</publisher> |
| 4613 | |
| 4614 | <part name="flop1" interface="floppy_5_25"> |
| 4615 | <dataarea name="flop" size="368640"> |
| 4616 | <rom name="knightv2.dsk" size="368640" crc="1e9c98d6" sha1="cef586695001c7ae2b2833c62025a9f984300343" offset="0" /> |
| 4617 | </dataarea> |
| 4618 | </part> |
| 4619 | </software> |
| 4620 | |
| 4621 | <software name="knkdemo"> |
| 4622 | <description>K&K Soft Szinuszdemo</description> |
| 4623 | <year>198?</year> |
| 4624 | <publisher>K&K Soft</publisher> |
| 4625 | |
| 4626 | <part name="flop1" interface="floppy_5_25"> |
| 4627 | <dataarea name="flop" size="368640"> |
| 4628 | <rom name="knksoft.dsk" size="368640" crc="330ed3b8" sha1="bfc3a7843db0121a5cccf81cb5c1d382946c2412" offset="0" /> |
| 4629 | </dataarea> |
| 4630 | </part> |
| 4631 | </software> |
| 4632 | |
| 4633 | <software name="kobanya"> |
| 4634 | <description>Kőbánya</description> |
| 4635 | <year>198?</year> |
| 4636 | <publisher><unknown></publisher> |
| 4637 | |
| 4638 | <part name="flop1" interface="floppy_5_25"> |
| 4639 | <dataarea name="flop" size="368640"> |
| 4640 | <rom name="kobanya.dsk" size="368640" crc="d3cf2e11" sha1="616ea697d0ccbb6cf8b9d81db0dd74303f9a5aaf" offset="0" /> |
| 4641 | </dataarea> |
| 4642 | </part> |
| 4643 | </software> |
| 4644 | |
| 4645 | <software name="kocka"> |
| 4646 | <description>Kocka</description> |
| 4647 | <year>198?</year> |
| 4648 | <publisher><unknown></publisher> |
| 4649 | |
| 4650 | <part name="flop1" interface="floppy_5_25"> |
| 4651 | <dataarea name="flop" size="368640"> |
| 4652 | <rom name="kocka.dsk" size="368640" crc="c030cd26" sha1="ee2a45ad2ffbd5afe269e8d2d1529715b6f21247" offset="0" /> |
| 4653 | </dataarea> |
| 4654 | </part> |
| 4655 | </software> |
| 4656 | |
| 4657 | <software name="kocka98"> |
| 4658 | <description>Kocka98</description> |
| 4659 | <year>198?</year> |
| 4660 | <publisher><unknown></publisher> |
| 4661 | |
| 4662 | <part name="flop1" interface="floppy_5_25"> |
| 4663 | <dataarea name="flop" size="368640"> |
| 4664 | <rom name="kocka98.dsk" size="368640" crc="0471280a" sha1="1d9c9fe166ed34ea0f9f02ba1ee897048371cb82" offset="0" /> |
| 4665 | </dataarea> |
| 4666 | </part> |
| 4667 | </software> |
| 4668 | |
| 4669 | <software name="kockapok"> |
| 4670 | <description>Kockapóker</description> |
| 4671 | <year>1986</year> |
| 4672 | <publisher>Unisoft GMK</publisher> |
| 4673 | |
| 4674 | <part name="flop1" interface="floppy_5_25"> |
| 4675 | <dataarea name="flop" size="368640"> |
| 4676 | <rom name="kockapoker.dsk" size="368640" crc="a5752a15" sha1="335c6f0d34dbc1decbc5791395fcf3e83a991f07" offset="0" /> |
| 4677 | </dataarea> |
| 4678 | </part> |
| 4679 | </software> |
| 4680 | |
| 4681 | <software name="kockapokj" cloneof="kockapok"> |
| 4682 | <description>Kockapóker (Joystick)</description> |
| 4683 | <year>1986</year> |
| 4684 | <publisher>Unisoft GMK</publisher> |
| 4685 | |
| 4686 | <part name="flop1" interface="floppy_5_25"> |
| 4687 | <dataarea name="flop" size="368640"> |
| 4688 | <rom name="kockapokerjoy.dsk" size="368640" crc="e8b7a446" sha1="d738c6d83d3fb6f3321213f93272b80fb1a22ca1" offset="0" /> |
| 4689 | </dataarea> |
| 4690 | </part> |
| 4691 | </software> |
| 4692 | |
| 4693 | <software name="komparsz"> |
| 4694 | <description>Komparátor Számítás</description> |
| 4695 | <year>198?</year> |
| 4696 | <publisher><unknown></publisher> |
| 4697 | |
| 4698 | <part name="flop1" interface="floppy_5_25"> |
| 4699 | <dataarea name="flop" size="368640"> |
| 4700 | <rom name="komparsz.dsk" size="368640" crc="992c4410" sha1="bd2ba6f3e96bb58c7264f7304441aac25267dddf" offset="0" /> |
| 4701 | </dataarea> |
| 4702 | </part> |
| 4703 | </software> |
| 4704 | |
| 4705 | <software name="kormoci"> |
| 4706 | <description>Körmöci Arany</description> |
| 4707 | <year>198?</year> |
| 4708 | <publisher><unknown></publisher> |
| 4709 | |
| 4710 | <part name="flop1" interface="floppy_5_25"> |
| 4711 | <dataarea name="flop" size="368640"> |
| 4712 | <rom name="kormociarany.dsk" size="368640" crc="6b8d2743" sha1="592250fb90f2876c7b4596b3017b5ced496f205e" offset="0" /> |
| 4713 | </dataarea> |
| 4714 | </part> |
| 4715 | </software> |
| 4716 | |
| 4717 | <software name="korok"> |
| 4718 | <description>Körök</description> |
| 4719 | <year>198?</year> |
| 4720 | <publisher><unknown></publisher> |
| 4721 | |
| 4722 | <part name="flop1" interface="floppy_5_25"> |
| 4723 | <dataarea name="flop" size="368640"> |
| 4724 | <rom name="korok.dsk" size="368640" crc="60124740" sha1="b2bf6e520fe1a331cce842f67c113667f31702fb" offset="0" /> |
| 4725 | </dataarea> |
| 4726 | </part> |
| 4727 | </software> |
| 4728 | |
| 4729 | <software name="korong"> |
| 4730 | <description>Korongbiliárd</description> |
| 4731 | <year>198?</year> |
| 4732 | <publisher>Software in LUX</publisher> |
| 4733 | |
| 4734 | <part name="flop1" interface="floppy_5_25"> |
| 4735 | <dataarea name="flop" size="368640"> |
| 4736 | <rom name="korong.dsk" size="368640" crc="54f8d41f" sha1="5d84684bb7211ad2f49914c53213db84a76f66ca" offset="0" /> |
| 4737 | </dataarea> |
| 4738 | </part> |
| 4739 | </software> |
| 4740 | |
| 4741 | <software name="korvonal"> |
| 4742 | <description>Körvonal</description> |
| 4743 | <year>198?</year> |
| 4744 | <publisher>K&K Soft</publisher> |
| 4745 | |
| 4746 | <part name="flop1" interface="floppy_5_25"> |
| 4747 | <dataarea name="flop" size="368640"> |
| 4748 | <rom name="korvonal.dsk" size="368640" crc="3f1d463e" sha1="88e783d5f13c00f64969cffb781796634d4914e4" offset="0" /> |
| 4749 | </dataarea> |
| 4750 | </part> |
| 4751 | </software> |
| 4752 | |
| 4753 | <software name="krok"> |
| 4754 | <description>Krok</description> |
| 4755 | <year>198?</year> |
| 4756 | <publisher><unknown></publisher> |
| 4757 | |
| 4758 | <part name="flop1" interface="floppy_5_25"> |
| 4759 | <dataarea name="flop" size="368640"> |
| 4760 | <rom name="krokv1.dsk" size="368640" crc="2867a806" sha1="8fcce1104a677698332bad6f7b542dcb90f15b8f" offset="0" /> |
| 4761 | </dataarea> |
| 4762 | </part> |
| 4763 | </software> |
| 4764 | |
| 4765 | <software name="kroka" cloneof="krok"> |
| 4766 | <description>Krok (Alt)</description> |
| 4767 | <year>198?</year> |
| 4768 | <publisher><unknown></publisher> |
| 4769 | |
| 4770 | <part name="flop1" interface="floppy_5_25"> |
| 4771 | <dataarea name="flop" size="368640"> |
| 4772 | <rom name="krokv2.dsk" size="368640" crc="1dd3097b" sha1="61294ac6655a9cb5807d1a2200c80a78e0327269" offset="0" /> |
| 4773 | </dataarea> |
| 4774 | </part> |
| 4775 | </software> |
| 4776 | |
| 4777 | <software name="kugli"> |
| 4778 | <description>Kugli</description> |
| 4779 | <year>198?</year> |
| 4780 | <publisher><unknown></publisher> |
| 4781 | |
| 4782 | <part name="flop1" interface="floppy_5_25"> |
| 4783 | <dataarea name="flop" size="368640"> |
| 4784 | <rom name="kugli.dsk" size="368640" crc="e55dc4fb" sha1="0f643b81ae3924f5267218c44ab56dcb32ad75b6" offset="0" /> |
| 4785 | </dataarea> |
| 4786 | </part> |
| 4787 | </software> |
| 4788 | |
| 4789 | <software name="kukucs"> |
| 4790 | <description>Kukucs</description> |
| 4791 | <year>1987</year> |
| 4792 | <publisher>King ec Software</publisher> |
| 4793 | |
| 4794 | <part name="flop1" interface="floppy_5_25"> |
| 4795 | <dataarea name="flop" size="368640"> |
| 4796 | <rom name="kukucs.dsk" size="368640" crc="06c5a2af" sha1="29c663aeb43538fcc1076fef3362fdfe10972cca" offset="0" /> |
| 4797 | </dataarea> |
| 4798 | </part> |
| 4799 | </software> |
| 4800 | |
| 4801 | <software name="kulcs"> |
| 4802 | <description>Kulcs</description> |
| 4803 | <year>198?</year> |
| 4804 | <publisher><unknown></publisher> |
| 4805 | |
| 4806 | <part name="flop1" interface="floppy_5_25"> |
| 4807 | <dataarea name="flop" size="368640"> |
| 4808 | <rom name="kulcs.dsk" size="368640" crc="e4561aee" sha1="971b05f18007d2cb78352b4719aa07d88897805a" offset="0" /> |
| 4809 | </dataarea> |
| 4810 | </part> |
| 4811 | </software> |
| 4812 | |
| 4813 | <software name="kulcsjat" cloneof="kulcs"> |
| 4814 | <description>Kulcs Játék</description> |
| 4815 | <year>198?</year> |
| 4816 | <publisher><unknown></publisher> |
| 4817 | |
| 4818 | <part name="flop1" interface="floppy_5_25"> |
| 4819 | <dataarea name="flop" size="368640"> |
| 4820 | <rom name="kulcsjatek.dsk" size="368640" crc="27bda7f6" sha1="863bff36cc4f86e9d64cf4c327cd9b55a14a53e0" offset="0" /> |
| 4821 | </dataarea> |
| 4822 | </part> |
| 4823 | </software> |
| 4824 | |
| 4825 | <software name="kulcshaz"> |
| 4826 | <description>Kulcsház</description> |
| 4827 | <year>198?</year> |
| 4828 | <publisher>K&K Soft</publisher> |
| 4829 | |
| 4830 | <part name="flop1" interface="floppy_5_25"> |
| 4831 | <dataarea name="flop" size="368640"> |
| 4832 | <rom name="kulcshaz.dsk" size="368640" crc="b982cd65" sha1="1ab9f988e0257430640928e194c81fe22ccdbc97" offset="0" /> |
| 4833 | </dataarea> |
| 4834 | </part> |
| 4835 | </software> |
| 4836 | |
| 4837 | <software name="kulcsha2"> |
| 4838 | <description>Kulcsház 2</description> |
| 4839 | <year>198?</year> |
| 4840 | <publisher>K&K Soft</publisher> |
| 4841 | |
| 4842 | <part name="flop1" interface="floppy_5_25"> |
| 4843 | <dataarea name="flop" size="368640"> |
| 4844 | <rom name="kulcshaz2.dsk" size="368640" crc="be503833" sha1="b07b23bdb7774d9414b5be4ebe2babffce1429eb" offset="0" /> |
| 4845 | </dataarea> |
| 4846 | </part> |
| 4847 | </software> |
| 4848 | |
| 4849 | <software name="kwfb"> |
| 4850 | <description>Keywords + F-BASIC 1.0</description> |
| 4851 | <year>1987</year> |
| 4852 | <publisher>Péter Bereczky</publisher> |
| 4853 | |
| 4854 | <part name="flop1" interface="floppy_5_25"> |
| 4855 | <dataarea name="flop" size="368640"> |
| 4856 | <rom name="kwfb.dsk" size="368640" crc="7e8e8445" sha1="81f2001bf6daae10a65480ebb72b570616f49b33" offset="0" /> |
| 4857 | </dataarea> |
| 4858 | </part> |
| 4859 | </software> |
| 4860 | |
| 4861 | <software name="lablesli"> |
| 4862 | <description>Labirintus Leslie</description> |
| 4863 | <year>1987</year> |
| 4864 | <publisher>Zsolt Dobrovics</publisher> |
| 4865 | |
| 4866 | <part name="flop1" interface="floppy_5_25"> |
| 4867 | <dataarea name="flop" size="368640"> |
| 4868 | <rom name="lab_lesl.dsk" size="368640" crc="5a12cff2" sha1="d08bb9d6cde063553db5b032dc955521e071af11" offset="0" /> |
| 4869 | </dataarea> |
| 4870 | </part> |
| 4871 | </software> |
| 4872 | |
| 4873 | <software name="labizold"> |
| 4874 | <description>Labirintus (Zoltán Gugi)</description> |
| 4875 | <year>198?</year> |
| 4876 | <publisher>Zoltán Gugi</publisher> |
| 4877 | |
| 4878 | <part name="flop1" interface="floppy_5_25"> |
| 4879 | <dataarea name="flop" size="368640"> |
| 4880 | <rom name="lab_zold.dsk" size="368640" crc="bf0efe93" sha1="bb079eabc0d4ae9f9f0a70db0fd5043d6fca100b" offset="0" /> |
| 4881 | </dataarea> |
| 4882 | </part> |
| 4883 | </software> |
| 4884 | |
| 4885 | <software name="labirint"> |
| 4886 | <description>Labirintus</description> |
| 4887 | <year>198?</year> |
| 4888 | <publisher><unknown></publisher> |
| 4889 | |
| 4890 | <part name="flop1" interface="floppy_5_25"> |
| 4891 | <dataarea name="flop" size="368640"> |
| 4892 | <rom name="labirint.dsk" size="368640" crc="ffb06c68" sha1="2e190011d8ed826845be9889a7acab90d8e6edb1" offset="0" /> |
| 4893 | </dataarea> |
| 4894 | </part> |
| 4895 | </software> |
| 4896 | |
| 4897 | <software name="labikigy"> |
| 4898 | <description>Labirintus - Kígyós</description> |
| 4899 | <year>198?</year> |
| 4900 | <publisher><unknown></publisher> |
| 4901 | |
| 4902 | <part name="flop1" interface="floppy_5_25"> |
| 4903 | <dataarea name="flop" size="368640"> |
| 4904 | <rom name="labirintus-kigyo.dsk" size="368640" crc="b3dd7235" sha1="795145247e03b7b24d5aea4015c7e3a3ee5db9d4" offset="0" /> |
| 4905 | </dataarea> |
| 4906 | </part> |
| 4907 | </software> |
| 4908 | |
| 4909 | <software name="labiri3d"> |
| 4910 | <description>Labirintus (3D)</description> |
| 4911 | <year>198?</year> |
| 4912 | <publisher>Zoltán Gugi</publisher> |
| 4913 | |
| 4914 | <part name="flop1" interface="floppy_5_25"> |
| 4915 | <dataarea name="flop" size="368640"> |
| 4916 | <rom name="labirintus.dsk" size="368640" crc="e9d7ab1b" sha1="006d1cc41cf34009b32356999ddd350b5c055253" offset="0" /> |
| 4917 | </dataarea> |
| 4918 | </part> |
| 4919 | </software> |
| 4920 | |
| 4921 | <software name="laddman"> |
| 4922 | <description>Ladderman</description> |
| 4923 | <year>1989</year> |
| 4924 | <publisher>Berysoft</publisher> |
| 4925 | |
| 4926 | <part name="flop1" interface="floppy_5_25"> |
| 4927 | <dataarea name="flop" size="368640"> |
| 4928 | <rom name="ladderman.dsk" size="368640" crc="7c28b953" sha1="4a533baa384af18de3e2cdbb717ef87e2d6871f9" offset="0" /> |
| 4929 | </dataarea> |
| 4930 | </part> |
| 4931 | </software> |
| 4932 | |
| 4933 | <software name="laddmana" cloneof="laddman"> |
| 4934 | <description>Ladderman (Alt)</description> |
| 4935 | <year>1989</year> |
| 4936 | <publisher>Berysoft</publisher> |
| 4937 | |
| 4938 | <part name="flop1" interface="floppy_5_25"> |
| 4939 | <dataarea name="flop" size="368640"> |
| 4940 | <rom name="laddermanv2.dsk" size="368640" crc="ef9dafd3" sha1="94dde5148c605b9cd88f25216a11ef81731f46fc" offset="0" /> |
| 4941 | </dataarea> |
| 4942 | </part> |
| 4943 | </software> |
| 4944 | |
| 4945 | <software name="lagreno"> |
| 4946 | <description>La Grenoiulle</description> |
| 4947 | <year>1991</year> |
| 4948 | <publisher>Agilar - Cápasoft</publisher> |
| 4949 | |
| 4950 | <part name="flop1" interface="floppy_5_25"> |
| 4951 | <dataarea name="flop" size="368640"> |
| 4952 | <rom name="lagreno.dsk" size="368640" crc="84575c84" sha1="00be72f7fc54ca59c16593404f76c1f798fd8002" offset="0" /> |
| 4953 | </dataarea> |
| 4954 | </part> |
| 4955 | </software> |
| 4956 | |
| 4957 | <software name="lampacs"> |
| 4958 | <description>Bűvös lámpácskák</description> |
| 4959 | <year>198?</year> |
| 4960 | <publisher><unknown></publisher> |
| 4961 | |
| 4962 | <part name="flop1" interface="floppy_5_25"> |
| 4963 | <dataarea name="flop" size="368640"> |
| 4964 | <rom name="lampacs.dsk" size="368640" crc="0b7663d3" sha1="b149ea52329d140fabeb50707aa661bdac390643" offset="0" /> |
| 4965 | </dataarea> |
| 4966 | </part> |
| 4967 | </software> |
| 4968 | |
| 4969 | <software name="lampak"> |
| 4970 | <description>Lámpák</description> |
| 4971 | <year>1986</year> |
| 4972 | <publisher>István Németh</publisher> |
| 4973 | |
| 4974 | <part name="flop1" interface="floppy_5_25"> |
| 4975 | <dataarea name="flop" size="368640"> |
| 4976 | <rom name="lampak.dsk" size="368640" crc="f60c55a3" sha1="c63a514816f9c6815774788889f329b12d95185c" offset="0" /> |
| 4977 | </dataarea> |
| 4978 | </part> |
| 4979 | </software> |
| 4980 | |
| 4981 | <software name="lede"> |
| 4982 | <description>Le Dé</description> |
| 4983 | <year>198?</year> |
| 4984 | <publisher>Cápasoft</publisher> |
| 4985 | |
| 4986 | <part name="flop1" interface="floppy_5_25"> |
| 4987 | <dataarea name="flop" size="368640"> |
| 4988 | <rom name="lede.dsk" size="368640" crc="ba2ffe77" sha1="6b37df060e97830f21af4e6dfc7ca56b4f4e1be7" offset="0" /> |
| 4989 | </dataarea> |
| 4990 | </part> |
| 4991 | </software> |
| 4992 | |
| 4993 | <software name="ledea" cloneof="lede"> |
| 4994 | <description>Le Dé (Alt)</description> |
| 4995 | <year>198?</year> |
| 4996 | <publisher>Cápasoft</publisher> |
| 4997 | |
| 4998 | <part name="flop1" interface="floppy_5_25"> |
| 4999 | <dataarea name="flop" size="368640"> |
| 5000 | <rom name="ledev2.dsk" size="368640" crc="1ae15727" sha1="bbc3b72363095184852d47891c684285871443f8" offset="0" /> |
| 5001 | </dataarea> |
| 5002 | </part> |
| 5003 | </software> |
| 5004 | |
| 5005 | <software name="legvedel"> |
| 5006 | <description>Légvédelem</description> |
| 5007 | <year>198?</year> |
| 5008 | <publisher><unknown></publisher> |
| 5009 | |
| 5010 | <part name="flop1" interface="floppy_5_25"> |
| 5011 | <dataarea name="flop" size="368640"> |
| 5012 | <rom name="legvedelem.dsk" size="368640" crc="3f75b564" sha1="a4b3b743a7360ed6b2e6d474df873f80bd5ae4cb" offset="0" /> |
| 5013 | </dataarea> |
| 5014 | </part> |
| 5015 | </software> |
| 5016 | |
| 5017 | <software name="lennon"> |
| 5018 | <description>Lennon</description> |
| 5019 | <year>198?</year> |
| 5020 | <publisher><unknown></publisher> |
| 5021 | |
| 5022 | <part name="flop1" interface="floppy_5_25"> |
| 5023 | <dataarea name="flop" size="368640"> |
| 5024 | <rom name="lennon.dsk" size="368640" crc="94610c08" sha1="7b936bff392b46cbd758fa0261beacb0051ca4d9" offset="0" /> |
| 5025 | </dataarea> |
| 5026 | </part> |
| 5027 | </software> |
| 5028 | |
| 5029 | <software name="lepke"> |
| 5030 | <description>Mentsd Meg a Lepkéket!</description> |
| 5031 | <year>198?</year> |
| 5032 | <publisher>Janos Racz</publisher> |
| 5033 | |
| 5034 | <part name="flop1" interface="floppy_5_25"> |
| 5035 | <dataarea name="flop" size="368640"> |
| 5036 | <rom name="lepke.dsk" size="368640" crc="c897a5cd" sha1="25f10a58927852fc90c14ab82423157f8d339499" offset="0" /> |
| 5037 | </dataarea> |
| 5038 | </part> |
| 5039 | </software> |
| 5040 | |
| 5041 | <software name="letiltas"> |
| 5042 | <description>Letiltás</description> |
| 5043 | <year>1986</year> |
| 5044 | <publisher>Gaba Software</publisher> |
| 5045 | |
| 5046 | <part name="flop1" interface="floppy_5_25"> |
| 5047 | <dataarea name="flop" size="368640"> |
| 5048 | <rom name="letiltas.dsk" size="368640" crc="e62d5b93" sha1="6594a5e74cce06d2f9a61250a2d67b43f156bb6d" offset="0" /> |
| 5049 | </dataarea> |
| 5050 | </part> |
| 5051 | </software> |
| 5052 | |
| 5053 | <software name="letra"> |
| 5054 | <description>Létra</description> |
| 5055 | <year>198?</year> |
| 5056 | <publisher>Novotrade</publisher> |
| 5057 | |
| 5058 | <part name="flop1" interface="floppy_5_25"> |
| 5059 | <dataarea name="flop" size="368640"> |
| 5060 | <rom name="letra.dsk" size="368640" crc="e03a929e" sha1="1579a10a2eaca6364a327c2b53f84c7e6f99a36b" offset="0" /> |
| 5061 | </dataarea> |
| 5062 | </part> |
| 5063 | </software> |
| 5064 | |
| 5065 | <software name="letraa" cloneof="letra"> |
| 5066 | <description>Létra (Alt)</description> |
| 5067 | <year>198?</year> |
| 5068 | <publisher>Novotrade</publisher> |
| 5069 | |
| 5070 | <part name="flop1" interface="floppy_5_25"> |
| 5071 | <dataarea name="flop" size="368640"> |
| 5072 | <rom name="letrav2.dsk" size="368640" crc="906001ba" sha1="a1683e6c4f9ce4b795da2e05a4a30939b7191db2" offset="0" /> |
| 5073 | </dataarea> |
| 5074 | </part> |
| 5075 | </software> |
| 5076 | |
| 5077 | <software name="level3"> |
| 5078 | <description>Level Three</description> |
| 5079 | <year>198?</year> |
| 5080 | <publisher>Software in LUX</publisher> |
| 5081 | |
| 5082 | <part name="flop1" interface="floppy_5_25"> |
| 5083 | <dataarea name="flop" size="368640"> |
| 5084 | <rom name="level3.dsk" size="368640" crc="47c788d8" sha1="4d07efa6dfbfb07aecf7869a8d119ded7d0388bb" offset="0" /> |
| 5085 | </dataarea> |
| 5086 | </part> |
| 5087 | </software> |
| 5088 | |
| 5089 | <software name="levelkes"> |
| 5090 | <description>Levélkészítő</description> |
| 5091 | <year>1988</year> |
| 5092 | <publisher><unknown></publisher> |
| 5093 | |
| 5094 | <part name="flop1" interface="floppy_5_25"> |
| 5095 | <dataarea name="flop" size="368640"> |
| 5096 | <rom name="levelkes.dsk" size="368640" crc="eddc7759" sha1="77a14a91ac6891ad1bb95d6aa7cc54e7397b7adb" offset="0" /> |
| 5097 | </dataarea> |
| 5098 | </part> |
| 5099 | </software> |
| 5100 | |
| 5101 | <software name="lezer"> |
| 5102 | <description>Lézer</description> |
| 5103 | <year>1988</year> |
| 5104 | <publisher>SYS</publisher> |
| 5105 | |
| 5106 | <part name="flop1" interface="floppy_5_25"> |
| 5107 | <dataarea name="flop" size="368640"> |
| 5108 | <rom name="lezer.dsk" size="368640" crc="4eec87f4" sha1="daa436c796a8c5f6e9c1da26391f8a1a450c682d" offset="0" /> |
| 5109 | </dataarea> |
| 5110 | </part> |
| 5111 | </software> |
| 5112 | |
| 5113 | <software name="liba"> |
| 5114 | <description>Liba</description> |
| 5115 | <year>198?</year> |
| 5116 | <publisher><unknown></publisher> |
| 5117 | |
| 5118 | <part name="flop1" interface="floppy_5_25"> |
| 5119 | <dataarea name="flop" size="368640"> |
| 5120 | <rom name="liba.dsk" size="368640" crc="1de057d1" sha1="cc70fab54071483d03d388b299da535584cb353d" offset="0" /> |
| 5121 | </dataarea> |
| 5122 | </part> |
| 5123 | </software> |
| 5124 | |
| 5125 | <software name="lift"> |
| 5126 | <description>Lift</description> |
| 5127 | <year>198?</year> |
| 5128 | <publisher>Software in LUX</publisher> |
| 5129 | |
| 5130 | <part name="flop1" interface="floppy_5_25"> |
| 5131 | <dataarea name="flop" size="368640"> |
| 5132 | <rom name="lift.dsk" size="368640" crc="c5f4d962" sha1="014ffaf6d48ceda56a1efc31937b84dad03c4c33" offset="0" /> |
| 5133 | </dataarea> |
| 5134 | </part> |
| 5135 | </software> |
| 5136 | |
| 5137 | <software name="liftes"> |
| 5138 | <description>Liftes Fiú</description> |
| 5139 | <year>198?</year> |
| 5140 | <publisher>K&K Soft</publisher> |
| 5141 | |
| 5142 | <part name="flop1" interface="floppy_5_25"> |
| 5143 | <dataarea name="flop" size="368640"> |
| 5144 | <rom name="liftes.dsk" size="368640" crc="ee9ad39e" sha1="6e9c07ad93fd251027f4786818e4f5eaa9d10d00" offset="0" /> |
| 5145 | </dataarea> |
| 5146 | </part> |
| 5147 | </software> |
| 5148 | |
| 5149 | <software name="lina"> |
| 5150 | <description>Lina</description> |
| 5151 | <year>198?</year> |
| 5152 | <publisher>STV</publisher> |
| 5153 | |
| 5154 | <part name="flop1" interface="floppy_5_25"> |
| 5155 | <dataarea name="flop" size="368640"> |
| 5156 | <rom name="lina.dsk" size="368640" crc="dddd1fb9" sha1="475ff4f6f57f26e9f2240be06ab4aa617aed64fd" offset="0" /> |
| 5157 | </dataarea> |
| 5158 | </part> |
| 5159 | </software> |
| 5160 | |
| 5161 | <software name="locomot"> |
| 5162 | <description>Locomotion</description> |
| 5163 | <year>1985</year> |
| 5164 | <publisher>Mastertronic</publisher> |
| 5165 | |
| 5166 | <part name="flop1" interface="floppy_5_25"> |
| 5167 | <dataarea name="flop" size="368640"> |
| 5168 | <rom name="locomotion.dsk" size="368640" crc="340939d0" sha1="4dbb587dbc82f37f7f85439107d12fe4f0d3d997" offset="0" /> |
| 5169 | </dataarea> |
| 5170 | </part> |
| 5171 | </software> |
| 5172 | |
| 5173 | <software name="logo"> |
| 5174 | <description>Logo - Teknocgrafika</description> |
| 5175 | <year>1987</year> |
| 5176 | <publisher>László Nagy</publisher> |
| 5177 | |
| 5178 | <part name="flop1" interface="floppy_5_25"> |
| 5179 | <dataarea name="flop" size="368640"> |
| 5180 | <rom name="logo.dsk" size="368640" crc="4cbf5e18" sha1="1b131c84ee19da2ffa9af1a7ca2c67dbd7ebd9e2" offset="0" /> |
| 5181 | </dataarea> |
| 5182 | </part> |
| 5183 | </software> |
| 5184 | |
| 5185 | <software name="logosz"> |
| 5186 | <description>Logo</description> |
| 5187 | <year>198?</year> |
| 5188 | <publisher><unknown></publisher> |
| 5189 | |
| 5190 | <part name="flop1" interface="floppy_5_25"> |
| 5191 | <dataarea name="flop" size="368640"> |
| 5192 | <rom name="logosz.dsk" size="368640" crc="afc9f94b" sha1="e4445daa99e22c2cb755df08d91823331fe8fd86" offset="0" /> |
| 5193 | </dataarea> |
| 5194 | </part> |
| 5195 | </software> |
| 5196 | |
| 5197 | <software name="logosza" cloneof="logosz"> |
| 5198 | <description>Logo (Alt)</description> |
| 5199 | <year>198?</year> |
| 5200 | <publisher><unknown></publisher> |
| 5201 | |
| 5202 | <part name="flop1" interface="floppy_5_25"> |
| 5203 | <dataarea name="flop" size="368640"> |
| 5204 | <rom name="logoszv2.dsk" size="368640" crc="0bd67ecc" sha1="01401aa78ff0f073f42507db25eed70cc93dc819" offset="0" /> |
| 5205 | </dataarea> |
| 5206 | </part> |
| 5207 | </software> |
| 5208 | |
| 5209 | <software name="lottojat"> |
| 5210 | <description>Lotto - Jatekot Segito Program</description> |
| 5211 | <year>1986</year> |
| 5212 | <publisher>Centrumdata VGMK</publisher> |
| 5213 | |
| 5214 | <part name="flop1" interface="floppy_5_25"> |
| 5215 | <dataarea name="flop" size="368640"> |
| 5216 | <rom name="lotto [a].dsk" size="368640" crc="0373b542" sha1="c788f979e03f1c3416a718ebff7451c5fedd60b5" offset="0" /> |
| 5217 | </dataarea> |
| 5218 | </part> |
| 5219 | </software> |
| 5220 | |
| 5221 | <software name="lotto"> |
| 5222 | <description>Lotto</description> |
| 5223 | <year>198?</year> |
| 5224 | <publisher><unknown></publisher> |
| 5225 | |
| 5226 | <part name="flop1" interface="floppy_5_25"> |
| 5227 | <dataarea name="flop" size="368640"> |
| 5228 | <rom name="lotto.dsk" size="368640" crc="1457f31c" sha1="d55af47473fd55ea3817682437fa5dc53f7aa2a3" offset="0" /> |
| 5229 | </dataarea> |
| 5230 | </part> |
| 5231 | </software> |
| 5232 | |
| 5233 | <software name="lotto1"> |
| 5234 | <description>Lotto (Different)</description> |
| 5235 | <year>198?</year> |
| 5236 | <publisher><unknown></publisher> |
| 5237 | |
| 5238 | <part name="flop1" interface="floppy_5_25"> |
| 5239 | <dataarea name="flop" size="368640"> |
| 5240 | <rom name="lottosza.dsk" size="368640" crc="3d70c636" sha1="4305792f0fe5b0cda9d8c2306c37a312e532e3f3" offset="0" /> |
| 5241 | </dataarea> |
| 5242 | </part> |
| 5243 | </software> |
| 5244 | |
| 5245 | <software name="lovagito"> |
| 5246 | <description>Lovagi Torna</description> |
| 5247 | <year>1988</year> |
| 5248 | <publisher>Berysoft</publisher> |
| 5249 | |
| 5250 | <part name="flop1" interface="floppy_5_25"> |
| 5251 | <dataarea name="flop" size="368640"> |
| 5252 | <rom name="lovagitorna.dsk" size="368640" crc="92212618" sha1="d05cf02fb2cdfb9981f9453d1eb3965461dbf749" offset="0" /> |
| 5253 | </dataarea> |
| 5254 | </part> |
| 5255 | </software> |
| 5256 | |
| 5257 | <software name="lovascsa"> |
| 5258 | <description>Lovascsata</description> |
| 5259 | <year>198?</year> |
| 5260 | <publisher>Steve Software</publisher> |
| 5261 | |
| 5262 | <part name="flop1" interface="floppy_5_25"> |
| 5263 | <dataarea name="flop" size="368640"> |
| 5264 | <rom name="lovascsata.dsk" size="368640" crc="f2980151" sha1="0d49a62fcd54f5013ea0e749a05729a33e33a8da" offset="0" /> |
| 5265 | </dataarea> |
| 5266 | </part> |
| 5267 | </software> |
| 5268 | |
| 5269 | <software name="loversen"> |
| 5270 | <description>Lóverseny</description> |
| 5271 | <year>198?</year> |
| 5272 | <publisher><unknown></publisher> |
| 5273 | |
| 5274 | <part name="flop1" interface="floppy_5_25"> |
| 5275 | <dataarea name="flop" size="368640"> |
| 5276 | <rom name="loverseny.dsk" size="368640" crc="f6dfba2e" sha1="1ac2ae0e2e08eff8189665d06bf6ed68b627ed6a" offset="0" /> |
| 5277 | </dataarea> |
| 5278 | </part> |
| 5279 | </software> |
| 5280 | |
| 5281 | <software name="loversena" cloneof="loversen"> |
| 5282 | <description>Lóverseny (Alt)</description> |
| 5283 | <year>198?</year> |
| 5284 | <publisher><unknown></publisher> |
| 5285 | |
| 5286 | <part name="flop1" interface="floppy_5_25"> |
| 5287 | <dataarea name="flop" size="368640"> |
| 5288 | <rom name="loverv2.dsk" size="368640" crc="19e53cc6" sha1="78ef78618696f177aa6a8056948edc0f0112e975" offset="0" /> |
| 5289 | </dataarea> |
| 5290 | </part> |
| 5291 | </software> |
| 5292 | |
| 5293 | <software name="lsrutin"> |
| 5294 | <description>Load-Save usr Rutinok</description> |
| 5295 | <year>1986</year> |
| 5296 | <publisher>Géza Garai</publisher> |
| 5297 | |
| 5298 | <part name="flop1" interface="floppy_5_25"> |
| 5299 | <dataarea name="flop" size="368640"> |
| 5300 | <rom name="lsrutin.dsk" size="368640" crc="51cb71a1" sha1="a18147aec89051b601df79a5f11904828c201894" offset="0" /> |
| 5301 | </dataarea> |
| 5302 | </part> |
| 5303 | </software> |
| 5304 | |
| 5305 | <software name="lsrutin2" cloneof="lsrutin"> |
| 5306 | <description>Load-Save usr Rutinok v2</description> |
| 5307 | <year>1986</year> |
| 5308 | <publisher>Géza Garai</publisher> |
| 5309 | |
| 5310 | <part name="flop1" interface="floppy_5_25"> |
| 5311 | <dataarea name="flop" size="368640"> |
| 5312 | <rom name="lsrutin2.dsk" size="368640" crc="e66b29a8" sha1="b7281e32fe3ed7da30a1c0da0871c5984c1ee317" offset="0" /> |
| 5313 | </dataarea> |
| 5314 | </part> |
| 5315 | </software> |
| 5316 | |
| 5317 | <software name="lsrutin3" cloneof="lsrutin"> |
| 5318 | <description>Load-Save usr Rutinok v3</description> |
| 5319 | <year>1986</year> |
| 5320 | <publisher>Géza Garai</publisher> |
| 5321 | |
| 5322 | <part name="flop1" interface="floppy_5_25"> |
| 5323 | <dataarea name="flop" size="368640"> |
| 5324 | <rom name="lsrutin3.dsk" size="368640" crc="37adfa87" sha1="02f049283d9b29a6d04c8ce9aa5a23949bfc00e2" offset="0" /> |
| 5325 | </dataarea> |
| 5326 | </part> |
| 5327 | </software> |
| 5328 | |
| 5329 | <software name="holdra"> |
| 5330 | <description>Holdra szállás</description> |
| 5331 | <year>198?</year> |
| 5332 | <publisher><unknown></publisher> |
| 5333 | |
| 5334 | <part name="flop1" interface="floppy_5_25"> |
| 5335 | <dataarea name="flop" size="368640"> |
| 5336 | <rom name="luna.dsk" size="368640" crc="e063e19b" sha1="97a1fb8372f621724ed3cbed307d70a4a1f735c1" offset="0" /> |
| 5337 | </dataarea> |
| 5338 | </part> |
| 5339 | </software> |
| 5340 | |
| 5341 | <software name="monitor"> |
| 5342 | <description>Monitor v0.5</description> |
| 5343 | <year>1990</year> |
| 5344 | <publisher>Andras Soos</publisher> |
| 5345 | |
| 5346 | <part name="flop1" interface="floppy_5_25"> |
| 5347 | <dataarea name="flop" size="368640"> |
| 5348 | <rom name="m5.dsk" size="368640" crc="61266824" sha1="13f71d09af887fe25e5481e328903599fae6bb4c" offset="0" /> |
| 5349 | </dataarea> |
| 5350 | </part> |
| 5351 | </software> |
| 5352 | |
| 5353 | <software name="macskafo"> |
| 5354 | <description>Macskafogó</description> |
| 5355 | <year>198?</year> |
| 5356 | <publisher><unknown></publisher> |
| 5357 | |
| 5358 | <part name="flop1" interface="floppy_5_25"> |
| 5359 | <dataarea name="flop" size="368640"> |
| 5360 | <rom name="macskafo.dsk" size="368640" crc="1dd54927" sha1="bd6e8ae826f7202d01d7bf294d650b302348dcf5" offset="0" /> |
| 5361 | </dataarea> |
| 5362 | </part> |
| 5363 | </software> |
| 5364 | |
| 5365 | <software name="magicbal"> |
| 5366 | <description>Magic Ball</description> |
| 5367 | <year>1989</year> |
| 5368 | <publisher>'a' Studio</publisher> |
| 5369 | |
| 5370 | <part name="flop1" interface="floppy_5_25"> |
| 5371 | <dataarea name="flop" size="368640"> |
| 5372 | <rom name="magicball.dsk" size="368640" crc="154419cd" sha1="9ea0f702d0784d3176a15366e1ac455f3da9fdb9" offset="0" /> |
| 5373 | </dataarea> |
| 5374 | </part> |
| 5375 | </software> |
| 5376 | |
| 5377 | <software name="magicbala" cloneof="magicbal"> |
| 5378 | <description>Magic Ball (Alt)</description> |
| 5379 | <year>1989</year> |
| 5380 | <publisher>'a' Studio</publisher> |
| 5381 | |
| 5382 | <part name="flop1" interface="floppy_5_25"> |
| 5383 | <dataarea name="flop" size="368640"> |
| 5384 | <rom name="magicballv2.dsk" size="368640" crc="52dbb66d" sha1="b5588fc6dc456e5e0ea1f3c87a875d0c86fcd7a1" offset="0" /> |
| 5385 | </dataarea> |
| 5386 | </part> |
| 5387 | </software> |
| 5388 | |
| 5389 | <software name="magyaror"> |
| 5390 | <description>Magyarország</description> |
| 5391 | <year>198?</year> |
| 5392 | <publisher><unknown></publisher> |
| 5393 | |
| 5394 | <part name="flop1" interface="floppy_5_25"> |
| 5395 | <dataarea name="flop" size="368640"> |
| 5396 | <rom name="magyaror.dsk" size="368640" crc="2149a25c" sha1="286bb4da936e61c4cfd2dfe8ca6ac11417717470" offset="0" /> |
| 5397 | </dataarea> |
| 5398 | </part> |
| 5399 | </software> |
| 5400 | |
| 5401 | <software name="magyasil"> |
| 5402 | <description>Magyarország (SIL)</description> |
| 5403 | <year>198?</year> |
| 5404 | <publisher>Software in LUX</publisher> |
| 5405 | |
| 5406 | <part name="flop1" interface="floppy_5_25"> |
| 5407 | <dataarea name="flop" size="368640"> |
| 5408 | <rom name="magyarorszag.dsk" size="368640" crc="3af5efd8" sha1="2ead3b732ef5b127a6be128a4e13f929bb019da1" offset="0" /> |
| 5409 | </dataarea> |
| 5410 | </part> |
| 5411 | </software> |
| 5412 | |
| 5413 | <software name="malom"> |
| 5414 | <description>Malom (S.P. Studio)</description> |
| 5415 | <year>1987</year> |
| 5416 | <publisher>S.P. Studio</publisher> |
| 5417 | |
| 5418 | <part name="flop1" interface="floppy_5_25"> |
| 5419 | <dataarea name="flop" size="368640"> |
| 5420 | <rom name="malom.dsk" size="368640" crc="abf85c56" sha1="f0704af9ac9bdebb56806ea55ff88e4f393fa882" offset="0" /> |
| 5421 | </dataarea> |
| 5422 | </part> |
| 5423 | </software> |
| 5424 | |
| 5425 | <software name="malom2"> |
| 5426 | <description>Malom</description> |
| 5427 | <year>198?</year> |
| 5428 | <publisher><unknown></publisher> |
| 5429 | |
| 5430 | <part name="flop1" interface="floppy_5_25"> |
| 5431 | <dataarea name="flop" size="368640"> |
| 5432 | <rom name="malom2.dsk" size="368640" crc="51751dec" sha1="7bc2c90cf618e37459f4c54297013546c3a7e03d" offset="0" /> |
| 5433 | </dataarea> |
| 5434 | </part> |
| 5435 | </software> |
| 5436 | |
| 5437 | <software name="mandelma"> |
| 5438 | <description>Mandelmagic v1.0</description> |
| 5439 | <year>198?</year> |
| 5440 | <publisher>Albatross - Flocky Chocs</publisher> |
| 5441 | |
| 5442 | <part name="flop1" interface="floppy_5_25"> |
| 5443 | <dataarea name="flop" size="368640"> |
| 5444 | <rom name="mandelma.dsk" size="368640" crc="5c4549d8" sha1="2690311568a1001af464a8f98010c4c423659630" offset="0" /> |
| 5445 | </dataarea> |
| 5446 | </part> |
| 5447 | </software> |
| 5448 | |
| 5449 | <software name="mandfrak"> |
| 5450 | <description>Mandelbrot-Fraktál Generátor</description> |
| 5451 | <year>198?</year> |
| 5452 | <publisher><unknown></publisher> |
| 5453 | |
| 5454 | <part name="flop1" interface="floppy_5_25"> |
| 5455 | <dataarea name="flop" size="368640"> |
| 5456 | <rom name="mandfrak.dsk" size="368640" crc="9f34c8ea" sha1="83847a5a52e295106d987bb543fbf9d5457d6d61" offset="0" /> |
| 5457 | </dataarea> |
| 5458 | </part> |
| 5459 | </software> |
| 5460 | |
| 5461 | <software name="mariolab"> |
| 5462 | <description>Márió a Labirintusban</description> |
| 5463 | <year>198?</year> |
| 5464 | <publisher>Béla Takács</publisher> |
| 5465 | |
| 5466 | <part name="flop1" interface="floppy_5_25"> |
| 5467 | <dataarea name="flop" size="368640"> |
| 5468 | <rom name="marioalabirintusban.dsk" size="368640" crc="9b6e568e" sha1="8ad4b12fec95c936ff4af69441c8d7a386e6583c" offset="0" /> |
| 5469 | </dataarea> |
| 5470 | </part> |
| 5471 | </software> |
| 5472 | |
| 5473 | <software name="mariolaba" cloneof="mariolab"> |
| 5474 | <description>Márió a Labirintusban (Alt)</description> |
| 5475 | <year>198?</year> |
| 5476 | <publisher>Béla Takács</publisher> |
| 5477 | |
| 5478 | <part name="flop1" interface="floppy_5_25"> |
| 5479 | <dataarea name="flop" size="368640"> |
| 5480 | <rom name="marioalabirintusbanv2.dsk" size="368640" crc="79461a9f" sha1="6aa2274efe0c1595ce59b540e628486a20394c05" offset="0" /> |
| 5481 | </dataarea> |
| 5482 | </part> |
| 5483 | </software> |
| 5484 | |
| 5485 | <software name="marokko"> |
| 5486 | <description>Marokkó</description> |
| 5487 | <year>198?</year> |
| 5488 | <publisher>'a' Studio</publisher> |
| 5489 | |
| 5490 | <part name="flop1" interface="floppy_5_25"> |
| 5491 | <dataarea name="flop" size="368640"> |
| 5492 | <rom name="marokko.dsk" size="368640" crc="19925136" sha1="6934768e0ddf496c0c2d2b1cf8d1c7c0174ab7d1" offset="0" /> |
| 5493 | </dataarea> |
| 5494 | </part> |
| 5495 | </software> |
| 5496 | |
| 5497 | <software name="mars"> |
| 5498 | <description>Mars</description> |
| 5499 | <year>1988</year> |
| 5500 | <publisher>Gigasoft</publisher> |
| 5501 | |
| 5502 | <part name="flop1" interface="floppy_5_25"> |
| 5503 | <dataarea name="flop" size="368640"> |
| 5504 | <rom name="mars.dsk" size="368640" crc="9a45ab50" sha1="04c2271b96f69cfa1c831b2fa63cf1ed8064c322" offset="0" /> |
| 5505 | </dataarea> |
| 5506 | </part> |
| 5507 | </software> |
| 5508 | |
| 5509 | <software name="marsa" cloneof="mars"> |
| 5510 | <description>Mars (Alt)</description> |
| 5511 | <year>1988</year> |
| 5512 | <publisher>Gigasoft</publisher> |
| 5513 | |
| 5514 | <part name="flop1" interface="floppy_5_25"> |
| 5515 | <dataarea name="flop" size="368640"> |
| 5516 | <rom name="marsv2.dsk" size="368640" crc="58ccf31e" sha1="fce4cb3b8430e13e8fa0f8dc79be4324468b3d47" offset="0" /> |
| 5517 | </dataarea> |
| 5518 | </part> |
| 5519 | </software> |
| 5520 | |
| 5521 | <software name="masolo1"> |
| 5522 | <description>Másoló 1</description> |
| 5523 | <year>198?</year> |
| 5524 | <publisher><unknown></publisher> |
| 5525 | |
| 5526 | <part name="flop1" interface="floppy_5_25"> |
| 5527 | <dataarea name="flop" size="368640"> |
| 5528 | <rom name="masolo1.dsk" size="368640" crc="0cf4491e" sha1="17e89fd5b70051e4257c675c115e591b14fb22bd" offset="0" /> |
| 5529 | </dataarea> |
| 5530 | </part> |
| 5531 | </software> |
| 5532 | |
| 5533 | <software name="mastermi"> |
| 5534 | <description>Mastermind</description> |
| 5535 | <year>198?</year> |
| 5536 | <publisher><unknown></publisher> |
| 5537 | |
| 5538 | <part name="flop1" interface="floppy_5_25"> |
| 5539 | <dataarea name="flop" size="368640"> |
| 5540 | <rom name="mastermind.dsk" size="368640" crc="faf2b2e0" sha1="b5e6a89e64eedaee435743e2fe8fd2dca7202804" offset="0" /> |
| 5541 | </dataarea> |
| 5542 | </part> |
| 5543 | </software> |
| 5544 | |
| 5545 | <software name="matrix"> |
| 5546 | <description>Mátrix</description> |
| 5547 | <year>1987</year> |
| 5548 | <publisher>József Cseh</publisher> |
| 5549 | |
| 5550 | <part name="flop1" interface="floppy_5_25"> |
| 5551 | <dataarea name="flop" size="368640"> |
| 5552 | <rom name="matrix.dsk" size="368640" crc="71327938" sha1="22c99839901c69c2fdb6f3dc47b990fe8ae7fbd1" offset="0" /> |
| 5553 | </dataarea> |
| 5554 | </part> |
| 5555 | </software> |
| 5556 | |
| 5557 | <software name="mav10"> |
| 5558 | <description>Számelméleti Programok - MAV 10</description> |
| 5559 | <year>198?</year> |
| 5560 | <publisher>Dr. Andras Varga</publisher> |
| 5561 | |
| 5562 | <part name="flop1" interface="floppy_5_25"> |
| 5563 | <dataarea name="flop" size="368640"> |
| 5564 | <rom name="mav10.dsk" size="368640" crc="f07c50f5" sha1="6797ad2b45721087b9c9cfe09145ac05450ea0d2" offset="0" /> |
| 5565 | </dataarea> |
| 5566 | </part> |
| 5567 | </software> |
| 5568 | |
| 5569 | <software name="mav11"> |
| 5570 | <description>Egyenletek megoldása - MAV 11</description> |
| 5571 | <year>1983</year> |
| 5572 | <publisher>Dr. Andras Varga</publisher> |
| 5573 | |
| 5574 | <part name="flop1" interface="floppy_5_25"> |
| 5575 | <dataarea name="flop" size="368640"> |
| 5576 | <rom name="mav11.dsk" size="368640" crc="345dd238" sha1="13210c3257488f411f9c2857fa52c9dec707f268" offset="0" /> |
| 5577 | </dataarea> |
| 5578 | </part> |
| 5579 | </software> |
| 5580 | |
| 5581 | <software name="mav12"> |
| 5582 | <description>Kombinatorikai Programok - MAV 12</description> |
| 5583 | <year>1983</year> |
| 5584 | <publisher>Dr. Andras Varga</publisher> |
| 5585 | |
| 5586 | <part name="flop1" interface="floppy_5_25"> |
| 5587 | <dataarea name="flop" size="368640"> |
| 5588 | <rom name="mav12.dsk" size="368640" crc="516bb2c4" sha1="2c2c7095dc30927dab41e4c72370c326f7eacc25" offset="0" /> |
| 5589 | </dataarea> |
| 5590 | </part> |
| 5591 | </software> |
| 5592 | |
| 5593 | <software name="mav13"> |
| 5594 | <description>Függvényábrázolás és transzformáció - MAV 13</description> |
| 5595 | <year>1983</year> |
| 5596 | <publisher>Dr. Andras Varga</publisher> |
| 5597 | |
| 5598 | <part name="flop1" interface="floppy_5_25"> |
| 5599 | <dataarea name="flop" size="368640"> |
| 5600 | <rom name="mav13.dsk" size="368640" crc="ca223903" sha1="62af098b57d360b552f9661abd21243c344e8d0d" offset="0" /> |
| 5601 | </dataarea> |
| 5602 | </part> |
| 5603 | </software> |
| 5604 | |
| 5605 | <software name="mav23"> |
| 5606 | <description>Gyokkereso - MAV 23</description> |
| 5607 | <year>1983</year> |
| 5608 | <publisher>Dr. Andras Varga</publisher> |
| 5609 | |
| 5610 | <part name="flop1" interface="floppy_5_25"> |
| 5611 | <dataarea name="flop" size="368640"> |
| 5612 | <rom name="mav23.dsk" size="368640" crc="4fba8f1b" sha1="779a0cd109ad2e918669d9d9e8b7053f19fa51ab" offset="0" /> |
| 5613 | </dataarea> |
| 5614 | </part> |
| 5615 | </software> |
| 5616 | |
| 5617 | <software name="mav24"> |
| 5618 | <description>Galton Deszka - MAV24</description> |
| 5619 | <year>1983</year> |
| 5620 | <publisher>Dr. András Varga</publisher> |
| 5621 | |
| 5622 | <part name="flop1" interface="floppy_5_25"> |
| 5623 | <dataarea name="flop" size="368640"> |
| 5624 | <rom name="mav24.dsk" size="368640" crc="912ea58d" sha1="6e965508ff325dcf1ebe7a4537abf09173d2c701" offset="0" /> |
| 5625 | </dataarea> |
| 5626 | </part> |
| 5627 | </software> |
| 5628 | |
| 5629 | <software name="mav26"> |
| 5630 | <description>Prímszámok - MAV 26</description> |
| 5631 | <year>198?</year> |
| 5632 | <publisher><unknown></publisher> |
| 5633 | |
| 5634 | <part name="flop1" interface="floppy_5_25"> |
| 5635 | <dataarea name="flop" size="368640"> |
| 5636 | <rom name="mav26.dsk" size="368640" crc="a493757e" sha1="69124b0f8f135d404f986f01504273f44b74305d" offset="0" /> |
| 5637 | </dataarea> |
| 5638 | </part> |
| 5639 | </software> |
| 5640 | |
| 5641 | <software name="maya"> |
| 5642 | <description>Maya</description> |
| 5643 | <year>1986</year> |
| 5644 | <publisher>Steve Software</publisher> |
| 5645 | |
| 5646 | <part name="flop1" interface="floppy_5_25"> |
| 5647 | <dataarea name="flop" size="368640"> |
| 5648 | <rom name="maya.dsk" size="368640" crc="c9c8daa9" sha1="ac5d1cb7ba73099651b7b42e0119ddd47256d13d" offset="0" /> |
| 5649 | </dataarea> |
| 5650 | </part> |
| 5651 | </software> |
| 5652 | |
| 5653 | <software name="mbas"> |
| 5654 | <description>Magyar BASIC v1.2</description> |
| 5655 | <year>198?</year> |
| 5656 | <publisher>Albatross</publisher> |
| 5657 | |
| 5658 | <part name="flop1" interface="floppy_5_25"> |
| 5659 | <dataarea name="flop" size="368640"> |
| 5660 | <rom name="mbas.dsk" size="368640" crc="bf15bba4" sha1="e837ed6a7503b6b0060dd2d9ae9695bece4798da" offset="0" /> |
| 5661 | </dataarea> |
| 5662 | </part> |
| 5663 | </software> |
| 5664 | |
| 5665 | <software name="mbashasz"> |
| 5666 | <description>Magyar BASIC v1.2 - Hasznalati Utmutato</description> |
| 5667 | <year>198?</year> |
| 5668 | <publisher>Albatross</publisher> |
| 5669 | |
| 5670 | <part name="flop1" interface="floppy_5_25"> |
| 5671 | <dataarea name="flop" size="368640"> |
| 5672 | <rom name="mbashasz.dsk" size="368640" crc="0b164a92" sha1="d3f75f72ef688a54c121cb1263c9a99ca52582e2" offset="0" /> |
| 5673 | </dataarea> |
| 5674 | </part> |
| 5675 | </software> |
| 5676 | |
| 5677 | <software name="medence"> |
| 5678 | <description>Medence</description> |
| 5679 | <year>198?</year> |
| 5680 | <publisher><unknown></publisher> |
| 5681 | |
| 5682 | <part name="flop1" interface="floppy_5_25"> |
| 5683 | <dataarea name="flop" size="368640"> |
| 5684 | <rom name="medence.dsk" size="368640" crc="6edad536" sha1="366e1076264bd9c9836b92d4a880f76aa09b0899" offset="0" /> |
| 5685 | </dataarea> |
| 5686 | </part> |
| 5687 | </software> |
| 5688 | |
| 5689 | <software name="memo"> |
| 5690 | <description>Memo</description> |
| 5691 | <year>1986</year> |
| 5692 | <publisher><unknown></publisher> |
| 5693 | |
| 5694 | <part name="flop1" interface="floppy_5_25"> |
| 5695 | <dataarea name="flop" size="368640"> |
| 5696 | <rom name="memo.dsk" size="368640" crc="b664fab4" sha1="87db14c5d08253e660e66a5534591e0dd815b755" offset="0" /> |
| 5697 | </dataarea> |
| 5698 | </part> |
| 5699 | </software> |
| 5700 | |
| 5701 | <software name="memoa" cloneof="memo"> |
| 5702 | <description>Memo (Alt)</description> |
| 5703 | <year>1986</year> |
| 5704 | <publisher><unknown></publisher> |
| 5705 | |
| 5706 | <part name="flop1" interface="floppy_5_25"> |
| 5707 | <dataarea name="flop" size="368640"> |
| 5708 | <rom name="memov2.dsk" size="368640" crc="07e2fa4a" sha1="ee7f4992f70d6683a806299222d9c6926ee7e522" offset="0" /> |
| 5709 | </dataarea> |
| 5710 | </part> |
| 5711 | </software> |
| 5712 | |
| 5713 | <software name="memoria"> |
| 5714 | <description>Memória</description> |
| 5715 | <year>198?</year> |
| 5716 | <publisher><unknown></publisher> |
| 5717 | |
| 5718 | <part name="flop1" interface="floppy_5_25"> |
| 5719 | <dataarea name="flop" size="368640"> |
| 5720 | <rom name="memoria.dsk" size="368640" crc="51e1d566" sha1="9d84c731896f5f9ecb8968fd6286624aa9d4dca7" offset="0" /> |
| 5721 | </dataarea> |
| 5722 | </part> |
| 5723 | </software> |
| 5724 | |
| 5725 | <software name="memory"> |
| 5726 | <description>Memory</description> |
| 5727 | <year>1986</year> |
| 5728 | <publisher>VGy</publisher> |
| 5729 | |
| 5730 | <part name="flop1" interface="floppy_5_25"> |
| 5731 | <dataarea name="flop" size="368640"> |
| 5732 | <rom name="memory.dsk" size="368640" crc="24b8ca5e" sha1="6883590a413451e3ce86ae07c3aabe5700712c0d" offset="0" /> |
| 5733 | </dataarea> |
| 5734 | </part> |
| 5735 | </software> |
| 5736 | |
| 5737 | <software name="mentohaj"> |
| 5738 | <description>Mentőhajó</description> |
| 5739 | <year>198?</year> |
| 5740 | <publisher><unknown></publisher> |
| 5741 | |
| 5742 | <part name="flop1" interface="floppy_5_25"> |
| 5743 | <dataarea name="flop" size="368640"> |
| 5744 | <rom name="mentohajo.dsk" size="368640" crc="08f8f5bf" sha1="4819ab2b754bac117f78629bb09478434b2b8830" offset="0" /> |
| 5745 | </dataarea> |
| 5746 | </part> |
| 5747 | </software> |
| 5748 | |
| 5749 | <software name="mentsdme"> |
| 5750 | <description>Mentsd Meg Erdélyt</description> |
| 5751 | <year>198?</year> |
| 5752 | <publisher>Osmagyar Software</publisher> |
| 5753 | |
| 5754 | <part name="flop1" interface="floppy_5_25"> |
| 5755 | <dataarea name="flop" size="368640"> |
| 5756 | <rom name="mentsdmegerdelyt.dsk" size="368640" crc="5d895bfd" sha1="c72c46c89223310acc3c83849af07c27ced3519b" offset="0" /> |
| 5757 | </dataarea> |
| 5758 | </part> |
| 5759 | </software> |
| 5760 | |
| 5761 | <software name="merorezg"> |
| 5762 | <description>Merőleges Rezgések</description> |
| 5763 | <year>198?</year> |
| 5764 | <publisher><unknown></publisher> |
| 5765 | |
| 5766 | <part name="flop1" interface="floppy_5_25"> |
| 5767 | <dataarea name="flop" size="368640"> |
| 5768 | <rom name="merorezg.dsk" size="368640" crc="fa5e0f37" sha1="6b38161e1aa37eb3ad18b90b268af627a4b35dd4" offset="0" /> |
| 5769 | </dataarea> |
| 5770 | </part> |
| 5771 | </software> |
| 5772 | |
| 5773 | <software name="merryboy"> |
| 5774 | <description>Merryboy</description> |
| 5775 | <year>1991</year> |
| 5776 | <publisher>Cápasoft</publisher> |
| 5777 | |
| 5778 | <part name="flop1" interface="floppy_5_25"> |
| 5779 | <dataarea name="flop" size="368640"> |
| 5780 | <rom name="merryboy.dsk" size="368640" crc="53cc03c1" sha1="eac3d73ec1036f919f4739c4e37dfdd7c3626e57" offset="0" /> |
| 5781 | </dataarea> |
| 5782 | </part> |
| 5783 | </software> |
| 5784 | |
| 5785 | <software name="meseadv"> |
| 5786 | <description>Mese-Adventure</description> |
| 5787 | <year>198?</year> |
| 5788 | <publisher><unknown></publisher> |
| 5789 | |
| 5790 | <part name="flop1" interface="floppy_5_25"> |
| 5791 | <dataarea name="flop" size="368640"> |
| 5792 | <rom name="mese-adventure.dsk" size="368640" crc="5be567d1" sha1="bfe5f8e949f2acda102696049428845ffb59dcea" offset="0" /> |
| 5793 | </dataarea> |
| 5794 | </part> |
| 5795 | </software> |
| 5796 | |
| 5797 | <software name="meteorit"> |
| 5798 | <description>Meteorit</description> |
| 5799 | <year>198?</year> |
| 5800 | <publisher>K&K Soft</publisher> |
| 5801 | |
| 5802 | <part name="flop1" interface="floppy_5_25"> |
| 5803 | <dataarea name="flop" size="368640"> |
| 5804 | <rom name="meteorit.dsk" size="368640" crc="f98bcbcd" sha1="34624aaa7b452f2b77024609cdcbe0ef2a21b8fa" offset="0" /> |
| 5805 | </dataarea> |
| 5806 | </part> |
| 5807 | </software> |
| 5808 | |
| 5809 | <software name="mikropro"> |
| 5810 | <description>Z80 Mikroprocesszor</description> |
| 5811 | <year>198?</year> |
| 5812 | <publisher><unknown></publisher> |
| 5813 | |
| 5814 | <part name="flop1" interface="floppy_5_25"> |
| 5815 | <dataarea name="flop" size="368640"> |
| 5816 | <rom name="mikropro.dsk" size="368640" crc="83be0019" sha1="8f6d3dc6accd14d5aef223820b8b293ad090ed9e" offset="0" /> |
| 5817 | </dataarea> |
| 5818 | </part> |
| 5819 | </software> |
| 5820 | |
| 5821 | <software name="millikan"> |
| 5822 | <description>Millikan Kísérlete</description> |
| 5823 | <year>198?</year> |
| 5824 | <publisher><unknown></publisher> |
| 5825 | |
| 5826 | <part name="flop1" interface="floppy_5_25"> |
| 5827 | <dataarea name="flop" size="368640"> |
| 5828 | <rom name="millikan.dsk" size="368640" crc="d29c5351" sha1="14fcb0aa450a89211d384aeb0bba5573302dca79" offset="0" /> |
| 5829 | </dataarea> |
| 5830 | </part> |
| 5831 | </software> |
| 5832 | |
| 5833 | <software name="minedout"> |
| 5834 | <description>Minedout</description> |
| 5835 | <year>198?</year> |
| 5836 | <publisher><unknown></publisher> |
| 5837 | |
| 5838 | <part name="flop1" interface="floppy_5_25"> |
| 5839 | <dataarea name="flop" size="368640"> |
| 5840 | <rom name="minedout.dsk" size="368640" crc="c2fa3908" sha1="233940e6b9c74485a24da52391ad5748bc7ac25c" offset="0" /> |
| 5841 | </dataarea> |
| 5842 | </part> |
| 5843 | </software> |
| 5844 | |
| 5845 | <software name="miniart"> |
| 5846 | <description>Mini Art</description> |
| 5847 | <year>1986</year> |
| 5848 | <publisher>Tibor Kerekes</publisher> |
| 5849 | |
| 5850 | <part name="flop1" interface="floppy_5_25"> |
| 5851 | <dataarea name="flop" size="368640"> |
| 5852 | <rom name="mini_art.dsk" size="368640" crc="c2bb80ff" sha1="d3b4ef5a37e1ddb3de9589723a2611324182fb7c" offset="0" /> |
| 5853 | </dataarea> |
| 5854 | </part> |
| 5855 | </software> |
| 5856 | |
| 5857 | <software name="miniddt"> |
| 5858 | <description>Mini DDT</description> |
| 5859 | <year>1986</year> |
| 5860 | <publisher>Gaba Software</publisher> |
| 5861 | |
| 5862 | <part name="flop1" interface="floppy_5_25"> |
| 5863 | <dataarea name="flop" size="368640"> |
| 5864 | <rom name="miniddt.dsk" size="368640" crc="b332edef" sha1="b44d14ec8f595d60473624dd193ca07d84983964" offset="0" /> |
| 5865 | </dataarea> |
| 5866 | </part> |
| 5867 | </software> |
| 5868 | |
| 5869 | <software name="minigolf"> |
| 5870 | <description>Minigolf</description> |
| 5871 | <year>198?</year> |
| 5872 | <publisher><unknown></publisher> |
| 5873 | |
| 5874 | <part name="flop1" interface="floppy_5_25"> |
| 5875 | <dataarea name="flop" size="368640"> |
| 5876 | <rom name="minigolf.dsk" size="368640" crc="5309be9a" sha1="9c1667592539191ce48159fc53ed10f16aa0d65b" offset="0" /> |
| 5877 | </dataarea> |
| 5878 | </part> |
| 5879 | </software> |
| 5880 | |
| 5881 | <software name="miniraj"> |
| 5882 | <description>Mini Rajzoló</description> |
| 5883 | <year>198?</year> |
| 5884 | <publisher><unknown></publisher> |
| 5885 | |
| 5886 | <part name="flop1" interface="floppy_5_25"> |
| 5887 | <dataarea name="flop" size="368640"> |
| 5888 | <rom name="minir.dsk" size="368640" crc="8072fef5" sha1="74dbe9f29cf5cf9767539ba496241b2b996a70e6" offset="0" /> |
| 5889 | </dataarea> |
| 5890 | </part> |
| 5891 | </software> |
| 5892 | |
| 5893 | <software name="minotaur"> |
| 5894 | <description>Minotaurusz</description> |
| 5895 | <year>198?</year> |
| 5896 | <publisher>Gigasoft</publisher> |
| 5897 | |
| 5898 | <part name="flop1" interface="floppy_5_25"> |
| 5899 | <dataarea name="flop" size="368640"> |
| 5900 | <rom name="minotaurusz.dsk" size="368640" crc="d89611a0" sha1="9780702566a97cdda67f75be32a34af91c31e336" offset="0" /> |
| 5901 | </dataarea> |
| 5902 | </part> |
| 5903 | </software> |
| 5904 | |
| 5905 | <software name="missgal"> |
| 5906 | <description>Mission Galaktic</description> |
| 5907 | <year>1987</year> |
| 5908 | <publisher>Hungarie Software</publisher> |
| 5909 | |
| 5910 | <part name="flop1" interface="floppy_5_25"> |
| 5911 | <dataarea name="flop" size="368640"> |
| 5912 | <rom name="missiongalaktic.dsk" size="368640" crc="c60c8758" sha1="806f94e3e77666931b60613de3ed00703eb97bab" offset="0" /> |
| 5913 | </dataarea> |
| 5914 | </part> |
| 5915 | </software> |
| 5916 | |
| 5917 | <software name="monge"> |
| 5918 | <description>Monge</description> |
| 5919 | <year>198?</year> |
| 5920 | <publisher><unknown></publisher> |
| 5921 | |
| 5922 | <part name="flop1" interface="floppy_5_25"> |
| 5923 | <dataarea name="flop" size="368640"> |
| 5924 | <rom name="monge.dsk" size="368640" crc="adb2d9d9" sha1="2270a2c0bcabe75a4a42b1f49313690902770b72" offset="0" /> |
| 5925 | </dataarea> |
| 5926 | </part> |
| 5927 | </software> |
| 5928 | |
| 5929 | <software name="monszkop"> |
| 5930 | <description>Monoszkóp</description> |
| 5931 | <year>2007</year> |
| 5932 | <publisher>Viktor Varga</publisher> |
| 5933 | |
| 5934 | <part name="flop1" interface="floppy_5_25"> |
| 5935 | <dataarea name="flop" size="368640"> |
| 5936 | <rom name="monoszkop.dsk" size="368640" crc="d4c08ce2" sha1="e22928be36d54dd4b55bff0c6096395ec33b0f59" offset="0" /> |
| 5937 | </dataarea> |
| 5938 | </part> |
| 5939 | </software> |
| 5940 | |
| 5941 | <software name="motorode"> |
| 5942 | <description>Motorodeó</description> |
| 5943 | <year>198?</year> |
| 5944 | <publisher>STV - Imre Ehreth</publisher> |
| 5945 | |
| 5946 | <part name="flop1" interface="floppy_5_25"> |
| 5947 | <dataarea name="flop" size="368640"> |
| 5948 | <rom name="motorodeo.dsk" size="368640" crc="8887a29f" sha1="16c0c9fa6f6594cdd4cf61654af26d102c407f11" offset="0" /> |
| 5949 | </dataarea> |
| 5950 | </part> |
| 5951 | </software> |
| 5952 | |
| 5953 | <software name="motorode2" cloneof="motorode"> |
| 5954 | <description>Motorodeó 2</description> |
| 5955 | <year>198?</year> |
| 5956 | <publisher>STV - Imre Ehreth</publisher> |
| 5957 | |
| 5958 | <part name="flop1" interface="floppy_5_25"> |
| 5959 | <dataarea name="flop" size="368640"> |
| 5960 | <rom name="motorodeo2.dsk" size="368640" crc="b903c989" sha1="b47b0ac80c0168203c3d94a448f0522f9bc99fb9" offset="0" /> |
| 5961 | </dataarea> |
| 5962 | </part> |
| 5963 | </software> |
| 5964 | |
| 5965 | <software name="mozdony"> |
| 5966 | <description>Mozdony</description> |
| 5967 | <year>198?</year> |
| 5968 | <publisher><unknown></publisher> |
| 5969 | |
| 5970 | <part name="flop1" interface="floppy_5_25"> |
| 5971 | <dataarea name="flop" size="368640"> |
| 5972 | <rom name="mozdony.dsk" size="368640" crc="1f5694d6" sha1="715faa2cc6d20da00f2fe46592b2fbf3af68cb08" offset="0" /> |
| 5973 | </dataarea> |
| 5974 | </part> |
| 5975 | </software> |
| 5976 | |
| 5977 | <software name="mozdonya" cloneof="mozdony"> |
| 5978 | <description>Mozdony (Alt)</description> |
| 5979 | <year>198?</year> |
| 5980 | <publisher><unknown></publisher> |
| 5981 | |
| 5982 | <part name="flop1" interface="floppy_5_25"> |
| 5983 | <dataarea name="flop" size="368640"> |
| 5984 | <rom name="mozdonyv2.dsk" size="368640" crc="5daf18fc" sha1="55bf44939a73696b7a24240d560173a7a581fc7d" offset="0" /> |
| 5985 | </dataarea> |
| 5986 | </part> |
| 5987 | </software> |
| 5988 | |
| 5989 | <software name="mozgoo"> |
| 5990 | <description>Mozgó O</description> |
| 5991 | <year>198?</year> |
| 5992 | <publisher><unknown></publisher> |
| 5993 | |
| 5994 | <part name="flop1" interface="floppy_5_25"> |
| 5995 | <dataarea name="flop" size="368640"> |
| 5996 | <rom name="mozgoov1.dsk" size="368640" crc="7dbb2044" sha1="e06bc49096c12ef2f0feec4a80d0006f0d04fcd8" offset="0" /> |
| 5997 | </dataarea> |
| 5998 | </part> |
| 5999 | </software> |
| 6000 | |
| 6001 | <software name="mozgooa" cloneof="mozgoo"> |
| 6002 | <description>Mozgó O (Alt)</description> |
| 6003 | <year>198?</year> |
| 6004 | <publisher><unknown></publisher> |
| 6005 | |
| 6006 | <part name="flop1" interface="floppy_5_25"> |
| 6007 | <dataarea name="flop" size="368640"> |
| 6008 | <rom name="mozgoov2.dsk" size="368640" crc="c9a238f1" sha1="5f47274f59dc2ef89b906eacfa8fb466099943ac" offset="0" /> |
| 6009 | </dataarea> |
| 6010 | </part> |
| 6011 | </software> |
| 6012 | |
| 6013 | <software name="mps1000"> |
| 6014 | <description>MPS-1000 Beállítás</description> |
| 6015 | <year>198?</year> |
| 6016 | <publisher><unknown></publisher> |
| 6017 | |
| 6018 | <part name="flop1" interface="floppy_5_25"> |
| 6019 | <dataarea name="flop" size="368640"> |
| 6020 | <rom name="mps1000.dsk" size="368640" crc="748704b2" sha1="5339729ceee8de67659d705909462d7c733bbfcc" offset="0" /> |
| 6021 | </dataarea> |
| 6022 | </part> |
| 6023 | </software> |
| 6024 | |
| 6025 | <software name="mralex"> |
| 6026 | <description>Mr. Alex</description> |
| 6027 | <year>1985</year> |
| 6028 | <publisher>Videoton</publisher> |
| 6029 | |
| 6030 | <part name="flop1" interface="floppy_5_25"> |
| 6031 | <dataarea name="flop" size="368640"> |
| 6032 | <rom name="mralex.dsk" size="368640" crc="723c506d" sha1="45c3aa848502f5a9d1bfd43f5a7ec4fe2b9503c1" offset="0" /> |
| 6033 | </dataarea> |
| 6034 | </part> |
| 6035 | </software> |
| 6036 | |
| 6037 | <software name="mralexp" cloneof="mralex"> |
| 6038 | <description>Mr. Alex (64+)</description> |
| 6039 | <year>1985</year> |
| 6040 | <publisher>Videoton</publisher> |
| 6041 | |
| 6042 | <part name="flop1" interface="floppy_5_25"> |
| 6043 | <dataarea name="flop" size="368640"> |
| 6044 | <rom name="mralexplus.dsk" size="368640" crc="4c1bb711" sha1="94a8e351e19d14476f9ab46a8eab20b3caf89e3f" offset="0" /> |
| 6045 | </dataarea> |
| 6046 | </part> |
| 6047 | </software> |
| 6048 | |
| 6049 | <software name="mralexa" cloneof="mralex"> |
| 6050 | <description>Mr. Alex (Alt)</description> |
| 6051 | <year>1985</year> |
| 6052 | <publisher>Videoton</publisher> |
| 6053 | |
| 6054 | <part name="flop1" interface="floppy_5_25"> |
| 6055 | <dataarea name="flop" size="368640"> |
| 6056 | <rom name="mralexv2.dsk" size="368640" crc="fcf2b47f" sha1="7597731360696726069c45481236aa22d9bd0c83" offset="0" /> |
| 6057 | </dataarea> |
| 6058 | </part> |
| 6059 | </software> |
| 6060 | |
| 6061 | <software name="mralexb" cloneof="mralex"> |
| 6062 | <description>Mr. Alex (Alt 2)</description> |
| 6063 | <year>1985</year> |
| 6064 | <publisher>Videoton</publisher> |
| 6065 | |
| 6066 | <part name="flop1" interface="floppy_5_25"> |
| 6067 | <dataarea name="flop" size="368640"> |
| 6068 | <rom name="mralexv3.dsk" size="368640" crc="8fbbef48" sha1="54069c548442e612d1f420e3a866a40d9d3f4573" offset="0" /> |
| 6069 | </dataarea> |
| 6070 | </part> |
| 6071 | </software> |
| 6072 | |
| 6073 | <software name="msdeng1"> |
| 6074 | <description>Medium State Degree in English - Preparatory Test No. 1</description> |
| 6075 | <year>1986</year> |
| 6076 | <publisher>VGy</publisher> |
| 6077 | |
| 6078 | <part name="flop1" interface="floppy_5_25"> |
| 6079 | <dataarea name="flop" size="368640"> |
| 6080 | <rom name="msdeng1.dsk" size="368640" crc="66dab331" sha1="49e0dfbdaa671eea1bd5fcd4f1a7953cd6369539" offset="0" /> |
| 6081 | </dataarea> |
| 6082 | </part> |
| 6083 | </software> |
| 6084 | |
| 6085 | <software name="msdeng2"> |
| 6086 | <description>Medium State Degree in English - Preparatory Test No. 2</description> |
| 6087 | <year>1986</year> |
| 6088 | <publisher>VGy</publisher> |
| 6089 | |
| 6090 | <part name="flop1" interface="floppy_5_25"> |
| 6091 | <dataarea name="flop" size="368640"> |
| 6092 | <rom name="msdeng2.dsk" size="368640" crc="f186ea23" sha1="082c4fe45b2e425cdfd8c9ac1460459159a4fd0e" offset="0" /> |
| 6093 | </dataarea> |
| 6094 | </part> |
| 6095 | </software> |
| 6096 | |
| 6097 | <software name="msdeng3"> |
| 6098 | <description>Medium State Degree in English - Preparatory Test No. 3</description> |
| 6099 | <year>1986</year> |
| 6100 | <publisher>VGy</publisher> |
| 6101 | |
| 6102 | <part name="flop1" interface="floppy_5_25"> |
| 6103 | <dataarea name="flop" size="368640"> |
| 6104 | <rom name="msdeng3.dsk" size="368640" crc="35eee3c9" sha1="839090ab78c9a841d3dd7d93f92cea015a89deb4" offset="0" /> |
| 6105 | </dataarea> |
| 6106 | </part> |
| 6107 | </software> |
| 6108 | |
| 6109 | <software name="musicdig"> |
| 6110 | <description>Music-Digit</description> |
| 6111 | <year>198?</year> |
| 6112 | <publisher><unknown></publisher> |
| 6113 | |
| 6114 | <part name="flop1" interface="floppy_5_25"> |
| 6115 | <dataarea name="flop" size="368640"> |
| 6116 | <rom name="musikdig.dsk" size="368640" crc="f112c769" sha1="1eb039b921402db7d1eeb6e059ee1f3932a4925e" offset="0" /> |
| 6117 | </dataarea> |
| 6118 | </part> |
| 6119 | </software> |
| 6120 | |
| 6121 | <software name="muu"> |
| 6122 | <description>Múú</description> |
| 6123 | <year>198?</year> |
| 6124 | <publisher><unknown></publisher> |
| 6125 | |
| 6126 | <part name="flop1" interface="floppy_5_25"> |
| 6127 | <dataarea name="flop" size="368640"> |
| 6128 | <rom name="muu.dsk" size="368640" crc="ab5b97e9" sha1="8c13477b1712ef388d72973dc0bd771544ecb711" offset="0" /> |
| 6129 | </dataarea> |
| 6130 | </part> |
| 6131 | </software> |
| 6132 | |
| 6133 | <software name="nagyfugg"> |
| 6134 | <description>Nagy Függvényábrázoló</description> |
| 6135 | <year>1987</year> |
| 6136 | <publisher>Novotrade</publisher> |
| 6137 | |
| 6138 | <part name="flop1" interface="floppy_5_25"> |
| 6139 | <dataarea name="flop" size="368640"> |
| 6140 | <rom name="nagyfuggvenyabrazolo.dsk" size="368640" crc="8c91af21" sha1="5b606256b228ab64ac9d2b211565743410896090" offset="0" /> |
| 6141 | </dataarea> |
| 6142 | </part> |
| 6143 | </software> |
| 6144 | |
| 6145 | <software name="naturaba"> |
| 6146 | <description>Back to the Nature</description> |
| 6147 | <year>198?</year> |
| 6148 | <publisher><unknown></publisher> |
| 6149 | |
| 6150 | <part name="flop1" interface="floppy_5_25"> |
| 6151 | <dataarea name="flop" size="368640"> |
| 6152 | <rom name="naturaba.dsk" size="368640" crc="1abae8f7" sha1="c56a1c937b796377b003347dc28f4415967ef8b1" offset="0" /> |
| 6153 | </dataarea> |
| 6154 | </part> |
| 6155 | </software> |
| 6156 | |
| 6157 | <software name="nautilus"> |
| 6158 | <description>Nautilus</description> |
| 6159 | <year>198?</year> |
| 6160 | <publisher>'a' Studio</publisher> |
| 6161 | |
| 6162 | <part name="flop1" interface="floppy_5_25"> |
| 6163 | <dataarea name="flop" size="368640"> |
| 6164 | <rom name="nautilus.dsk" size="368640" crc="e5b42196" sha1="498776cd0ffd37f257a262fce90dac8ae1e2c6df" offset="0" /> |
| 6165 | </dataarea> |
| 6166 | </part> |
| 6167 | </software> |
| 6168 | |
| 6169 | <software name="nebulus"> |
| 6170 | <description>Nebulus</description> |
| 6171 | <year>198?</year> |
| 6172 | <publisher>C.S. Software</publisher> |
| 6173 | |
| 6174 | <part name="flop1" interface="floppy_5_25"> |
| 6175 | <dataarea name="flop" size="368640"> |
| 6176 | <rom name="nebulus.dsk" size="368640" crc="ed1b77a8" sha1="13789687a210fba14bb952c2cf6cee5780da361f" offset="0" /> |
| 6177 | </dataarea> |
| 6178 | </part> |
| 6179 | </software> |
| 6180 | |
| 6181 | <software name="nightsha"> |
| 6182 | <description>Night Shade</description> |
| 6183 | <year>1985</year> |
| 6184 | <publisher>'a' Studio</publisher> |
| 6185 | |
| 6186 | <part name="flop1" interface="floppy_5_25"> |
| 6187 | <dataarea name="flop" size="368640"> |
| 6188 | <rom name="nightshade.dsk" size="368640" crc="60f764b2" sha1="2b361b92b1081fbd9244035060d14b68f7479b0c" offset="0" /> |
| 6189 | </dataarea> |
| 6190 | </part> |
| 6191 | </software> |
| 6192 | |
| 6193 | <software name="nim"> |
| 6194 | <description>Nim</description> |
| 6195 | <year>198?</year> |
| 6196 | <publisher>L.S.</publisher> |
| 6197 | |
| 6198 | <part name="flop1" interface="floppy_5_25"> |
| 6199 | <dataarea name="flop" size="368640"> |
| 6200 | <rom name="nim.dsk" size="368640" crc="ec28f298" sha1="164a8cc790ac34706a6f6616fc95f30446988e43" offset="0" /> |
| 6201 | </dataarea> |
| 6202 | </part> |
| 6203 | </software> |
| 6204 | |
| 6205 | <software name="ninja"> |
| 6206 | <description>Ninja</description> |
| 6207 | <year>198?</year> |
| 6208 | <publisher>Béla Takács</publisher> |
| 6209 | |
| 6210 | <part name="flop1" interface="floppy_5_25"> |
| 6211 | <dataarea name="flop" size="368640"> |
| 6212 | <rom name="ninja_v1.dsk" size="368640" crc="37f2c152" sha1="d1c5acb7a8971a9908ac41e06340858f49ff1baa" offset="0" /> |
| 6213 | </dataarea> |
| 6214 | </part> |
| 6215 | </software> |
| 6216 | |
| 6217 | <software name="ninjaa" cloneof="ninja"> |
| 6218 | <description>Ninja (Alt)</description> |
| 6219 | <year>198?</year> |
| 6220 | <publisher>Béla Takács</publisher> |
| 6221 | |
| 6222 | <part name="flop1" interface="floppy_5_25"> |
| 6223 | <dataarea name="flop" size="368640"> |
| 6224 | <rom name="ninja_v2.dsk" size="368640" crc="b317f2ef" sha1="18e7df426dfe1137e62277bb89ec1b9b7aa9f970" offset="0" /> |
| 6225 | </dataarea> |
| 6226 | </part> |
| 6227 | </software> |
| 6228 | |
| 6229 | <software name="ninoo"> |
| 6230 | <description>Ninóó</description> |
| 6231 | <year>198?</year> |
| 6232 | <publisher><unknown></publisher> |
| 6233 | |
| 6234 | <part name="flop1" interface="floppy_5_25"> |
| 6235 | <dataarea name="flop" size="368640"> |
| 6236 | <rom name="ninoo.dsk" size="368640" crc="e048eb3f" sha1="a886d215fde0280bfbdfbf05ae23bdab90280495" offset="0" /> |
| 6237 | </dataarea> |
| 6238 | </part> |
| 6239 | </software> |
| 6240 | |
| 6241 | <software name="no"> |
| 6242 | <description>Nő</description> |
| 6243 | <year>198?</year> |
| 6244 | <publisher><unknown></publisher> |
| 6245 | |
| 6246 | <part name="flop1" interface="floppy_5_25"> |
| 6247 | <dataarea name="flop" size="368640"> |
| 6248 | <rom name="no.dsk" size="368640" crc="b83df24d" sha1="b51111c5b2ed5cb9095f1d3d55f63bc99d985213" offset="0" /> |
| 6249 | </dataarea> |
| 6250 | </part> |
| 6251 | </software> |
| 6252 | |
| 6253 | <software name="novocopy"> |
| 6254 | <description>Novotrade-Copy</description> |
| 6255 | <year>198?</year> |
| 6256 | <publisher><unknown></publisher> |
| 6257 | |
| 6258 | <part name="flop1" interface="floppy_5_25"> |
| 6259 | <dataarea name="flop" size="368640"> |
| 6260 | <rom name="novocopy.dsk" size="368640" crc="758c6ae0" sha1="f842fbcb1a56a20b8a82cbd251a5568611d64ccf" offset="0" /> |
| 6261 | </dataarea> |
| 6262 | </part> |
| 6263 | </software> |
| 6264 | |
| 6265 | <software name="novotape" cloneof="novocopy"> |
| 6266 | <description>Novotrade-Copy (Tape)</description> |
| 6267 | <year>198?</year> |
| 6268 | <publisher><unknown></publisher> |
| 6269 | |
| 6270 | <part name="flop1" interface="floppy_5_25"> |
| 6271 | <dataarea name="flop" size="368640"> |
| 6272 | <rom name="novotape.dsk" size="368640" crc="ec034666" sha1="ddd05b1a63263e1cb74cafad3f2a01e8a13d046e" offset="0" /> |
| 6273 | </dataarea> |
| 6274 | </part> |
| 6275 | </software> |
| 6276 | |
| 6277 | <software name="nyakter"> |
| 6278 | <description>Nyáktervező</description> |
| 6279 | <year>198?</year> |
| 6280 | <publisher>TVCM</publisher> |
| 6281 | |
| 6282 | <part name="flop1" interface="floppy_5_25"> |
| 6283 | <dataarea name="flop" size="368640"> |
| 6284 | <rom name="nyaktervezo.dsk" size="368640" crc="896eba37" sha1="d67363bf0466898cec31c9cb1b3af87e6d032bf9" offset="0" /> |
| 6285 | </dataarea> |
| 6286 | </part> |
| 6287 | </software> |
| 6288 | |
| 6289 | <software name="nyelvtan"> |
| 6290 | <description>Nyelvtanító Program</description> |
| 6291 | <year>1986</year> |
| 6292 | <publisher>ZMKMF</publisher> |
| 6293 | |
| 6294 | <part name="flop1" interface="floppy_5_25"> |
| 6295 | <dataarea name="flop" size="368640"> |
| 6296 | <rom name="nyelvtanito.dsk" size="368640" crc="dcf6e651" sha1="f897e9f23a3f7bfef6e9fe4f6d25c23efc41ac12" offset="0" /> |
| 6297 | </dataarea> |
| 6298 | </part> |
| 6299 | </software> |
| 6300 | |
| 6301 | <software name="nyilvan"> |
| 6302 | <description>Nyilvántartó Program</description> |
| 6303 | <year>1989</year> |
| 6304 | <publisher>Berysoft</publisher> |
| 6305 | |
| 6306 | <part name="flop1" interface="floppy_5_25"> |
| 6307 | <dataarea name="flop" size="368640"> |
| 6308 | <rom name="nyilvantarto.dsk" size="368640" crc="dc5a1ad0" sha1="93401b99a4ec5c53190f03dd919acf56c211a9f2" offset="0" /> |
| 6309 | </dataarea> |
| 6310 | </part> |
| 6311 | </software> |
| 6312 | |
| 6313 | <software name="nyulvada"> |
| 6314 | <description>Nyúlvadászat</description> |
| 6315 | <year>198?</year> |
| 6316 | <publisher><unknown></publisher> |
| 6317 | |
| 6318 | <part name="flop1" interface="floppy_5_25"> |
| 6319 | <dataarea name="flop" size="368640"> |
| 6320 | <rom name="nyulvadaszat.dsk" size="368640" crc="23aeda7e" sha1="65480395440aa2debbe6634deb473601686106bb" offset="0" /> |
| 6321 | </dataarea> |
| 6322 | </part> |
| 6323 | </software> |
| 6324 | |
| 6325 | <software name="nyuszi1"> |
| 6326 | <description>Nyuszi Olvasni Tanít 1</description> |
| 6327 | <year>198?</year> |
| 6328 | <publisher>György Papp - László Ludányi - Mónika Fekete</publisher> |
| 6329 | |
| 6330 | <part name="flop1" interface="floppy_5_25"> |
| 6331 | <dataarea name="flop" size="368640"> |
| 6332 | <rom name="nyuszi1.dsk" size="368640" crc="5fce2b0b" sha1="fb4d71d6cd15767ac6fa1ba45975ad8b241463d6" offset="0" /> |
| 6333 | </dataarea> |
| 6334 | </part> |
| 6335 | </software> |
| 6336 | |
| 6337 | <software name="nyuszi2"> |
| 6338 | <description>Nyuszi Olvasni Tanít 2</description> |
| 6339 | <year>198?</year> |
| 6340 | <publisher>György Papp - László Ludányi - Mónika Fekete</publisher> |
| 6341 | |
| 6342 | <part name="flop1" interface="floppy_5_25"> |
| 6343 | <dataarea name="flop" size="368640"> |
| 6344 | <rom name="nyuszi2.dsk" size="368640" crc="9afd7e64" sha1="70adb09010a979b5d1567f179aaf6338d1f4de0f" offset="0" /> |
| 6345 | </dataarea> |
| 6346 | </part> |
| 6347 | </software> |
| 6348 | |
| 6349 | <software name="nyuszi3"> |
| 6350 | <description>Nyuszi Olvasni Tanít 3</description> |
| 6351 | <year>198?</year> |
| 6352 | <publisher>György Papp - László Ludányi - Mónika Fekete</publisher> |
| 6353 | |
| 6354 | <part name="flop1" interface="floppy_5_25"> |
| 6355 | <dataarea name="flop" size="368640"> |
| 6356 | <rom name="nyuszi3.dsk" size="368640" crc="ce42a55b" sha1="d082492f76765388e010309c06800dcc580a7348" offset="0" /> |
| 6357 | </dataarea> |
| 6358 | </part> |
| 6359 | </software> |
| 6360 | |
| 6361 | <software name="nyuszi4"> |
| 6362 | <description>Nyuszi Olvasni Tanít 4</description> |
| 6363 | <year>198?</year> |
| 6364 | <publisher>György Papp - László Ludányi - Mónika Fekete</publisher> |
| 6365 | |
| 6366 | <part name="flop1" interface="floppy_5_25"> |
| 6367 | <dataarea name="flop" size="368640"> |
| 6368 | <rom name="nyuszi4.dsk" size="368640" crc="9a457779" sha1="69e54ae70940473c21e17da89a0396a03dbbde92" offset="0" /> |
| 6369 | </dataarea> |
| 6370 | </part> |
| 6371 | </software> |
| 6372 | |
| 6373 | <software name="nyuszi5"> |
| 6374 | <description>Nyuszi Olvasni Tanít 5</description> |
| 6375 | <year>198?</year> |
| 6376 | <publisher>György Papp - László Ludányi - Mónika Fekete</publisher> |
| 6377 | |
| 6378 | <part name="flop1" interface="floppy_5_25"> |
| 6379 | <dataarea name="flop" size="368640"> |
| 6380 | <rom name="nyuszi5.dsk" size="368640" crc="ccd36745" sha1="a26c9e88d4bb7c2c3c2c412a675f697c040bde03" offset="0" /> |
| 6381 | </dataarea> |
| 6382 | </part> |
| 6383 | </software> |
| 6384 | |
| 6385 | <software name="nyuszi6"> |
| 6386 | <description>Nyuszi Olvasni Tanít 6</description> |
| 6387 | <year>198?</year> |
| 6388 | <publisher>György Papp - László Ludányi - Mónika Fekete</publisher> |
| 6389 | |
| 6390 | <part name="flop1" interface="floppy_5_25"> |
| 6391 | <dataarea name="flop" size="368640"> |
| 6392 | <rom name="nyuszi6.dsk" size="368640" crc="19349e31" sha1="04edcca5d6c97d3f891e1b69b11bcd8a60798c55" offset="0" /> |
| 6393 | </dataarea> |
| 6394 | </part> |
| 6395 | </software> |
| 6396 | |
| 6397 | <software name="olajsejk"> |
| 6398 | <description>Olajsejk</description> |
| 6399 | <year>198?</year> |
| 6400 | <publisher>Software in LUX</publisher> |
| 6401 | |
| 6402 | <part name="flop1" interface="floppy_5_25"> |
| 6403 | <dataarea name="flop" size="368640"> |
| 6404 | <rom name="olajsejk.dsk" size="368640" crc="86231b86" sha1="423589b8ef7d450f3ddbeeaf3858185e200c4071" offset="0" /> |
| 6405 | </dataarea> |
| 6406 | </part> |
| 6407 | </software> |
| 6408 | |
| 6409 | <software name="optika"> |
| 6410 | <description>Optika</description> |
| 6411 | <year>1987</year> |
| 6412 | <publisher>Zoltán Rózsavölgyi</publisher> |
| 6413 | |
| 6414 | <part name="flop1" interface="floppy_5_25"> |
| 6415 | <dataarea name="flop" size="368640"> |
| 6416 | <rom name="optika.dsk" size="368640" crc="a2608400" sha1="5ba1778d4284ca9e9332358b8872f651cb6625d1" offset="0" /> |
| 6417 | </dataarea> |
| 6418 | </part> |
| 6419 | </software> |
| 6420 | |
| 6421 | <software name="ordogmot"> |
| 6422 | <description>Ördögmotor</description> |
| 6423 | <year>1990</year> |
| 6424 | <publisher>STV</publisher> |
| 6425 | |
| 6426 | <part name="flop1" interface="floppy_5_25"> |
| 6427 | <dataarea name="flop" size="368640"> |
| 6428 | <rom name="ordogmotor.dsk" size="368640" crc="a8426659" sha1="5c17ec95e1efd8ec0f55fde36e65ad28baa07f07" offset="0" /> |
| 6429 | </dataarea> |
| 6430 | </part> |
| 6431 | </software> |
| 6432 | |
| 6433 | <software name="orgona"> |
| 6434 | <description>Orgona</description> |
| 6435 | <year>1986</year> |
| 6436 | <publisher>László Bata</publisher> |
| 6437 | |
| 6438 | <part name="flop1" interface="floppy_5_25"> |
| 6439 | <dataarea name="flop" size="368640"> |
| 6440 | <rom name="orgona.dsk" size="368640" crc="abba09a4" sha1="e8cfd69cabd1dc03b9dd6e831999507853e20066" offset="0" /> |
| 6441 | </dataarea> |
| 6442 | </part> |
| 6443 | </software> |
| 6444 | |
| 6445 | <software name="orjarat"> |
| 6446 | <description>Őrjárat</description> |
| 6447 | <year>198?</year> |
| 6448 | <publisher>Béla Takács</publisher> |
| 6449 | |
| 6450 | <part name="flop1" interface="floppy_5_25"> |
| 6451 | <dataarea name="flop" size="368640"> |
| 6452 | <rom name="orjarat.dsk" size="368640" crc="89ad125b" sha1="f39a2bea60da78f01110eb9a81d5b27f4c23970c" offset="0" /> |
| 6453 | </dataarea> |
| 6454 | </part> |
| 6455 | </software> |
| 6456 | |
| 6457 | <software name="ostrom"> |
| 6458 | <description>Ostrom</description> |
| 6459 | <year>198?</year> |
| 6460 | <publisher><unknown></publisher> |
| 6461 | |
| 6462 | <part name="flop1" interface="floppy_5_25"> |
| 6463 | <dataarea name="flop" size="368640"> |
| 6464 | <rom name="ostrom.dsk" size="368640" crc="dffe0366" sha1="e6252ab79eb604b6e03ada5be981dd3d8fd9012e" offset="0" /> |
| 6465 | </dataarea> |
| 6466 | </part> |
| 6467 | </software> |
| 6468 | |
| 6469 | <software name="oszcilo"> |
| 6470 | <description>Digitális Tároló-Oszciloszkóp</description> |
| 6471 | <year>1986</year> |
| 6472 | <publisher><unknown></publisher> |
| 6473 | |
| 6474 | <part name="flop1" interface="floppy_5_25"> |
| 6475 | <dataarea name="flop" size="368640"> |
| 6476 | <rom name="oszcilo.dsk" size="368640" crc="fb457014" sha1="f1ac94a7e197500f454ce6b09fec9626bfebba70" offset="0" /> |
| 6477 | </dataarea> |
| 6478 | </part> |
| 6479 | </software> |
| 6480 | |
| 6481 | <software name="oszkar"> |
| 6482 | <description>Oszkár a Lovag</description> |
| 6483 | <year>198?</year> |
| 6484 | <publisher>STV</publisher> |
| 6485 | |
| 6486 | <part name="flop1" interface="floppy_5_25"> |
| 6487 | <dataarea name="flop" size="368640"> |
| 6488 | <rom name="oszkaralovag.dsk" size="368640" crc="669cdacc" sha1="33c154b80b18b3b185302d3fee459e46c3af0c6b" offset="0" /> |
| 6489 | </dataarea> |
| 6490 | </part> |
| 6491 | </software> |
| 6492 | |
| 6493 | <software name="othello"> |
| 6494 | <description>Othello</description> |
| 6495 | <year>198?</year> |
| 6496 | <publisher><unknown></publisher> |
| 6497 | |
| 6498 | <part name="flop1" interface="floppy_5_25"> |
| 6499 | <dataarea name="flop" size="368640"> |
| 6500 | <rom name="othelev.dsk" size="368640" crc="923fe4b5" sha1="648b2d341aa49df55ec3f4ba17ec75b8d0a39f0c" offset="0" /> |
| 6501 | </dataarea> |
| 6502 | </part> |
| 6503 | </software> |
| 6504 | |
| 6505 | <software name="othelloa" cloneof="othello"> |
| 6506 | <description>Othello (Alt)</description> |
| 6507 | <year>198?</year> |
| 6508 | <publisher><unknown></publisher> |
| 6509 | |
| 6510 | <part name="flop1" interface="floppy_5_25"> |
| 6511 | <dataarea name="flop" size="368640"> |
| 6512 | <rom name="othello.dsk" size="368640" crc="d9e755c3" sha1="45e15660c0a0d4ca4fbfd6d6abedc728243bb09a" offset="0" /> |
| 6513 | </dataarea> |
| 6514 | </part> |
| 6515 | </software> |
| 6516 | |
| 6517 | <software name="othel3d"> |
| 6518 | <description>Othello 3D</description> |
| 6519 | <year>1988</year> |
| 6520 | <publisher>Ludanyi Laszlo</publisher> |
| 6521 | |
| 6522 | <part name="flop1" interface="floppy_5_25"> |
| 6523 | <dataarea name="flop" size="368640"> |
| 6524 | <rom name="othello3d.dsk" size="368640" crc="1d060dc9" sha1="399c7e501978aa9e80e5eac6a009161185625953" offset="0" /> |
| 6525 | </dataarea> |
| 6526 | </part> |
| 6527 | </software> |
| 6528 | |
| 6529 | <software name="ottolova"> |
| 6530 | <description>Ottó a Lovag</description> |
| 6531 | <year>198?</year> |
| 6532 | <publisher>Laszlo Giricz</publisher> |
| 6533 | |
| 6534 | <part name="flop1" interface="floppy_5_25"> |
| 6535 | <dataarea name="flop" size="368640"> |
| 6536 | <rom name="ottoalovag.dsk" size="368640" crc="a312fd3c" sha1="5d5b275669732aa505d44c945f14f1308ccff563" offset="0" /> |
| 6537 | </dataarea> |
| 6538 | </part> |
| 6539 | </software> |
| 6540 | |
| 6541 | <software name="outhang"> |
| 6542 | <description>Out-Hang</description> |
| 6543 | <year>198?</year> |
| 6544 | <publisher>Szabolcs Rota</publisher> |
| 6545 | |
| 6546 | <part name="flop1" interface="floppy_5_25"> |
| 6547 | <dataarea name="flop" size="368640"> |
| 6548 | <rom name="out-hang.dsk" size="368640" crc="1580aa8a" sha1="f6079055006e7e2c7b933fa417b37adf7ca15224" offset="0" /> |
| 6549 | </dataarea> |
| 6550 | </part> |
| 6551 | </software> |
| 6552 | |
| 6553 | <software name="pacific"> |
| 6554 | <description>Pacific</description> |
| 6555 | <year>1987</year> |
| 6556 | <publisher>Zsolt Dobrovics</publisher> |
| 6557 | |
| 6558 | <part name="flop1" interface="floppy_5_25"> |
| 6559 | <dataarea name="flop" size="368640"> |
| 6560 | <rom name="pacific.dsk" size="368640" crc="39a18ab1" sha1="800638e76f8ba61e8b0e3bc312f20decccb79549" offset="0" /> |
| 6561 | </dataarea> |
| 6562 | </part> |
| 6563 | </software> |
| 6564 | |
| 6565 | <software name="pacifica" cloneof="pacific"> |
| 6566 | <description>Pacific (Alt)</description> |
| 6567 | <year>1987</year> |
| 6568 | <publisher>Zsolt Dobrovics</publisher> |
| 6569 | |
| 6570 | <part name="flop1" interface="floppy_5_25"> |
| 6571 | <dataarea name="flop" size="368640"> |
| 6572 | <rom name="pacifv2.dsk" size="368640" crc="32f99198" sha1="a2fa40ec8a3cf3cc4860db31bd2e8bc714d8814f" offset="0" /> |
| 6573 | </dataarea> |
| 6574 | </part> |
| 6575 | </software> |
| 6576 | |
| 6577 | <software name="packman"> |
| 6578 | <description>Pack Man</description> |
| 6579 | <year>198?</year> |
| 6580 | <publisher>'a' Studio</publisher> |
| 6581 | |
| 6582 | <part name="flop1" interface="floppy_5_25"> |
| 6583 | <dataarea name="flop" size="368640"> |
| 6584 | <rom name="packman_v1.dsk" size="368640" crc="04569528" sha1="4f7b2c0b0dcd2113cc51bdbafff0ada27c3368fc" offset="0" /> |
| 6585 | </dataarea> |
| 6586 | </part> |
| 6587 | </software> |
| 6588 | |
| 6589 | <software name="packmana" cloneof="packman"> |
| 6590 | <description>Pack Man (Alt)</description> |
| 6591 | <year>198?</year> |
| 6592 | <publisher>'a' Studio</publisher> |
| 6593 | |
| 6594 | <part name="flop1" interface="floppy_5_25"> |
| 6595 | <dataarea name="flop" size="368640"> |
| 6596 | <rom name="packman_v2.dsk" size="368640" crc="fb9c61f3" sha1="6c94d3d86b913bec6bc151a540e4d2b68a527609" offset="0" /> |
| 6597 | </dataarea> |
| 6598 | </part> |
| 6599 | </software> |
| 6600 | |
| 6601 | <software name="panik"> |
| 6602 | <description>Pánik</description> |
| 6603 | <year>1991</year> |
| 6604 | <publisher>STV</publisher> |
| 6605 | |
| 6606 | <part name="flop1" interface="floppy_5_25"> |
| 6607 | <dataarea name="flop" size="368640"> |
| 6608 | <rom name="panik.dsk" size="368640" crc="00688f61" sha1="b405e39afdff1b34fd406f12b806ee53367c7d63" offset="0" /> |
| 6609 | </dataarea> |
| 6610 | </part> |
| 6611 | </software> |
| 6612 | |
| 6613 | <software name="panikj" cloneof="panik"> |
| 6614 | <description>Pánik (Joystick)</description> |
| 6615 | <year>1991</year> |
| 6616 | <publisher>STV</publisher> |
| 6617 | |
| 6618 | <part name="flop1" interface="floppy_5_25"> |
| 6619 | <dataarea name="flop" size="368640"> |
| 6620 | <rom name="panikjoy.dsk" size="368640" crc="4a7b3c81" sha1="0c47899e42e26d7977694fb2528bf920a774f0f0" offset="0" /> |
| 6621 | </dataarea> |
| 6622 | </part> |
| 6623 | </software> |
| 6624 | |
| 6625 | <software name="panikste"> |
| 6626 | <description>Pánik (Steve Software)</description> |
| 6627 | <year>1988</year> |
| 6628 | <publisher>Steve Software</publisher> |
| 6629 | |
| 6630 | <part name="flop1" interface="floppy_5_25"> |
| 6631 | <dataarea name="flop" size="368640"> |
| 6632 | <rom name="panikste.dsk" size="368640" crc="5a6b58bf" sha1="4ada4fcf2377656130fbc17dc68319050966f1ac" offset="0" /> |
| 6633 | </dataarea> |
| 6634 | </part> |
| 6635 | </software> |
| 6636 | |
| 6637 | <software name="para3ter"> |
| 6638 | <description>Parabolikus Háromszög Területe</description> |
| 6639 | <year>198?</year> |
| 6640 | <publisher><unknown></publisher> |
| 6641 | |
| 6642 | <part name="flop1" interface="floppy_5_25"> |
| 6643 | <dataarea name="flop" size="368640"> |
| 6644 | <rom name="para3ter.dsk" size="368640" crc="a87105a0" sha1="959cbe70b1af67e9a69f9e81e76ed02bfd7321a3" offset="0" /> |
| 6645 | </dataarea> |
| 6646 | </part> |
| 6647 | </software> |
| 6648 | |
| 6649 | <software name="parbaj"> |
| 6650 | <description>Párbaj</description> |
| 6651 | <year>1991</year> |
| 6652 | <publisher>STV</publisher> |
| 6653 | |
| 6654 | <part name="flop1" interface="floppy_5_25"> |
| 6655 | <dataarea name="flop" size="368640"> |
| 6656 | <rom name="parbaj.dsk" size="368640" crc="3476c1b0" sha1="817c337a040b0fdeb6f169a46710adc19590938c" offset="0" /> |
| 6657 | </dataarea> |
| 6658 | </part> |
| 6659 | </software> |
| 6660 | |
| 6661 | <software name="parbaja" cloneof="parbaj"> |
| 6662 | <description>Párbaj (Alt)</description> |
| 6663 | <year>1991</year> |
| 6664 | <publisher>STV</publisher> |
| 6665 | |
| 6666 | <part name="flop1" interface="floppy_5_25"> |
| 6667 | <dataarea name="flop" size="368640"> |
| 6668 | <rom name="parbajv2.dsk" size="368640" crc="831ff74b" sha1="0f787f48db2a75a76523308a34320c229c27076a" offset="0" /> |
| 6669 | </dataarea> |
| 6670 | </part> |
| 6671 | </software> |
| 6672 | |
| 6673 | <software name="parhrezg"> |
| 6674 | <description>Párhuzamos Rezgések</description> |
| 6675 | <year>198?</year> |
| 6676 | <publisher><unknown></publisher> |
| 6677 | |
| 6678 | <part name="flop1" interface="floppy_5_25"> |
| 6679 | <dataarea name="flop" size="368640"> |
| 6680 | <rom name="parhrezg.dsk" size="368640" crc="ac9fb2e4" sha1="51a6ec634f0411d7daf6804d4c2a4a0018ac945a" offset="0" /> |
| 6681 | </dataarea> |
| 6682 | </part> |
| 6683 | </software> |
| 6684 | |
| 6685 | <software name="paszians"> |
| 6686 | <description>Pasziánsz</description> |
| 6687 | <year>198?</year> |
| 6688 | <publisher><unknown></publisher> |
| 6689 | |
| 6690 | <part name="flop1" interface="floppy_5_25"> |
| 6691 | <dataarea name="flop" size="368640"> |
| 6692 | <rom name="paszians.dsk" size="368640" crc="f01cdc8c" sha1="5a1ab056bcfaf4df67c423425210d4cec7ed9702" offset="0" /> |
| 6693 | </dataarea> |
| 6694 | </part> |
| 6695 | </software> |
| 6696 | |
| 6697 | <software name="peepshow"> |
| 6698 | <description>Peep Show</description> |
| 6699 | <year>1984</year> |
| 6700 | <publisher>STV</publisher> |
| 6701 | |
| 6702 | <part name="flop1" interface="floppy_5_25"> |
| 6703 | <dataarea name="flop" size="368640"> |
| 6704 | <rom name="pipso.dsk" size="368640" crc="fc4fbc85" sha1="e94511ddffb43afb4600d14aae99897c929aab9f" offset="0" /> |
| 6705 | </dataarea> |
| 6706 | </part> |
| 6707 | </software> |
| 6708 | |
| 6709 | <software name="pemzli"> |
| 6710 | <description>Pemzli</description> |
| 6711 | <year>198?</year> |
| 6712 | <publisher>King ec Software</publisher> |
| 6713 | |
| 6714 | <part name="flop1" interface="floppy_5_25"> |
| 6715 | <dataarea name="flop" size="368640"> |
| 6716 | <rom name="pemzli.dsk" size="368640" crc="6dcfc2bd" sha1="e204b6c9b383576f13d66a4b839c631144571803" offset="0" /> |
| 6717 | </dataarea> |
| 6718 | </part> |
| 6719 | </software> |
| 6720 | |
| 6721 | <software name="pentomin"> |
| 6722 | <description>Pentomino</description> |
| 6723 | <year>198?</year> |
| 6724 | <publisher>STV</publisher> |
| 6725 | |
| 6726 | <part name="flop1" interface="floppy_5_25"> |
| 6727 | <dataarea name="flop" size="368640"> |
| 6728 | <rom name="pentomino.dsk" size="368640" crc="4f8e0c9b" sha1="ecdd4ca8fb1db857eb89856fc1c63b9e3b5478df" offset="0" /> |
| 6729 | </dataarea> |
| 6730 | </part> |
| 6731 | </software> |
| 6732 | |
| 6733 | <software name="pentolei"> |
| 6734 | <description>Pentomino Leírás</description> |
| 6735 | <year>198?</year> |
| 6736 | <publisher>STV</publisher> |
| 6737 | |
| 6738 | <part name="flop1" interface="floppy_5_25"> |
| 6739 | <dataarea name="flop" size="368640"> |
| 6740 | <rom name="pentomino_leiras.dsk" size="368640" crc="12359069" sha1="2da41806123014f194ad475ffe2441f52b3c0b62" offset="0" /> |
| 6741 | </dataarea> |
| 6742 | </part> |
| 6743 | </software> |
| 6744 | |
| 6745 | <software name="perifer"> |
| 6746 | <description>Kazetta-Floppy Választó</description> |
| 6747 | <year>198?</year> |
| 6748 | <publisher><unknown></publisher> |
| 6749 | |
| 6750 | <part name="flop1" interface="floppy_5_25"> |
| 6751 | <dataarea name="flop" size="368640"> |
| 6752 | <rom name="perifer.dsk" size="368640" crc="7e818e9f" sha1="c70da41b0de8a57d93cf89a85385665b1cee7c09" offset="0" /> |
| 6753 | </dataarea> |
| 6754 | </part> |
| 6755 | </software> |
| 6756 | |
| 6757 | <software name="pifubrut"> |
| 6758 | <description>Pifu és Brutusz</description> |
| 6759 | <year>1988</year> |
| 6760 | <publisher>SonySoft</publisher> |
| 6761 | |
| 6762 | <part name="flop1" interface="floppy_5_25"> |
| 6763 | <dataarea name="flop" size="368640"> |
| 6764 | <rom name="pifubrut.dsk" size="368640" crc="27a1aede" sha1="8f79b597710f9a407a15d0fab56e3eb7bc8765d2" offset="0" /> |
| 6765 | </dataarea> |
| 6766 | </part> |
| 6767 | </software> |
| 6768 | |
| 6769 | <software name="piki01"> |
| 6770 | <description>Piki 01</description> |
| 6771 | <year>198?</year> |
| 6772 | <publisher><unknown></publisher> |
| 6773 | |
| 6774 | <part name="flop1" interface="floppy_5_25"> |
| 6775 | <dataarea name="flop" size="737280"> |
| 6776 | <rom name="piki 01.dsk" size="737280" crc="e424360a" sha1="96a3f046324d0a8c5ae0a9e95c808cfba3229b5a" offset="0" /> |
| 6777 | </dataarea> |
| 6778 | </part> |
| 6779 | </software> |
| 6780 | |
| 6781 | <software name="piki02"> |
| 6782 | <description>Piki 02</description> |
| 6783 | <year>198?</year> |
| 6784 | <publisher><unknown></publisher> |
| 6785 | |
| 6786 | <part name="flop1" interface="floppy_5_25"> |
| 6787 | <dataarea name="flop" size="737280"> |
| 6788 | <rom name="piki 02.dsk" size="737280" crc="a86fd188" sha1="13e30e03e509e833476143b9320c9be238e5e87a" offset="0" /> |
| 6789 | </dataarea> |
| 6790 | </part> |
| 6791 | </software> |
| 6792 | |
| 6793 | <software name="piki03"> |
| 6794 | <description>Piki 03</description> |
| 6795 | <year>198?</year> |
| 6796 | <publisher><unknown></publisher> |
| 6797 | |
| 6798 | <part name="flop1" interface="floppy_5_25"> |
| 6799 | <dataarea name="flop" size="737280"> |
| 6800 | <rom name="piki 03.dsk" size="737280" crc="0b44e12c" sha1="79a21df49276f2583ec0b85503d0bd5a04ef02f9" offset="0" /> |
| 6801 | </dataarea> |
| 6802 | </part> |
| 6803 | </software> |
| 6804 | |
| 6805 | <software name="piki04"> |
| 6806 | <description>Piki 04</description> |
| 6807 | <year>198?</year> |
| 6808 | <publisher><unknown></publisher> |
| 6809 | |
| 6810 | <part name="flop1" interface="floppy_5_25"> |
| 6811 | <dataarea name="flop" size="737280"> |
| 6812 | <rom name="piki 04.dsk" size="737280" crc="3717f5ff" sha1="c41a5402abd0c5425ea4bf32dc6f27fb73246a9e" offset="0" /> |
| 6813 | </dataarea> |
| 6814 | </part> |
| 6815 | </software> |
| 6816 | |
| 6817 | <software name="piki05"> |
| 6818 | <description>Piki 05 (Bad)</description> |
| 6819 | <year>198?</year> |
| 6820 | <publisher><unknown></publisher> |
| 6821 | |
| 6822 | <part name="flop1" interface="floppy_5_25"> |
| 6823 | <dataarea name="flop" size="737280"> |
| 6824 | <rom name="piki 05 [b].dsk" size="737280" crc="e1091b09" sha1="4c8bb8ea249db9d7fc282c2397527896a0668cb0" offset="0" status="baddump" /> |
| 6825 | </dataarea> |
| 6826 | </part> |
| 6827 | </software> |
| 6828 | |
| 6829 | <software name="piki06"> |
| 6830 | <description>Piki 06</description> |
| 6831 | <year>198?</year> |
| 6832 | <publisher><unknown></publisher> |
| 6833 | |
| 6834 | <part name="flop1" interface="floppy_5_25"> |
| 6835 | <dataarea name="flop" size="737280"> |
| 6836 | <rom name="piki 06.dsk" size="737280" crc="abe568b9" sha1="d06bd0ad31e8e1572ec92746389079325050bcbb" offset="0" /> |
| 6837 | </dataarea> |
| 6838 | </part> |
| 6839 | </software> |
| 6840 | |
| 6841 | <software name="piki07"> |
| 6842 | <description>Piki 07</description> |
| 6843 | <year>198?</year> |
| 6844 | <publisher><unknown></publisher> |
| 6845 | |
| 6846 | <part name="flop1" interface="floppy_5_25"> |
| 6847 | <dataarea name="flop" size="737280"> |
| 6848 | <rom name="piki 07.dsk" size="737280" crc="fd726510" sha1="17f236415d3968989acd3a5d5c20ed3f79742af4" offset="0" /> |
| 6849 | </dataarea> |
| 6850 | </part> |
| 6851 | </software> |
| 6852 | |
| 6853 | <software name="piki08"> |
| 6854 | <description>Piki 08</description> |
| 6855 | <year>198?</year> |
| 6856 | <publisher><unknown></publisher> |
| 6857 | |
| 6858 | <part name="flop1" interface="floppy_5_25"> |
| 6859 | <dataarea name="flop" size="737280"> |
| 6860 | <rom name="piki 08.dsk" size="737280" crc="8671e5f4" sha1="9201d9b9a312bd4947dc67061ee18ac77d46565d" offset="0" /> |
| 6861 | </dataarea> |
| 6862 | </part> |
| 6863 | </software> |
| 6864 | |
| 6865 | <software name="piki09"> |
| 6866 | <description>Piki 09</description> |
| 6867 | <year>198?</year> |
| 6868 | <publisher><unknown></publisher> |
| 6869 | |
| 6870 | <part name="flop1" interface="floppy_5_25"> |
| 6871 | <dataarea name="flop" size="737280"> |
| 6872 | <rom name="piki 09.dsk" size="737280" crc="f5795366" sha1="5ec7058fab3813612b21da8eea9cb1ed8b9f1320" offset="0" /> |
| 6873 | </dataarea> |
| 6874 | </part> |
| 6875 | </software> |
| 6876 | |
| 6877 | <software name="piki10"> |
| 6878 | <description>Piki 10</description> |
| 6879 | <year>198?</year> |
| 6880 | <publisher><unknown></publisher> |
| 6881 | |
| 6882 | <part name="flop1" interface="floppy_5_25"> |
| 6883 | <dataarea name="flop" size="737280"> |
| 6884 | <rom name="piki 10.dsk" size="737280" crc="9f816c34" sha1="a236e3dd17711d0beca5c2db848c6305376eee25" offset="0" /> |
| 6885 | </dataarea> |
| 6886 | </part> |
| 6887 | </software> |
| 6888 | |
| 6889 | <software name="piki11"> |
| 6890 | <description>Piki 11</description> |
| 6891 | <year>198?</year> |
| 6892 | <publisher><unknown></publisher> |
| 6893 | |
| 6894 | <part name="flop1" interface="floppy_5_25"> |
| 6895 | <dataarea name="flop" size="737280"> |
| 6896 | <rom name="piki 11.dsk" size="737280" crc="f6f68bd9" sha1="2675c0d11f2b79d8844962a20edbeeb2a84c43ef" offset="0" /> |
| 6897 | </dataarea> |
| 6898 | </part> |
| 6899 | </software> |
| 6900 | |
| 6901 | <software name="piki16"> |
| 6902 | <description>Piki 16</description> |
| 6903 | <year>198?</year> |
| 6904 | <publisher><unknown></publisher> |
| 6905 | |
| 6906 | <part name="flop1" interface="floppy_5_25"> |
| 6907 | <dataarea name="flop" size="737280"> |
| 6908 | <rom name="piki 16.dsk" size="737280" crc="aba7e991" sha1="7fdd7cdbffc408f55caf9e82cec7e43eb92ea229" offset="0" /> |
| 6909 | </dataarea> |
| 6910 | </part> |
| 6911 | </software> |
| 6912 | |
| 6913 | <software name="piki17"> |
| 6914 | <description>Piki 17</description> |
| 6915 | <year>198?</year> |
| 6916 | <publisher><unknown></publisher> |
| 6917 | |
| 6918 | <part name="flop1" interface="floppy_5_25"> |
| 6919 | <dataarea name="flop" size="737280"> |
| 6920 | <rom name="piki 17.dsk" size="737280" crc="294d01a4" sha1="c6fa71ab0805c1cdcff5834979cbd44c3d4c79a2" offset="0" /> |
| 6921 | </dataarea> |
| 6922 | </part> |
| 6923 | </software> |
| 6924 | |
| 6925 | <software name="piki18"> |
| 6926 | <description>Piki 18</description> |
| 6927 | <year>198?</year> |
| 6928 | <publisher><unknown></publisher> |
| 6929 | |
| 6930 | <part name="flop1" interface="floppy_5_25"> |
| 6931 | <dataarea name="flop" size="737280"> |
| 6932 | <rom name="piki 18.dsk" size="737280" crc="9d79fcbc" sha1="47e75db427a143f98125632a01a76a4f39192fdd" offset="0" /> |
| 6933 | </dataarea> |
| 6934 | </part> |
| 6935 | </software> |
| 6936 | |
| 6937 | <software name="piktor"> |
| 6938 | <description>Piktor</description> |
| 6939 | <year>1987</year> |
| 6940 | <publisher>B.B. Soft</publisher> |
| 6941 | |
| 6942 | <part name="flop1" interface="floppy_5_25"> |
| 6943 | <dataarea name="flop" size="368640"> |
| 6944 | <rom name="piktor.dsk" size="368640" crc="9e9033c4" sha1="3ed30659c36ee3e8a9d10ffbeab45ab80584b4d2" offset="0" /> |
| 6945 | </dataarea> |
| 6946 | </part> |
| 6947 | </software> |
| 6948 | |
| 6949 | <software name="piktora" cloneof="piktor"> |
| 6950 | <description>Piktor (Alt)</description> |
| 6951 | <year>1987</year> |
| 6952 | <publisher>B.B. Soft</publisher> |
| 6953 | |
| 6954 | <part name="flop1" interface="floppy_5_25"> |
| 6955 | <dataarea name="flop" size="368640"> |
| 6956 | <rom name="piktordsk.dsk" size="368640" crc="dfda0223" sha1="d028b94f87e0578f475668cbf192224ea3097c00" offset="0" /> |
| 6957 | </dataarea> |
| 6958 | </part> |
| 6959 | </software> |
| 6960 | |
| 6961 | <software name="pilota"> |
| 6962 | <description>Pilóta</description> |
| 6963 | <year>198?</year> |
| 6964 | <publisher><unknown></publisher> |
| 6965 | |
| 6966 | <part name="flop1" interface="floppy_5_25"> |
| 6967 | <dataarea name="flop" size="368640"> |
| 6968 | <rom name="pilota.dsk" size="368640" crc="4d6b66a1" sha1="a431cbc3caddf198189bd68f035e455241c6289b" offset="0" /> |
| 6969 | </dataarea> |
| 6970 | </part> |
| 6971 | </software> |
| 6972 | |
| 6973 | <software name="pinkpant"> |
| 6974 | <description>Pink Panther</description> |
| 6975 | <year>1989</year> |
| 6976 | <publisher>Cápasoft</publisher> |
| 6977 | |
| 6978 | <part name="flop1" interface="floppy_5_25"> |
| 6979 | <dataarea name="flop" size="368640"> |
| 6980 | <rom name="pink_panther_1.dsk" size="368640" crc="82df597f" sha1="14032799f2eee7d0602f44f3988ecf1266a92138" offset="0" /> |
| 6981 | </dataarea> |
| 6982 | </part> |
| 6983 | </software> |
| 6984 | |
| 6985 | <software name="pinkpan2"> |
| 6986 | <description>Pink Panther II</description> |
| 6987 | <year>1989</year> |
| 6988 | <publisher>Cápasoft</publisher> |
| 6989 | |
| 6990 | <part name="flop1" interface="floppy_5_25"> |
| 6991 | <dataarea name="flop" size="368640"> |
| 6992 | <rom name="pink_panther_2.dsk" size="368640" crc="1dd50c99" sha1="198b2d82e4bc693d2a14440fa2395725329908d1" offset="0" /> |
| 6993 | </dataarea> |
| 6994 | </part> |
| 6995 | </software> |
| 6996 | |
| 6997 | <software name="pipemani"> |
| 6998 | <description>Pipemánia</description> |
| 6999 | <year>1991</year> |
| 7000 | <publisher>Béla Csatlós</publisher> |
| 7001 | |
| 7002 | <part name="flop1" interface="floppy_5_25"> |
| 7003 | <dataarea name="flop" size="368640"> |
| 7004 | <rom name="pipemania.dsk" size="368640" crc="fc2f6e18" sha1="f649bd203ad4875c728e62253e922164fbae96e8" offset="0" /> |
| 7005 | </dataarea> |
| 7006 | </part> |
| 7007 | </software> |
| 7008 | |
| 7009 | <software name="met_pir"> |
| 7010 | <description>Meteor and Pirate</description> |
| 7011 | <year>1988</year> |
| 7012 | <publisher>Cápasoft</publisher> |
| 7013 | |
| 7014 | <part name="flop1" interface="floppy_5_25"> |
| 7015 | <dataarea name="flop" size="368640"> |
| 7016 | <rom name="pirate.dsk" size="368640" crc="1bfcc853" sha1="0c24046a98647df0fcb80b03048cc7b0474eda76" offset="0" /> |
| 7017 | </dataarea> |
| 7018 | </part> |
| 7019 | </software> |
| 7020 | |
| 7021 | <software name="planpara"> |
| 7022 | <description>Plánparalell Lemez</description> |
| 7023 | <year>198?</year> |
| 7024 | <publisher><unknown></publisher> |
| 7025 | |
| 7026 | <part name="flop1" interface="floppy_5_25"> |
| 7027 | <dataarea name="flop" size="368640"> |
| 7028 | <rom name="planpara.dsk" size="368640" crc="b27dc32f" sha1="e34709892325d031f5086e25b7442a4aea21c8d8" offset="0" /> |
| 7029 | </dataarea> |
| 7030 | </part> |
| 7031 | </software> |
| 7032 | |
| 7033 | <software name="pokernyi"> |
| 7034 | <description>Póker (Nyitrai)</description> |
| 7035 | <year>1986</year> |
| 7036 | <publisher>Nyitrai</publisher> |
| 7037 | |
| 7038 | <part name="flop1" interface="floppy_5_25"> |
| 7039 | <dataarea name="flop" size="368640"> |
| 7040 | <rom name="poker.dsk" size="368640" crc="6e823799" sha1="10e3faea0def4dea594045008a047600e001222d" offset="0" /> |
| 7041 | </dataarea> |
| 7042 | </part> |
| 7043 | </software> |
| 7044 | |
| 7045 | <software name="pokerbar"> |
| 7046 | <description>Póker (Barsony)</description> |
| 7047 | <year>1988</year> |
| 7048 | <publisher>Barsony</publisher> |
| 7049 | |
| 7050 | <part name="flop1" interface="floppy_5_25"> |
| 7051 | <dataarea name="flop" size="368640"> |
| 7052 | <rom name="poker2.dsk" size="368640" crc="aa940567" sha1="d86d432d18f03ec9ba05f23b9cfe7f4440c7882a" offset="0" /> |
| 7053 | </dataarea> |
| 7054 | </part> |
| 7055 | </software> |
| 7056 | |
| 7057 | <software name="poker"> |
| 7058 | <description>Póker</description> |
| 7059 | <year>198?</year> |
| 7060 | <publisher><unknown></publisher> |
| 7061 | |
| 7062 | <part name="flop1" interface="floppy_5_25"> |
| 7063 | <dataarea name="flop" size="368640"> |
| 7064 | <rom name="pokerz.dsk" size="368640" crc="8c032d8a" sha1="b4f68973cc52efded1e99ec54c91e401d49daf56" offset="0" /> |
| 7065 | </dataarea> |
| 7066 | </part> |
| 7067 | </software> |
| 7068 | |
| 7069 | <software name="poklakom"> |
| 7070 | <description>Póklakoma</description> |
| 7071 | <year>1987</year> |
| 7072 | <publisher>Novotrade</publisher> |
| 7073 | |
| 7074 | <part name="flop1" interface="floppy_5_25"> |
| 7075 | <dataarea name="flop" size="368640"> |
| 7076 | <rom name="poklakoma.dsk" size="368640" crc="51d4f2ae" sha1="3d662c54b2c167be717c2ece1957347fe50eabdb" offset="0" /> |
| 7077 | </dataarea> |
| 7078 | </part> |
| 7079 | </software> |
| 7080 | |
| 7081 | <software name="poklakoma" cloneof="poklakom"> |
| 7082 | <description>Póklakoma (Alt)</description> |
| 7083 | <year>1987</year> |
| 7084 | <publisher>Novotrade</publisher> |
| 7085 | |
| 7086 | <part name="flop1" interface="floppy_5_25"> |
| 7087 | <dataarea name="flop" size="368640"> |
| 7088 | <rom name="poklakomav2.dsk" size="368640" crc="2d447319" sha1="58f941af018d2fd75391bfd66afa9625f569436b" offset="0" /> |
| 7089 | </dataarea> |
| 7090 | </part> |
| 7091 | </software> |
| 7092 | |
| 7093 | <software name="pokok"> |
| 7094 | <description>Pókok - Pókvadászat</description> |
| 7095 | <year>198?</year> |
| 7096 | <publisher><unknown></publisher> |
| 7097 | |
| 7098 | <part name="flop1" interface="floppy_5_25"> |
| 7099 | <dataarea name="flop" size="368640"> |
| 7100 | <rom name="pokok.dsk" size="368640" crc="479182b7" sha1="76d23bfb6bac27965aa98ba1586488610565510d" offset="0" /> |
| 7101 | </dataarea> |
| 7102 | </part> |
| 7103 | </software> |
| 7104 | |
| 7105 | <software name="pokol7"> |
| 7106 | <description>A Pokol 7 Kapuja</description> |
| 7107 | <year>198?</year> |
| 7108 | <publisher>Molmix</publisher> |
| 7109 | |
| 7110 | <part name="flop1" interface="floppy_5_25"> |
| 7111 | <dataarea name="flop" size="368640"> |
| 7112 | <rom name="pokol7.dsk" size="368640" crc="07692d80" sha1="acb68f82f0ebf156fdc54209348246ff91dc5245" offset="0" /> |
| 7113 | </dataarea> |
| 7114 | </part> |
| 7115 | </software> |
| 7116 | |
| 7117 | <software name="ponthalm"> |
| 7118 | <description>Ponthalmazok</description> |
| 7119 | <year>198?</year> |
| 7120 | <publisher><unknown></publisher> |
| 7121 | |
| 7122 | <part name="flop1" interface="floppy_5_25"> |
| 7123 | <dataarea name="flop" size="368640"> |
| 7124 | <rom name="ponthalmazok.dsk" size="368640" crc="eb394a2e" sha1="b40d0e2e267afc8d8fff292daffc7402fca323d9" offset="0" /> |
| 7125 | </dataarea> |
| 7126 | </part> |
| 7127 | </software> |
| 7128 | |
| 7129 | <software name="poseidon"> |
| 7130 | <description>Poseidon Kincse</description> |
| 7131 | <year>1989</year> |
| 7132 | <publisher>Novotrade</publisher> |
| 7133 | |
| 7134 | <part name="flop1" interface="floppy_5_25"> |
| 7135 | <dataarea name="flop" size="368640"> |
| 7136 | <rom name="poseidon.dsk" size="368640" crc="3f1cb19a" sha1="0de20749cec932b956ac5a6e16e9e09b55b6f409" offset="0" /> |
| 7137 | </dataarea> |
| 7138 | </part> |
| 7139 | </software> |
| 7140 | |
| 7141 | <software name="pottompe"> |
| 7142 | <description>Pöttöm Peti</description> |
| 7143 | <year>198?</year> |
| 7144 | <publisher><unknown></publisher> |
| 7145 | |
| 7146 | <part name="flop1" interface="floppy_5_25"> |
| 7147 | <dataarea name="flop" size="368640"> |
| 7148 | <rom name="pottompeti.dsk" size="368640" crc="d8f6bcba" sha1="c8171a39c67471aa82649ff8e60da33835c4ac4b" offset="0" /> |
| 7149 | </dataarea> |
| 7150 | </part> |
| 7151 | </software> |
| 7152 | |
| 7153 | <software name="potty"> |
| 7154 | <description>Potty</description> |
| 7155 | <year>198?</year> |
| 7156 | <publisher>Nándor Sieben</publisher> |
| 7157 | |
| 7158 | <part name="flop1" interface="floppy_5_25"> |
| 7159 | <dataarea name="flop" size="368640"> |
| 7160 | <rom name="potty.dsk" size="368640" crc="13c048cd" sha1="4cfbd9261628983f9e1c2a36a21230f04bd1bd9e" offset="0" /> |
| 7161 | </dataarea> |
| 7162 | </part> |
| 7163 | </software> |
| 7164 | |
| 7165 | <software name="prgrend"> |
| 7166 | <description>Program Rendező</description> |
| 7167 | <year>198?</year> |
| 7168 | <publisher><unknown></publisher> |
| 7169 | |
| 7170 | <part name="flop1" interface="floppy_5_25"> |
| 7171 | <dataarea name="flop" size="368640"> |
| 7172 | <rom name="prgrend.dsk" size="368640" crc="3eaf00a4" sha1="31fdf827381ecfd8bec8298d27ef7c93ba813a02" offset="0" /> |
| 7173 | </dataarea> |
| 7174 | </part> |
| 7175 | </software> |
| 7176 | |
| 7177 | <software name="prokat"> |
| 7178 | <description>Program Katalógus</description> |
| 7179 | <year>198?</year> |
| 7180 | <publisher><unknown></publisher> |
| 7181 | |
| 7182 | <part name="flop1" interface="floppy_5_25"> |
| 7183 | <dataarea name="flop" size="368640"> |
| 7184 | <rom name="prokat.dsk" size="368640" crc="bece438c" sha1="9930e55f90c45d0b79d5e55d218c155662d0493a" offset="0" /> |
| 7185 | </dataarea> |
| 7186 | </part> |
| 7187 | </software> |
| 7188 | |
| 7189 | <software name="questfor"> |
| 7190 | <description>Quest for Tires</description> |
| 7191 | <year>198?</year> |
| 7192 | <publisher><unknown></publisher> |
| 7193 | |
| 7194 | <part name="flop1" interface="floppy_5_25"> |
| 7195 | <dataarea name="flop" size="368640"> |
| 7196 | <rom name="questfor.dsk" size="368640" crc="a2d3cba1" sha1="31226fa94d14a5c8e41eb2a995bca8db8a108b0f" offset="0" /> |
| 7197 | </dataarea> |
| 7198 | </part> |
| 7199 | </software> |
| 7200 | |
| 7201 | <software name="raceace"> |
| 7202 | <description>Race Ace</description> |
| 7203 | <year>1990</year> |
| 7204 | <publisher>Zsolt Szigeti</publisher> |
| 7205 | |
| 7206 | <part name="flop1" interface="floppy_5_25"> |
| 7207 | <dataarea name="flop" size="368640"> |
| 7208 | <rom name="raceace.dsk" size="368640" crc="6296ac52" sha1="6db1ed2361cf2ead684656843863b7678076dc0f" offset="0" /> |
| 7209 | </dataarea> |
| 7210 | </part> |
| 7211 | </software> |
| 7212 | |
| 7213 | <software name="raceacea" cloneof="raceace"> |
| 7214 | <description>Race Ace (Alt)</description> |
| 7215 | <year>1990</year> |
| 7216 | <publisher>Zsolt Szigeti</publisher> |
| 7217 | |
| 7218 | <part name="flop1" interface="floppy_5_25"> |
| 7219 | <dataarea name="flop" size="368640"> |
| 7220 | <rom name="raceacev2.dsk" size="368640" crc="6431bbea" sha1="381ffe09368e7d7e0b8d69684e322dcc356c8cb5" offset="0" /> |
| 7221 | </dataarea> |
| 7222 | </part> |
| 7223 | </software> |
| 7224 | |
| 7225 | <software name="radar"> |
| 7226 | <description>Radar</description> |
| 7227 | <year>1987</year> |
| 7228 | <publisher>Flighter Software</publisher> |
| 7229 | |
| 7230 | <part name="flop1" interface="floppy_5_25"> |
| 7231 | <dataarea name="flop" size="368640"> |
| 7232 | <rom name="radar.dsk" size="368640" crc="d9f4c7a1" sha1="74f59b64f0ff0d4e1779e4efce7bb204010a51ad" offset="0" /> |
| 7233 | </dataarea> |
| 7234 | </part> |
| 7235 | </software> |
| 7236 | |
| 7237 | <software name="raiders"> |
| 7238 | <description>Raiders of the Lost Ark</description> |
| 7239 | <year>198?</year> |
| 7240 | <publisher><unknown></publisher> |
| 7241 | |
| 7242 | <part name="flop1" interface="floppy_5_25"> |
| 7243 | <dataarea name="flop" size="368640"> |
| 7244 | <rom name="raidersofthelostark.dsk" size="368640" crc="e8411835" sha1="5f85c5ee143a97881d0813c8e0daeac3b66229c7" offset="0" /> |
| 7245 | </dataarea> |
| 7246 | </part> |
| 7247 | </software> |
| 7248 | |
| 7249 | <software name="rajz"> |
| 7250 | <description>Rajz</description> |
| 7251 | <year>198?</year> |
| 7252 | <publisher><unknown></publisher> |
| 7253 | |
| 7254 | <part name="flop1" interface="floppy_5_25"> |
| 7255 | <dataarea name="flop" size="368640"> |
| 7256 | <rom name="rajz.dsk" size="368640" crc="65890ad4" sha1="777950a65119dc534bd3c797654aaf57c25926f3" offset="0" /> |
| 7257 | </dataarea> |
| 7258 | </part> |
| 7259 | </software> |
| 7260 | |
| 7261 | <software name="rajzolo"> |
| 7262 | <description>Rajzoló</description> |
| 7263 | <year>1987</year> |
| 7264 | <publisher>Atlas</publisher> |
| 7265 | |
| 7266 | <part name="flop1" interface="floppy_5_25"> |
| 7267 | <dataarea name="flop" size="368640"> |
| 7268 | <rom name="rajzolo.dsk" size="368640" crc="093c296e" sha1="490a9956e9fc8672bdae5b1f98e662b62860a6d2" offset="0" /> |
| 7269 | </dataarea> |
| 7270 | </part> |
| 7271 | </software> |
| 7272 | |
| 7273 | <software name="raketa"> |
| 7274 | <description>Rakéta</description> |
| 7275 | <year>198?</year> |
| 7276 | <publisher><unknown></publisher> |
| 7277 | |
| 7278 | <part name="flop1" interface="floppy_5_25"> |
| 7279 | <dataarea name="flop" size="368640"> |
| 7280 | <rom name="raketa.dsk" size="368640" crc="da21a2ee" sha1="7df96f85388be8db1800de9aa3e0edca36796143" offset="0" /> |
| 7281 | </dataarea> |
| 7282 | </part> |
| 7283 | </software> |
| 7284 | |
| 7285 | <software name="rallye"> |
| 7286 | <description>Rallye</description> |
| 7287 | <year>1987</year> |
| 7288 | <publisher>Zsolt Dobrovics</publisher> |
| 7289 | |
| 7290 | <part name="flop1" interface="floppy_5_25"> |
| 7291 | <dataarea name="flop" size="368640"> |
| 7292 | <rom name="rallye.dsk" size="368640" crc="8d153eb7" sha1="02d65f8088fe6070fb2e65d09bc4380b8fd65644" offset="0" /> |
| 7293 | </dataarea> |
| 7294 | </part> |
| 7295 | </software> |
| 7296 | |
| 7297 | <software name="ramazuri"> |
| 7298 | <description>Ramazuri</description> |
| 7299 | <year>1988</year> |
| 7300 | <publisher>Béla Csatlós</publisher> |
| 7301 | |
| 7302 | <part name="flop1" interface="floppy_5_25"> |
| 7303 | <dataarea name="flop" size="368640"> |
| 7304 | <rom name="ramazuri.dsk" size="368640" crc="f787b41c" sha1="5ee0dd2428284d51b4ca4d79aec64d68385bd19a" offset="0" /> |
| 7305 | </dataarea> |
| 7306 | </part> |
| 7307 | </software> |
| 7308 | |
| 7309 | <software name="ramleir"> |
| 7310 | <description>RAM Címek Leírása</description> |
| 7311 | <year>198?</year> |
| 7312 | <publisher><unknown></publisher> |
| 7313 | |
| 7314 | <part name="flop1" interface="floppy_5_25"> |
| 7315 | <dataarea name="flop" size="368640"> |
| 7316 | <rom name="ramleir.dsk" size="368640" crc="18137bf2" sha1="4c8f0912907311fad4f2ba4edc9ae17d066b641b" offset="0" /> |
| 7317 | </dataarea> |
| 7318 | </part> |
| 7319 | </software> |
| 7320 | |
| 7321 | <software name="rastan"> |
| 7322 | <description>Rastan the Barbarian Fighter</description> |
| 7323 | <year>198?</year> |
| 7324 | <publisher>C.S. Software</publisher> |
| 7325 | |
| 7326 | <part name="flop1" interface="floppy_5_25"> |
| 7327 | <dataarea name="flop" size="368640"> |
| 7328 | <rom name="rastanthebarbarianfighter.dsk" size="368640" crc="8ea7f1b2" sha1="7969d28c088bec0aa7af38041ead238f74de95e9" offset="0" /> |
| 7329 | </dataarea> |
| 7330 | </part> |
| 7331 | </software> |
| 7332 | |
| 7333 | <software name="raszter"> |
| 7334 | <description>TVC Raszterdemo</description> |
| 7335 | <year>198?</year> |
| 7336 | <publisher>Peter Rakos</publisher> |
| 7337 | |
| 7338 | <part name="flop1" interface="floppy_5_25"> |
| 7339 | <dataarea name="flop" size="368640"> |
| 7340 | <rom name="raszter.dsk" size="368640" crc="59e66454" sha1="1d438f7edfa2a9d43ce893345faeb6e1053704bf" offset="0" /> |
| 7341 | </dataarea> |
| 7342 | </part> |
| 7343 | </software> |
| 7344 | |
| 7345 | <software name="rckor"> |
| 7346 | <description>RC Kör</description> |
| 7347 | <year>198?</year> |
| 7348 | <publisher><unknown></publisher> |
| 7349 | |
| 7350 | <part name="flop1" interface="floppy_5_25"> |
| 7351 | <dataarea name="flop" size="368640"> |
| 7352 | <rom name="rckor.dsk" size="368640" crc="a0efc17c" sha1="54e486a044c69d96c6aff1cb3e607990fbe494ba" offset="0" /> |
| 7353 | </dataarea> |
| 7354 | </part> |
| 7355 | </software> |
| 7356 | |
| 7357 | <software name="reaktor"> |
| 7358 | <description>Reaktor</description> |
| 7359 | <year>198?</year> |
| 7360 | <publisher>Béla Takács</publisher> |
| 7361 | |
| 7362 | <part name="flop1" interface="floppy_5_25"> |
| 7363 | <dataarea name="flop" size="368640"> |
| 7364 | <rom name="reaktor.dsk" size="368640" crc="40716071" sha1="117d042e79d0dcf36175c4f298466afe53d557dd" offset="0" /> |
| 7365 | </dataarea> |
| 7366 | </part> |
| 7367 | </software> |
| 7368 | |
| 7369 | <software name="reflex"> |
| 7370 | <description>Reflex</description> |
| 7371 | <year>198?</year> |
| 7372 | <publisher>Software in LUX</publisher> |
| 7373 | |
| 7374 | <part name="flop1" interface="floppy_5_25"> |
| 7375 | <dataarea name="flop" size="368640"> |
| 7376 | <rom name="reflex.dsk" size="368640" crc="49bf026c" sha1="5c4a8912c5db0ffa5cc39ceca043c0f6ee4c4f80" offset="0" /> |
| 7377 | </dataarea> |
| 7378 | </part> |
| 7379 | </software> |
| 7380 | |
| 7381 | <software name="relativ"> |
| 7382 | <description>Relatív Koordináta</description> |
| 7383 | <year>198?</year> |
| 7384 | <publisher>Laci's Soft Studio</publisher> |
| 7385 | |
| 7386 | <part name="flop1" interface="floppy_5_25"> |
| 7387 | <dataarea name="flop" size="368640"> |
| 7388 | <rom name="relativ.dsk" size="368640" crc="ac911f2c" sha1="bed6b2574a1fe0eb63a193ab459c4175f7848c9d" offset="0" /> |
| 7389 | </dataarea> |
| 7390 | </part> |
| 7391 | </software> |
| 7392 | |
| 7393 | <software name="repules"> |
| 7394 | <description>Repülés szimulátor BASIC-ül</description> |
| 7395 | <year>1987</year> |
| 7396 | <publisher>SPLTD</publisher> |
| 7397 | |
| 7398 | <part name="flop1" interface="floppy_5_25"> |
| 7399 | <dataarea name="flop" size="368640"> |
| 7400 | <rom name="repulesszimulator.dsk" size="368640" crc="ccad68f1" sha1="fd99a84b6f1c94e735b9d5c3a3317cc2ff4556cf" offset="0" /> |
| 7401 | </dataarea> |
| 7402 | </part> |
| 7403 | </software> |
| 7404 | |
| 7405 | <software name="repulesa" cloneof="repules"> |
| 7406 | <description>Repülés szimulátor BASIC-ül (Alt)</description> |
| 7407 | <year>1987</year> |
| 7408 | <publisher>SPLTD</publisher> |
| 7409 | |
| 7410 | <part name="flop1" interface="floppy_5_25"> |
| 7411 | <dataarea name="flop" size="368640"> |
| 7412 | <rom name="fsimv2.dsk" size="368640" crc="b3f6161e" sha1="acf5773aeb8380aa1b795f73910193ff9debb205" offset="0" /> |
| 7413 | </dataarea> |
| 7414 | </part> |
| 7415 | </software> |
| 7416 | |
| 7417 | <software name="repulesb" cloneof="repules"> |
| 7418 | <description>Repülés szimulátor BASIC-ül (Alt 2)</description> |
| 7419 | <year>1987</year> |
| 7420 | <publisher>SPLTD</publisher> |
| 7421 | |
| 7422 | <part name="flop1" interface="floppy_5_25"> |
| 7423 | <dataarea name="flop" size="368640"> |
| 7424 | <rom name="fsimv3.dsk" size="368640" crc="61c10240" sha1="e3ae067e4f5bc70d7bc7936800285c7a20d7ede5" offset="0" /> |
| 7425 | </dataarea> |
| 7426 | </part> |
| 7427 | </software> |
| 7428 | |
| 7429 | <software name="repulesc" cloneof="repules"> |
| 7430 | <description>Repülés szimulátor BASIC-ül (Alt 3)</description> |
| 7431 | <year>1987</year> |
| 7432 | <publisher>SPLTD</publisher> |
| 7433 | |
| 7434 | <part name="flop1" interface="floppy_5_25"> |
| 7435 | <dataarea name="flop" size="368640"> |
| 7436 | <rom name="fsimv4.dsk" size="368640" crc="4b09f697" sha1="b7e6950df79bef963b07f4e0af5a9f1851ad2ed6" offset="0" /> |
| 7437 | </dataarea> |
| 7438 | </part> |
| 7439 | </software> |
| 7440 | |
| 7441 | <software name="reversi"> |
| 7442 | <description>Reversi</description> |
| 7443 | <year>198?</year> |
| 7444 | <publisher><unknown></publisher> |
| 7445 | |
| 7446 | <part name="flop1" interface="floppy_5_25"> |
| 7447 | <dataarea name="flop" size="368640"> |
| 7448 | <rom name="reversi.dsk" size="368640" crc="499f8a2c" sha1="ec7020f0401dac71b282077d1ed141144dfcc325" offset="0" /> |
| 7449 | </dataarea> |
| 7450 | </part> |
| 7451 | </software> |
| 7452 | |
| 7453 | <software name="rezgom"> |
| 7454 | <description>Rezgőmozgás</description> |
| 7455 | <year>1985</year> |
| 7456 | <publisher>HLV</publisher> |
| 7457 | |
| 7458 | <part name="flop1" interface="floppy_5_25"> |
| 7459 | <dataarea name="flop" size="368640"> |
| 7460 | <rom name="rezgom.dsk" size="368640" crc="5357c400" sha1="d3f5a4d4fca6ca4891058245a9f6942fbd2f2800" offset="0" /> |
| 7461 | </dataarea> |
| 7462 | </part> |
| 7463 | </software> |
| 7464 | |
| 7465 | <software name="riderboy"> |
| 7466 | <description>Riderboy</description> |
| 7467 | <year>1991</year> |
| 7468 | <publisher><unknown></publisher> |
| 7469 | |
| 7470 | <part name="flop1" interface="floppy_5_25"> |
| 7471 | <dataarea name="flop" size="368640"> |
| 7472 | <rom name="riderboy.dsk" size="368640" crc="dc02aef5" sha1="24c00236b495524a0a920f88fee5586d744d7b3f" offset="0" /> |
| 7473 | </dataarea> |
| 7474 | </part> |
| 7475 | </software> |
| 7476 | |
| 7477 | <software name="robhood"> |
| 7478 | <description>Robin Hood - Íjászverseny</description> |
| 7479 | <year>198?</year> |
| 7480 | <publisher>Berysoft</publisher> |
| 7481 | |
| 7482 | <part name="flop1" interface="floppy_5_25"> |
| 7483 | <dataarea name="flop" size="368640"> |
| 7484 | <rom name="robinhood.dsk" size="368640" crc="0948123c" sha1="4929079db39abf88f9eb6edc6d5258adff1315e6" offset="0" /> |
| 7485 | </dataarea> |
| 7486 | </part> |
| 7487 | </software> |
| 7488 | |
| 7489 | <software name="rohamm"> |
| 7490 | <description>Rohamm</description> |
| 7491 | <year>1989</year> |
| 7492 | <publisher>GATO Bt.</publisher> |
| 7493 | |
| 7494 | <part name="flop1" interface="floppy_5_25"> |
| 7495 | <dataarea name="flop" size="368640"> |
| 7496 | <rom name="rohamm.dsk" size="368640" crc="af03f94b" sha1="549c0bbfefa3f265f336dcdd73cb6878036c0266" offset="0" /> |
| 7497 | </dataarea> |
| 7498 | </part> |
| 7499 | </software> |
| 7500 | |
| 7501 | <software name="rohammt" cloneof="rohamm"> |
| 7502 | <description>Rohamm (Trainer)</description> |
| 7503 | <year>1989</year> |
| 7504 | <publisher>GATO Bt.</publisher> |
| 7505 | |
| 7506 | <part name="flop1" interface="floppy_5_25"> |
| 7507 | <dataarea name="flop" size="368640"> |
| 7508 | <rom name="rohammtrainer.dsk" size="368640" crc="64e658f9" sha1="3ef70d0475f0508ab35d12d7238717277f2cfa22" offset="0" /> |
| 7509 | </dataarea> |
| 7510 | </part> |
| 7511 | </software> |
| 7512 | |
| 7513 | <software name="rokavads"> |
| 7514 | <description>Rókavadász</description> |
| 7515 | <year>1988</year> |
| 7516 | <publisher>Cápasoft</publisher> |
| 7517 | |
| 7518 | <part name="flop1" interface="floppy_5_25"> |
| 7519 | <dataarea name="flop" size="368640"> |
| 7520 | <rom name="rokavads.dsk" size="368640" crc="1ee3a6ea" sha1="6ce10360270a210b8858a004750fa2df2fce74bb" offset="0" /> |
| 7521 | </dataarea> |
| 7522 | </part> |
| 7523 | </software> |
| 7524 | |
| 7525 | <software name="rombolo"> |
| 7526 | <description>Romboló</description> |
| 7527 | <year>198?</year> |
| 7528 | <publisher><unknown></publisher> |
| 7529 | |
| 7530 | <part name="flop1" interface="floppy_5_25"> |
| 7531 | <dataarea name="flop" size="368640"> |
| 7532 | <rom name="rombolo.dsk" size="368640" crc="9f91da7d" sha1="9c36f9ad8c4b13d78c10496e5cd2cf2ec7840123" offset="0" /> |
| 7533 | </dataarea> |
| 7534 | </part> |
| 7535 | </software> |
| 7536 | |
| 7537 | <software name="rombolop"> |
| 7538 | <description>Romboló (Police Sowtver)</description> |
| 7539 | <year>198?</year> |
| 7540 | <publisher>Police Sowtver</publisher> |
| 7541 | |
| 7542 | <part name="flop1" interface="floppy_5_25"> |
| 7543 | <dataarea name="flop" size="368640"> |
| 7544 | <rom name="rombolo2.dsk" size="368640" crc="db4de3a6" sha1="639ecc9992215bf0a73f72e73a9a65a76628dd06" offset="0" /> |
| 7545 | </dataarea> |
| 7546 | </part> |
| 7547 | </software> |
| 7548 | |
| 7549 | <software name="rombolov"> |
| 7550 | <description>Romboló (Sandor Vekony)</description> |
| 7551 | <year>1987</year> |
| 7552 | <publisher>Sandor Vekony</publisher> |
| 7553 | |
| 7554 | <part name="flop1" interface="floppy_5_25"> |
| 7555 | <dataarea name="flop" size="368640"> |
| 7556 | <rom name="rombszur.dsk" size="368640" crc="ee3f3afc" sha1="3ed3a42674f2d546e6e8984f78498819df9cbf81" offset="0" /> |
| 7557 | </dataarea> |
| 7558 | </part> |
| 7559 | </software> |
| 7560 | |
| 7561 | <software name="rondo"> |
| 7562 | <description>Rondo</description> |
| 7563 | <year>1988</year> |
| 7564 | <publisher>Ubisoft</publisher> |
| 7565 | |
| 7566 | <part name="flop1" interface="floppy_5_25"> |
| 7567 | <dataarea name="flop" size="368640"> |
| 7568 | <rom name="rondo.dsk" size="368640" crc="428ef3fe" sha1="c931dbcc7e9032c43d3b29974dcf3428ea25da3d" offset="0" /> |
| 7569 | </dataarea> |
| 7570 | </part> |
| 7571 | </software> |
| 7572 | |
| 7573 | <software name="rondoa" cloneof="rondo"> |
| 7574 | <description>Rondo (Alt)</description> |
| 7575 | <year>1988</year> |
| 7576 | <publisher>Ubisoft</publisher> |
| 7577 | |
| 7578 | <part name="flop1" interface="floppy_5_25"> |
| 7579 | <dataarea name="flop" size="368640"> |
| 7580 | <rom name="rondov2.dsk" size="368640" crc="42fd9ea3" sha1="2c0adef53905ba138160de9eafe7f1c8a315c55f" offset="0" /> |
| 7581 | </dataarea> |
| 7582 | </part> |
| 7583 | </software> |
| 7584 | |
| 7585 | <software name="rowar" cloneof="rohamm"> |
| 7586 | <description>RoWar</description> |
| 7587 | <year>1991</year> |
| 7588 | <publisher>GATO Bt.</publisher> |
| 7589 | |
| 7590 | <part name="flop1" interface="floppy_5_25"> |
| 7591 | <dataarea name="flop" size="368640"> |
| 7592 | <rom name="rowar.dsk" size="368640" crc="a649fbde" sha1="e07238d371110e23122b85a93e210c65e199bd49" offset="0" /> |
| 7593 | </dataarea> |
| 7594 | </part> |
| 7595 | </software> |
| 7596 | |
| 7597 | <software name="rtadatba"> |
| 7598 | <description>Rádiótechnika Adatbázis</description> |
| 7599 | <year>198?</year> |
| 7600 | <publisher>Atlas</publisher> |
| 7601 | |
| 7602 | <part name="flop1" interface="floppy_5_25"> |
| 7603 | <dataarea name="flop" size="368640"> |
| 7604 | <rom name="rt_adatbazis.dsk" size="368640" crc="f0d4bd79" sha1="20ea229caa06be0e454c09183e2f222f094b1f47" offset="0" /> |
| 7605 | </dataarea> |
| 7606 | </part> |
| 7607 | </software> |
| 7608 | |
| 7609 | <software name="rubikkoc"> |
| 7610 | <description>Rubik Kocka</description> |
| 7611 | <year>1988</year> |
| 7612 | <publisher>Varga Softver</publisher> |
| 7613 | |
| 7614 | <part name="flop1" interface="floppy_5_25"> |
| 7615 | <dataarea name="flop" size="368640"> |
| 7616 | <rom name="rubikkocka.dsk" size="368640" crc="5bcbf9ef" sha1="96ea534f9887683cbcf6b7812a6fb16bc480b870" offset="0" /> |
| 7617 | </dataarea> |
| 7618 | </part> |
| 7619 | </software> |
| 7620 | |
| 7621 | <software name="rulett"> |
| 7622 | <description>Roulette De Luxe</description> |
| 7623 | <year>1986</year> |
| 7624 | <publisher>Ferenc Dobai</publisher> |
| 7625 | |
| 7626 | <part name="flop1" interface="floppy_5_25"> |
| 7627 | <dataarea name="flop" size="368640"> |
| 7628 | <rom name="rulett.dsk" size="368640" crc="8287da91" sha1="2b41f2237e5cca195d6af327728a2ccd2da996b0" offset="0" /> |
| 7629 | </dataarea> |
| 7630 | </part> |
| 7631 | </software> |
| 7632 | |
| 7633 | <software name="sajtvajo"> |
| 7634 | <description>Sajtvájó</description> |
| 7635 | <year>1991</year> |
| 7636 | <publisher>STV</publisher> |
| 7637 | |
| 7638 | <part name="flop1" interface="floppy_5_25"> |
| 7639 | <dataarea name="flop" size="368640"> |
| 7640 | <rom name="sajtvajo.dsk" size="368640" crc="36e6e679" sha1="a5ac83cb2875cbb2f5c783f93ebfcaf07b328904" offset="0" /> |
| 7641 | </dataarea> |
| 7642 | </part> |
| 7643 | </software> |
| 7644 | |
| 7645 | <software name="sajtvajoa" cloneof="sajtvajo"> |
| 7646 | <description>Sajtvájó (Alt)</description> |
| 7647 | <year>1991</year> |
| 7648 | <publisher>STV</publisher> |
| 7649 | |
| 7650 | <part name="flop1" interface="floppy_5_25"> |
| 7651 | <dataarea name="flop" size="368640"> |
| 7652 | <rom name="sajtvav2.dsk" size="368640" crc="7d875559" sha1="affa40b13035427b2f8e4703abc99a357806d256" offset="0" /> |
| 7653 | </dataarea> |
| 7654 | </part> |
| 7655 | </software> |
| 7656 | |
| 7657 | <software name="samantha"> |
| 7658 | <description>Samantha Fox's Strip</description> |
| 7659 | <year>1988</year> |
| 7660 | <publisher>Buddha Softhouse</publisher> |
| 7661 | |
| 7662 | <part name="flop1" interface="floppy_5_25"> |
| 7663 | <dataarea name="flop" size="368640"> |
| 7664 | <rom name="samthafox.dsk" size="368640" crc="21291a1f" sha1="03813eb5b2b2c04bce9b7b2e31b57664d9ff7641" offset="0" /> |
| 7665 | </dataarea> |
| 7666 | </part> |
| 7667 | </software> |
| 7668 | |
| 7669 | <software name="samuraj"> |
| 7670 | <description>Samuraj</description> |
| 7671 | <year>198?</year> |
| 7672 | <publisher>Béla Takács</publisher> |
| 7673 | |
| 7674 | <part name="flop1" interface="floppy_5_25"> |
| 7675 | <dataarea name="flop" size="368640"> |
| 7676 | <rom name="samuraj.dsk" size="368640" crc="52ee419c" sha1="45e9fe530261afdd70e89fb832951cdeb4df558e" offset="0" /> |
| 7677 | </dataarea> |
| 7678 | </part> |
| 7679 | </software> |
| 7680 | |
| 7681 | <software name="samuraja" cloneof="samuraj"> |
| 7682 | <description>Samuraj (Alt)</description> |
| 7683 | <year>198?</year> |
| 7684 | <publisher>Béla Takács</publisher> |
| 7685 | |
| 7686 | <part name="flop1" interface="floppy_5_25"> |
| 7687 | <dataarea name="flop" size="368640"> |
| 7688 | <rom name="samurv2.dsk" size="368640" crc="c330d5cc" sha1="75ad2dca2bb04815128560e63c8ef2ebc9f64116" offset="0" /> |
| 7689 | </dataarea> |
| 7690 | </part> |
| 7691 | </software> |
| 7692 | |
| 7693 | <software name="samus"> |
| 7694 | <description>Samus' Guest</description> |
| 7695 | <year>1987</year> |
| 7696 | <publisher>CSC Software - Skoda Software</publisher> |
| 7697 | |
| 7698 | <part name="flop1" interface="floppy_5_25"> |
| 7699 | <dataarea name="flop" size="368640"> |
| 7700 | <rom name="samusguest.dsk" size="368640" crc="36102679" sha1="598b8db5f23b7a472f9aee2f240f68b88a3eb34a" offset="0" /> |
| 7701 | </dataarea> |
| 7702 | </part> |
| 7703 | </software> |
| 7704 | |
| 7705 | <software name="sarkany"> |
| 7706 | <description>Sárkánybarlang</description> |
| 7707 | <year>198?</year> |
| 7708 | <publisher><unknown></publisher> |
| 7709 | |
| 7710 | <part name="flop1" interface="floppy_5_25"> |
| 7711 | <dataarea name="flop" size="368640"> |
| 7712 | <rom name="sarkanybarlang.dsk" size="368640" crc="1b0e31fd" sha1="38a3d6873e1fe491eb08d1bceba33d7d815eb978" offset="0" /> |
| 7713 | </dataarea> |
| 7714 | </part> |
| 7715 | </software> |
| 7716 | |
| 7717 | <software name="satiroza"> |
| 7718 | <description>Satírozás</description> |
| 7719 | <year>1991</year> |
| 7720 | <publisher>STV</publisher> |
| 7721 | |
| 7722 | <part name="flop1" interface="floppy_5_25"> |
| 7723 | <dataarea name="flop" size="368640"> |
| 7724 | <rom name="satirozasv1.dsk" size="368640" crc="6eb8bb21" sha1="66fe63e266a17188e527fce4fc4b6410202db7ad" offset="0" /> |
| 7725 | </dataarea> |
| 7726 | </part> |
| 7727 | </software> |
| 7728 | |
| 7729 | <software name="satirozaa" cloneof="satiroza"> |
| 7730 | <description>Satírozás (Alt)</description> |
| 7731 | <year>1991</year> |
| 7732 | <publisher>STV</publisher> |
| 7733 | |
| 7734 | <part name="flop1" interface="floppy_5_25"> |
| 7735 | <dataarea name="flop" size="368640"> |
| 7736 | <rom name="satirozasv2.dsk" size="368640" crc="d32f81ed" sha1="f83fa73e29472ce1879d35dbc18abd9a1cea54ab" offset="0" /> |
| 7737 | </dataarea> |
| 7738 | </part> |
| 7739 | </software> |
| 7740 | |
| 7741 | <software name="scroll"> |
| 7742 | <description>Scroll</description> |
| 7743 | <year>198?</year> |
| 7744 | <publisher><unknown></publisher> |
| 7745 | |
| 7746 | <part name="flop1" interface="floppy_5_25"> |
| 7747 | <dataarea name="flop" size="368640"> |
| 7748 | <rom name="scroll.dsk" size="368640" crc="43d5a628" sha1="a03b07b6d40903e1da843472c229cd4225d1e0e3" offset="0" /> |
| 7749 | </dataarea> |
| 7750 | </part> |
| 7751 | </software> |
| 7752 | |
| 7753 | <software name="sex"> |
| 7754 | <description>A TVC 1. Szexoktató Programja</description> |
| 7755 | <year>198?</year> |
| 7756 | <publisher><unknown></publisher> |
| 7757 | |
| 7758 | <part name="flop1" interface="floppy_5_25"> |
| 7759 | <dataarea name="flop" size="368640"> |
| 7760 | <rom name="sex.dsk" size="368640" crc="5a48736b" sha1="d0ab3b2449f4652f9436bbf0ce2b12fed892eebb" offset="0" /> |
| 7761 | </dataarea> |
| 7762 | </part> |
| 7763 | </software> |
| 7764 | |
| 7765 | <software name="sexshow"> |
| 7766 | <description>A TVC 2. Szexoktató Programja</description> |
| 7767 | <year>1988</year> |
| 7768 | <publisher>Buddha Softhouse</publisher> |
| 7769 | |
| 7770 | <part name="flop1" interface="floppy_5_25"> |
| 7771 | <dataarea name="flop" size="368640"> |
| 7772 | <rom name="sexshow.dsk" size="368640" crc="8a376d05" sha1="d44165b97d929e5019541d68223cf17d68237efb" offset="0" /> |
| 7773 | </dataarea> |
| 7774 | </part> |
| 7775 | </software> |
| 7776 | |
| 7777 | <software name="olympski"> |
| 7778 | <description>Olympic Ski</description> |
| 7779 | <year>1985</year> |
| 7780 | <publisher>Béla Szalontai</publisher> |
| 7781 | |
| 7782 | <part name="flop1" interface="floppy_5_25"> |
| 7783 | <dataarea name="flop" size="368640"> |
| 7784 | <rom name="sielo.dsk" size="368640" crc="4fc38c7e" sha1="3507e5e37edfa5448304bddbe2b524fb4eedacac" offset="0" /> |
| 7785 | </dataarea> |
| 7786 | </part> |
| 7787 | </software> |
| 7788 | |
| 7789 | <software name="simul86"> |
| 7790 | <description>Simulator 86 - Flight Simulator</description> |
| 7791 | <year>1986</year> |
| 7792 | <publisher>S.P. Studio</publisher> |
| 7793 | |
| 7794 | <part name="flop1" interface="floppy_5_25"> |
| 7795 | <dataarea name="flop" size="368640"> |
| 7796 | <rom name="simul86.dsk" size="368640" crc="50bc9767" sha1="7c8af86372f098617fb1288bcf9a70b5a7d79b0d" offset="0" /> |
| 7797 | </dataarea> |
| 7798 | </part> |
| 7799 | </software> |
| 7800 | |
| 7801 | <software name="sinus"> |
| 7802 | <description>Sinus</description> |
| 7803 | <year>1985</year> |
| 7804 | <publisher>HLV</publisher> |
| 7805 | |
| 7806 | <part name="flop1" interface="floppy_5_25"> |
| 7807 | <dataarea name="flop" size="368640"> |
| 7808 | <rom name="sinus.dsk" size="368640" crc="526ef6be" sha1="560f841d3ae2ba25b8dc7a406dec1242314a3a3d" offset="0" /> |
| 7809 | </dataarea> |
| 7810 | </part> |
| 7811 | </software> |
| 7812 | |
| 7813 | <software name="sirartur"> |
| 7814 | <description>Sir Artur</description> |
| 7815 | <year>1989</year> |
| 7816 | <publisher>Béla Takács</publisher> |
| 7817 | |
| 7818 | <part name="flop1" interface="floppy_5_25"> |
| 7819 | <dataarea name="flop" size="368640"> |
| 7820 | <rom name="sirartur.dsk" size="368640" crc="eeba76c7" sha1="b1ade230d146979506dcc578fd9f627f164d397c" offset="0" /> |
| 7821 | </dataarea> |
| 7822 | </part> |
| 7823 | </software> |
| 7824 | |
| 7825 | <software name="siraso"> |
| 7826 | <description>Sírásó</description> |
| 7827 | <year>198?</year> |
| 7828 | <publisher><unknown></publisher> |
| 7829 | |
| 7830 | <part name="flop1" interface="floppy_5_25"> |
| 7831 | <dataarea name="flop" size="368640"> |
| 7832 | <rom name="siraso.dsk" size="368640" crc="24adb822" sha1="fa82f7fc50ceb0d3b900335dd3f1ff3263dce302" offset="0" /> |
| 7833 | </dataarea> |
| 7834 | </part> |
| 7835 | </software> |
| 7836 | |
| 7837 | <software name="sokoban"> |
| 7838 | <description>Soko-ban</description> |
| 7839 | <year>1990</year> |
| 7840 | <publisher>Ubul</publisher> |
| 7841 | |
| 7842 | <part name="flop1" interface="floppy_5_25"> |
| 7843 | <dataarea name="flop" size="368640"> |
| 7844 | <rom name="soko-ban.dsk" size="368640" crc="07b499a6" sha1="4cafe95ba7f717af3909ee05c457beca61a888c4" offset="0" /> |
| 7845 | </dataarea> |
| 7846 | </part> |
| 7847 | </software> |
| 7848 | |
| 7849 | <software name="sokobang"> |
| 7850 | <description>Soko-Ban Game</description> |
| 7851 | <year>1989</year> |
| 7852 | <publisher>Andras Soos</publisher> |
| 7853 | |
| 7854 | <part name="flop1" interface="floppy_5_25"> |
| 7855 | <dataarea name="flop" size="368640"> |
| 7856 | <rom name="sokobangame.dsk" size="368640" crc="988dcbb2" sha1="0888da813afc88e5da30419beec1571737d70fb5" offset="0" /> |
| 7857 | </dataarea> |
| 7858 | </part> |
| 7859 | </software> |
| 7860 | |
| 7861 | <software name="soliter"> |
| 7862 | <description>Soliter</description> |
| 7863 | <year>1986</year> |
| 7864 | <publisher>Unisoft GMK</publisher> |
| 7865 | |
| 7866 | <part name="flop1" interface="floppy_5_25"> |
| 7867 | <dataarea name="flop" size="368640"> |
| 7868 | <rom name="soliter(unisoft).dsk" size="368640" crc="f7bcb35c" sha1="8d191533e78f42096cac904c597432342448503b" offset="0" /> |
| 7869 | </dataarea> |
| 7870 | </part> |
| 7871 | </software> |
| 7872 | |
| 7873 | <software name="spacesap"> |
| 7874 | <description>Space Sapper</description> |
| 7875 | <year>1987</year> |
| 7876 | <publisher>Novotrade</publisher> |
| 7877 | |
| 7878 | <part name="flop1" interface="floppy_5_25"> |
| 7879 | <dataarea name="flop" size="368640"> |
| 7880 | <rom name="spacesapper.dsk" size="368640" crc="df679391" sha1="a9acf7f2ab79fd6124eb17fc31e35e96d28abb1b" offset="0" /> |
| 7881 | </dataarea> |
| 7882 | </part> |
| 7883 | </software> |
| 7884 | |
| 7885 | <software name="spacesapa" cloneof="spacesap"> |
| 7886 | <description>Space Sapper (Alt)</description> |
| 7887 | <year>1987</year> |
| 7888 | <publisher>Novotrade</publisher> |
| 7889 | |
| 7890 | <part name="flop1" interface="floppy_5_25"> |
| 7891 | <dataarea name="flop" size="368640"> |
| 7892 | <rom name="spacev2.dsk" size="368640" crc="5ed54dbf" sha1="3d73771a57f0d6bb2d638661dd444cf484d41110" offset="0" /> |
| 7893 | </dataarea> |
| 7894 | </part> |
| 7895 | </software> |
| 7896 | |
| 7897 | <software name="spectrum"> |
| 7898 | <description>Spectrum</description> |
| 7899 | <year>198?</year> |
| 7900 | <publisher><unknown></publisher> |
| 7901 | |
| 7902 | <part name="flop1" interface="floppy_5_25"> |
| 7903 | <dataarea name="flop" size="368640"> |
| 7904 | <rom name="spectrum.dsk" size="368640" crc="c68f00db" sha1="e2bf291ceddc052e4dca4684816e1fc40892ef50" offset="0" /> |
| 7905 | </dataarea> |
| 7906 | </part> |
| 7907 | </software> |
| 7908 | |
| 7909 | <software name="spherica"> |
| 7910 | <description>Spherical</description> |
| 7911 | <year>198?</year> |
| 7912 | <publisher>C.S. Software</publisher> |
| 7913 | |
| 7914 | <part name="flop1" interface="floppy_5_25"> |
| 7915 | <dataarea name="flop" size="368640"> |
| 7916 | <rom name="spherical.dsk" size="368640" crc="e86db571" sha1="6453d33e336802eabf56766cc9b8880249873427" offset="0" /> |
| 7917 | </dataarea> |
| 7918 | </part> |
| 7919 | </software> |
| 7920 | |
| 7921 | <software name="spherdem"> |
| 7922 | <description>Spherical Demo</description> |
| 7923 | <year>198?</year> |
| 7924 | <publisher><unknown></publisher> |
| 7925 | |
| 7926 | <part name="flop1" interface="floppy_5_25"> |
| 7927 | <dataarea name="flop" size="368640"> |
| 7928 | <rom name="sphericaldemo.dsk" size="368640" crc="e8ecd920" sha1="e8736b4945c4675e78862b30e58c70b7abd4fab1" offset="0" /> |
| 7929 | </dataarea> |
| 7930 | </part> |
| 7931 | </software> |
| 7932 | |
| 7933 | <software name="sphericaa" cloneof="spherica"> |
| 7934 | <description>Spherical (Alt)</description> |
| 7935 | <year>198?</year> |
| 7936 | <publisher>C.S. Software</publisher> |
| 7937 | |
| 7938 | <part name="flop1" interface="floppy_5_25"> |
| 7939 | <dataarea name="flop" size="368640"> |
| 7940 | <rom name="sphericalv2.dsk" size="368640" crc="2d773fd0" sha1="7ca5c0ba59c5fcab96811137d399a86ddd795d30" offset="0" /> |
| 7941 | </dataarea> |
| 7942 | </part> |
| 7943 | </software> |
| 7944 | |
| 7945 | <software name="sprinter"> |
| 7946 | <description>Sprinter</description> |
| 7947 | <year>198?</year> |
| 7948 | <publisher>Berysoft</publisher> |
| 7949 | |
| 7950 | <part name="flop1" interface="floppy_5_25"> |
| 7951 | <dataarea name="flop" size="368640"> |
| 7952 | <rom name="sprinter.dsk" size="368640" crc="e9b40029" sha1="69300a0f60132e34b69a5e72c449d584fb0cdfdc" offset="0" /> |
| 7953 | </dataarea> |
| 7954 | </part> |
| 7955 | </software> |
| 7956 | |
| 7957 | <software name="sprite"> |
| 7958 | <description>Sprite Készítő (Cracked by Csabi)</description> |
| 7959 | <year>198?</year> |
| 7960 | <publisher>Attila Canjavec</publisher> |
| 7961 | |
| 7962 | <part name="flop1" interface="floppy_5_25"> |
| 7963 | <dataarea name="flop" size="368640"> |
| 7964 | <rom name="sprite.dsk" size="368640" crc="7c869449" sha1="743b16e44cdc54d26cad8514d9544949cfe5e4a0" offset="0" /> |
| 7965 | </dataarea> |
| 7966 | </part> |
| 7967 | </software> |
| 7968 | |
| 7969 | <software name="spritele"> |
| 7970 | <description>Sprite Készítő - Leírás</description> |
| 7971 | <year>198?</year> |
| 7972 | <publisher>Attila Canjavec</publisher> |
| 7973 | |
| 7974 | <part name="flop1" interface="floppy_5_25"> |
| 7975 | <dataarea name="flop" size="368640"> |
| 7976 | <rom name="spritele.dsk" size="368640" crc="62a82ec8" sha1="66cbf1c2a5f83826f6531ac06070c8666ff03f54" offset="0" /> |
| 7977 | </dataarea> |
| 7978 | </part> |
| 7979 | </software> |
| 7980 | |
| 7981 | <software name="spritepr"> |
| 7982 | <description>Sprite-Programozó</description> |
| 7983 | <year>198?</year> |
| 7984 | <publisher>Mono-Sw</publisher> |
| 7985 | |
| 7986 | <part name="flop1" interface="floppy_5_25"> |
| 7987 | <dataarea name="flop" size="368640"> |
| 7988 | <rom name="spritepr.dsk" size="368640" crc="e6dc9b83" sha1="892646bcc53e255bc772ae3c234195048621baea" offset="0" /> |
| 7989 | </dataarea> |
| 7990 | </part> |
| 7991 | </software> |
| 7992 | |
| 7993 | <software name="spyhunt"> |
| 7994 | <description>Spy Hunter</description> |
| 7995 | <year>198?</year> |
| 7996 | <publisher><unknown></publisher> |
| 7997 | |
| 7998 | <part name="flop1" interface="floppy_5_25"> |
| 7999 | <dataarea name="flop" size="368640"> |
| 8000 | <rom name="spyhunt.dsk" size="368640" crc="318d1c9a" sha1="cb70e56983583cb78c34d8b8c5dac0e9145e319b" offset="0" /> |
| 8001 | </dataarea> |
| 8002 | </part> |
| 8003 | </software> |
| 8004 | |
| 8005 | <software name="starship"> |
| 8006 | <description>Starship</description> |
| 8007 | <year>1989</year> |
| 8008 | <publisher>Zoltan Arvai</publisher> |
| 8009 | |
| 8010 | <part name="flop1" interface="floppy_5_25"> |
| 8011 | <dataarea name="flop" size="368640"> |
| 8012 | <rom name="starship.dsk" size="368640" crc="d4795666" sha1="33c7366f1dc1c512d8bc21b3a38ab64edfdce246" offset="0" /> |
| 8013 | </dataarea> |
| 8014 | </part> |
| 8015 | </software> |
| 8016 | |
| 8017 | <software name="start"> |
| 8018 | <description>Start</description> |
| 8019 | <year>198?</year> |
| 8020 | <publisher><unknown></publisher> |
| 8021 | |
| 8022 | <part name="flop1" interface="floppy_5_25"> |
| 8023 | <dataarea name="flop" size="368640"> |
| 8024 | <rom name="start.dsk" size="368640" crc="2c971ee0" sha1="dc232eb478d6f83f817be6488aac48cac77abf3e" offset="0" /> |
| 8025 | </dataarea> |
| 8026 | </part> |
| 8027 | </software> |
| 8028 | |
| 8029 | <software name="startrek"> |
| 8030 | <description>Star Trek</description> |
| 8031 | <year>1987</year> |
| 8032 | <publisher><unknown></publisher> |
| 8033 | |
| 8034 | <part name="flop1" interface="floppy_5_25"> |
| 8035 | <dataarea name="flop" size="368640"> |
| 8036 | <rom name="startrek.dsk" size="368640" crc="4aa6bddc" sha1="9e80e1639c8db84c22a5451600ce0291ed1ad206" offset="0" /> |
| 8037 | </dataarea> |
| 8038 | </part> |
| 8039 | </software> |
| 8040 | |
| 8041 | <software name="starwars"> |
| 8042 | <description>Star Wars</description> |
| 8043 | <year>198?</year> |
| 8044 | <publisher>Software in LUX</publisher> |
| 8045 | |
| 8046 | <part name="flop1" interface="floppy_5_25"> |
| 8047 | <dataarea name="flop" size="368640"> |
| 8048 | <rom name="starwars.dsk" size="368640" crc="62e14b10" sha1="3f9c4b1de1ebabeca8edfa40db08f4c8380e24b2" offset="0" /> |
| 8049 | </dataarea> |
| 8050 | </part> |
| 8051 | </software> |
| 8052 | |
| 8053 | <software name="stevens"> |
| 8054 | <description>Steven's Gambling</description> |
| 8055 | <year>1986</year> |
| 8056 | <publisher>BirdSoft</publisher> |
| 8057 | |
| 8058 | <part name="flop1" interface="floppy_5_25"> |
| 8059 | <dataarea name="flop" size="368640"> |
| 8060 | <rom name="stevensgambling.dsk" size="368640" crc="7f4544c5" sha1="83a41218369550adcadf5ce7afa3275e9cfe34fe" offset="0" /> |
| 8061 | </dataarea> |
| 8062 | </part> |
| 8063 | </software> |
| 8064 | |
| 8065 | <software name="stonesca"> |
| 8066 | <description>Stone Scamp</description> |
| 8067 | <year>1988</year> |
| 8068 | <publisher>Zsolt Szíjártó</publisher> |
| 8069 | |
| 8070 | <part name="flop1" interface="floppy_5_25"> |
| 8071 | <dataarea name="flop" size="368640"> |
| 8072 | <rom name="stonescamp.dsk" size="368640" crc="7d4e6587" sha1="bb4a2c7c7c367adf68376a5558d31900adb05afb" offset="0" /> |
| 8073 | </dataarea> |
| 8074 | </part> |
| 8075 | </software> |
| 8076 | |
| 8077 | <software name="stonescaa" cloneof="stonesca"> |
| 8078 | <description>Stone Scamp (Örökélet)</description> |
| 8079 | <year>1988</year> |
| 8080 | <publisher>Zsolt Szíjártó</publisher> |
| 8081 | |
| 8082 | <part name="flop1" interface="floppy_5_25"> |
| 8083 | <dataarea name="flop" size="368640"> |
| 8084 | <rom name="stonescamp(orokelet).dsk" size="368640" crc="86105435" sha1="38bf50bc87d03a399b07ba182e7a9d66f2bd6e62" offset="0" /> |
| 8085 | </dataarea> |
| 8086 | </part> |
| 8087 | </software> |
| 8088 | |
| 8089 | <software name="strategm"> |
| 8090 | <description>Strategem 2/C - Gazdasági Döntésjáték</description> |
| 8091 | <year>1987</year> |
| 8092 | <publisher>Bela Kertesz</publisher> |
| 8093 | |
| 8094 | <part name="flop1" interface="floppy_5_25"> |
| 8095 | <dataarea name="flop" size="368640"> |
| 8096 | <rom name="strategm.dsk" size="368640" crc="19d9cb2e" sha1="1189b9b08236650bb793492176d9ff4aa4c07f7c" offset="0" /> |
| 8097 | </dataarea> |
| 8098 | </part> |
| 8099 | </software> |
| 8100 | |
| 8101 | <software name="stripfrg"> |
| 8102 | <description>Strip-Forgó (Piros)</description> |
| 8103 | <year>198?</year> |
| 8104 | <publisher>Ubisoft</publisher> |
| 8105 | |
| 8106 | <part name="flop1" interface="floppy_5_25"> |
| 8107 | <dataarea name="flop" size="368640"> |
| 8108 | <rom name="stripforgopiros.dsk" size="368640" crc="29a64669" sha1="5614739fb1f8d972389d29aac10d01ee1ca00984" offset="0" /> |
| 8109 | </dataarea> |
| 8110 | </part> |
| 8111 | </software> |
| 8112 | |
| 8113 | <software name="stripfrga" cloneof="stripfrg"> |
| 8114 | <description>Strip-Forgó (Zold)</description> |
| 8115 | <year>198?</year> |
| 8116 | <publisher>Ubisoft</publisher> |
| 8117 | |
| 8118 | <part name="flop1" interface="floppy_5_25"> |
| 8119 | <dataarea name="flop" size="368640"> |
| 8120 | <rom name="stripforgozold.dsk" size="368640" crc="3870a3d0" sha1="988c678ac1fc5578b29c1851816b5fc53bc48124" offset="0" /> |
| 8121 | </dataarea> |
| 8122 | </part> |
| 8123 | </software> |
| 8124 | |
| 8125 | <software name="su1"> |
| 8126 | <description>SU 1</description> |
| 8127 | <year>198?</year> |
| 8128 | <publisher>Octasoft</publisher> |
| 8129 | |
| 8130 | <part name="flop1" interface="floppy_5_25"> |
| 8131 | <dataarea name="flop" size="368640"> |
| 8132 | <rom name="su1.dsk" size="368640" crc="a2f209b0" sha1="a15f289a8e5388593fb7ba419dd762ebe11fa1b5" offset="0" /> |
| 8133 | </dataarea> |
| 8134 | </part> |
| 8135 | </software> |
| 8136 | |
| 8137 | <software name="su2"> |
| 8138 | <description>SU 2</description> |
| 8139 | <year>198?</year> |
| 8140 | <publisher>Octasoft</publisher> |
| 8141 | |
| 8142 | <part name="flop1" interface="floppy_5_25"> |
| 8143 | <dataarea name="flop" size="368640"> |
| 8144 | <rom name="su2.dsk" size="368640" crc="7e5c6992" sha1="f3a1fe522786c7f14b4c92bc6045baa37c5e7ebe" offset="0" /> |
| 8145 | </dataarea> |
| 8146 | </part> |
| 8147 | </software> |
| 8148 | |
| 8149 | <software name="su3"> |
| 8150 | <description>SU 3</description> |
| 8151 | <year>198?</year> |
| 8152 | <publisher>Octasoft</publisher> |
| 8153 | |
| 8154 | <part name="flop1" interface="floppy_5_25"> |
| 8155 | <dataarea name="flop" size="368640"> |
| 8156 | <rom name="su3.dsk" size="368640" crc="aa806da0" sha1="b9a4a4b61bbf362753a0bd0c081e1f10996dfaf9" offset="0" /> |
| 8157 | </dataarea> |
| 8158 | </part> |
| 8159 | </software> |
| 8160 | |
| 8161 | <software name="su4"> |
| 8162 | <description>SU 4</description> |
| 8163 | <year>198?</year> |
| 8164 | <publisher>Octasoft</publisher> |
| 8165 | |
| 8166 | <part name="flop1" interface="floppy_5_25"> |
| 8167 | <dataarea name="flop" size="368640"> |
| 8168 | <rom name="su4.dsk" size="368640" crc="0a1145ad" sha1="3df443eb6db94f0b13f4288ea983509546ad3cf3" offset="0" /> |
| 8169 | </dataarea> |
| 8170 | </part> |
| 8171 | </software> |
| 8172 | |
| 8173 | <software name="su5"> |
| 8174 | <description>SU 5</description> |
| 8175 | <year>198?</year> |
| 8176 | <publisher>Octasoft</publisher> |
| 8177 | |
| 8178 | <part name="flop1" interface="floppy_5_25"> |
| 8179 | <dataarea name="flop" size="368640"> |
| 8180 | <rom name="su5.dsk" size="368640" crc="34ae209a" sha1="006f2ff8e872a2c74d27d1449cb85e4bac3cbdd4" offset="0" /> |
| 8181 | </dataarea> |
| 8182 | </part> |
| 8183 | </software> |
| 8184 | |
| 8185 | <software name="su6"> |
| 8186 | <description>SU 6</description> |
| 8187 | <year>198?</year> |
| 8188 | <publisher>Octasoft</publisher> |
| 8189 | |
| 8190 | <part name="flop1" interface="floppy_5_25"> |
| 8191 | <dataarea name="flop" size="368640"> |
| 8192 | <rom name="su6.dsk" size="368640" crc="60019d45" sha1="c917721e8805a3645cd749190ff5127e6d0c8342" offset="0" /> |
| 8193 | </dataarea> |
| 8194 | </part> |
| 8195 | </software> |
| 8196 | |
| 8197 | <software name="submarin"> |
| 8198 | <description>Submarine</description> |
| 8199 | <year>198?</year> |
| 8200 | <publisher><unknown></publisher> |
| 8201 | |
| 8202 | <part name="flop1" interface="floppy_5_25"> |
| 8203 | <dataarea name="flop" size="368640"> |
| 8204 | <rom name="submarin.dsk" size="368640" crc="03de8c89" sha1="fa85a5bede55351074a2760e49310b8dd351f987" offset="0" /> |
| 8205 | </dataarea> |
| 8206 | </part> |
| 8207 | </software> |
| 8208 | |
| 8209 | <software name="submarina" cloneof="submarin"> |
| 8210 | <description>Submarine (Alt)</description> |
| 8211 | <year>198?</year> |
| 8212 | <publisher><unknown></publisher> |
| 8213 | |
| 8214 | <part name="flop1" interface="floppy_5_25"> |
| 8215 | <dataarea name="flop" size="368640"> |
| 8216 | <rom name="submv2.dsk" size="368640" crc="cc5b10ee" sha1="753155bfc20bfd60be23696732f81f5b9eea59a6" offset="0" /> |
| 8217 | </dataarea> |
| 8218 | </part> |
| 8219 | </software> |
| 8220 | |
| 8221 | <software name="sulyesz"> |
| 8222 | <description>Süllyesztő</description> |
| 8223 | <year>1986</year> |
| 8224 | <publisher>Magyar-Holi Studió</publisher> |
| 8225 | |
| 8226 | <part name="flop1" interface="floppy_5_25"> |
| 8227 | <dataarea name="flop" size="368640"> |
| 8228 | <rom name="sulyesz.dsk" size="368640" crc="7d7962e8" sha1="50f781401bd1d8144a015921517966f447638539" offset="0" /> |
| 8229 | </dataarea> |
| 8230 | </part> |
| 8231 | </software> |
| 8232 | |
| 8233 | <software name="surito"> |
| 8234 | <description>Sürítő</description> |
| 8235 | <year>198?</year> |
| 8236 | <publisher>Gigasoft</publisher> |
| 8237 | |
| 8238 | <part name="flop1" interface="floppy_5_25"> |
| 8239 | <dataarea name="flop" size="368640"> |
| 8240 | <rom name="surito.dsk" size="368640" crc="c010b573" sha1="ad90d8be67af128cac9d3a957951288bc7704cd8" offset="0" /> |
| 8241 | </dataarea> |
| 8242 | </part> |
| 8243 | </software> |
| 8244 | |
| 8245 | <software name="szakmai"> |
| 8246 | <description>Szakmai számítások</description> |
| 8247 | <year>198?</year> |
| 8248 | <publisher>Software in LUX</publisher> |
| 8249 | |
| 8250 | <part name="flop1" interface="floppy_5_25"> |
| 8251 | <dataarea name="flop" size="368640"> |
| 8252 | <rom name="szakmai.dsk" size="368640" crc="1377c12b" sha1="d0f8d8184fc364531620672c613920ec641ec06a" offset="0" /> |
| 8253 | </dataarea> |
| 8254 | </part> |
| 8255 | </software> |
| 8256 | |
| 8257 | <software name="szamolas"> |
| 8258 | <description>Számolás</description> |
| 8259 | <year>198?</year> |
| 8260 | <publisher><unknown></publisher> |
| 8261 | |
| 8262 | <part name="flop1" interface="floppy_5_25"> |
| 8263 | <dataarea name="flop" size="368640"> |
| 8264 | <rom name="szamolas.dsk" size="368640" crc="c499bc3d" sha1="ba44c1d670edea5653e61f18dc83829ff3026176" offset="0" /> |
| 8265 | </dataarea> |
| 8266 | </part> |
| 8267 | </software> |
| 8268 | |
| 8269 | <software name="szamolog"> |
| 8270 | <description>Számológép</description> |
| 8271 | <year>1986</year> |
| 8272 | <publisher>István Rábai</publisher> |
| 8273 | |
| 8274 | <part name="flop1" interface="floppy_5_25"> |
| 8275 | <dataarea name="flop" size="368640"> |
| 8276 | <rom name="szamologep.dsk" size="368640" crc="d8ee486a" sha1="64c38f9b698ec470f7c6704ec18e2b92f88dac19" offset="0" /> |
| 8277 | </dataarea> |
| 8278 | </part> |
| 8279 | </software> |
| 8280 | |
| 8281 | <software name="szankove"> |
| 8282 | <description>Szánkóverseny</description> |
| 8283 | <year>198?</year> |
| 8284 | <publisher><unknown></publisher> |
| 8285 | |
| 8286 | <part name="flop1" interface="floppy_5_25"> |
| 8287 | <dataarea name="flop" size="368640"> |
| 8288 | <rom name="szankoev.dsk" size="368640" crc="7bd07585" sha1="18f4ae7d4644c9932184a660ec6e41235d9c564a" offset="0" /> |
| 8289 | </dataarea> |
| 8290 | </part> |
| 8291 | </software> |
| 8292 | |
| 8293 | <software name="szankovea" cloneof="szankove"> |
| 8294 | <description>Szánkóverseny (Alt)</description> |
| 8295 | <year>198?</year> |
| 8296 | <publisher><unknown></publisher> |
| 8297 | |
| 8298 | <part name="flop1" interface="floppy_5_25"> |
| 8299 | <dataarea name="flop" size="368640"> |
| 8300 | <rom name="szanko.dsk" size="368640" crc="efcafb97" sha1="a4e840b3c995674acfac934a7ac55b500366c5fa" offset="0" /> |
| 8301 | </dataarea> |
| 8302 | </part> |
| 8303 | </software> |
| 8304 | |
| 8305 | <software name="szellova"> |
| 8306 | <description>Széllovas</description> |
| 8307 | <year>198?</year> |
| 8308 | <publisher><unknown></publisher> |
| 8309 | |
| 8310 | <part name="flop1" interface="floppy_5_25"> |
| 8311 | <dataarea name="flop" size="368640"> |
| 8312 | <rom name="szellovas.dsk" size="368640" crc="c0d345b4" sha1="e7af8a802bde9432e9fb48a18a2ad1a78ab44b5f" offset="0" /> |
| 8313 | </dataarea> |
| 8314 | </part> |
| 8315 | </software> |
| 8316 | |
| 8317 | <software name="szextesz"> |
| 8318 | <description>Szex-Teszt</description> |
| 8319 | <year>198?</year> |
| 8320 | <publisher><unknown></publisher> |
| 8321 | |
| 8322 | <part name="flop1" interface="floppy_5_25"> |
| 8323 | <dataarea name="flop" size="368640"> |
| 8324 | <rom name="szex-teszt.dsk" size="368640" crc="7a254898" sha1="a7e14bf825bed3118bf32e18f8e9e0d5bd4e0b1b" offset="0" /> |
| 8325 | </dataarea> |
| 8326 | </part> |
| 8327 | </software> |
| 8328 | |
| 8329 | <software name="szinbox"> |
| 8330 | <description>Színbox</description> |
| 8331 | <year>198?</year> |
| 8332 | <publisher><unknown></publisher> |
| 8333 | |
| 8334 | <part name="flop1" interface="floppy_5_25"> |
| 8335 | <dataarea name="flop" size="368640"> |
| 8336 | <rom name="szinbox.dsk" size="368640" crc="7b611ba3" sha1="7b023c6664678f89987cda3f1c7cd88ccb168eda" offset="0" /> |
| 8337 | </dataarea> |
| 8338 | </part> |
| 8339 | </software> |
| 8340 | |
| 8341 | <software name="szingorg"> |
| 8342 | <description>Színgörgetés Keretben</description> |
| 8343 | <year>198?</year> |
| 8344 | <publisher><unknown></publisher> |
| 8345 | |
| 8346 | <part name="flop1" interface="floppy_5_25"> |
| 8347 | <dataarea name="flop" size="368640"> |
| 8348 | <rom name="szingorg.dsk" size="368640" crc="d23731ca" sha1="e139b28e8b32990d46000e2dfa342e9e704f81b1" offset="0" /> |
| 8349 | </dataarea> |
| 8350 | </part> |
| 8351 | </software> |
| 8352 | |
| 8353 | <software name="szinresz"> |
| 8354 | <description>Színre színt</description> |
| 8355 | <year>198?</year> |
| 8356 | <publisher>Berysoft</publisher> |
| 8357 | |
| 8358 | <part name="flop1" interface="floppy_5_25"> |
| 8359 | <dataarea name="flop" size="368640"> |
| 8360 | <rom name="szinreszint.dsk" size="368640" crc="03446701" sha1="a7e3418d086f0251918785e6a265f225e7995136" offset="0" /> |
| 8361 | </dataarea> |
| 8362 | </part> |
| 8363 | </software> |
| 8364 | |
| 8365 | <software name="szinsav"> |
| 8366 | <description>Színsávok</description> |
| 8367 | <year>198?</year> |
| 8368 | <publisher>István Tóth</publisher> |
| 8369 | |
| 8370 | <part name="flop1" interface="floppy_5_25"> |
| 8371 | <dataarea name="flop" size="368640"> |
| 8372 | <rom name="szinsav.dsk" size="368640" crc="fcbcd969" sha1="33e6dddbe5ec3923510c332369204dcac56a62ce" offset="0" /> |
| 8373 | </dataarea> |
| 8374 | </part> |
| 8375 | </software> |
| 8376 | |
| 8377 | <software name="szinteti"> |
| 8378 | <description>Szintetizátor</description> |
| 8379 | <year>198?</year> |
| 8380 | <publisher><unknown></publisher> |
| 8381 | |
| 8382 | <part name="flop1" interface="floppy_5_25"> |
| 8383 | <dataarea name="flop" size="368640"> |
| 8384 | <rom name="szintetizator.dsk" size="368640" crc="ec7ce730" sha1="f876d72178ba63f040db0f27a44ab82421173fcc" offset="0" /> |
| 8385 | </dataarea> |
| 8386 | </part> |
| 8387 | </software> |
| 8388 | |
| 8389 | <software name="sziv10"> |
| 8390 | <description>Szivárvány 10</description> |
| 8391 | <year>198?</year> |
| 8392 | <publisher><unknown></publisher> |
| 8393 | |
| 8394 | <part name="flop1" interface="floppy_5_25"> |
| 8395 | <dataarea name="flop" size="368640"> |
| 8396 | <rom name="sziv10.dsk" size="368640" crc="81b2c92e" sha1="5d2acb1f92f3e6279e0b47cf180ffa84953c2369" offset="0" /> |
| 8397 | </dataarea> |
| 8398 | </part> |
| 8399 | </software> |
| 8400 | |
| 8401 | <software name="sziv11"> |
| 8402 | <description>Szivárvány 11</description> |
| 8403 | <year>198?</year> |
| 8404 | <publisher><unknown></publisher> |
| 8405 | |
| 8406 | <part name="flop1" interface="floppy_5_25"> |
| 8407 | <dataarea name="flop" size="368640"> |
| 8408 | <rom name="sziv11.dsk" size="368640" crc="f451520b" sha1="8aa31f97c9efcbb5fa1b9312700cbcf8d25a0a9d" offset="0" /> |
| 8409 | </dataarea> |
| 8410 | </part> |
| 8411 | </software> |
| 8412 | |
| 8413 | <software name="sziv12"> |
| 8414 | <description>Szivárvány 12</description> |
| 8415 | <year>198?</year> |
| 8416 | <publisher><unknown></publisher> |
| 8417 | |
| 8418 | <part name="flop1" interface="floppy_5_25"> |
| 8419 | <dataarea name="flop" size="368640"> |
| 8420 | <rom name="sziv12.dsk" size="368640" crc="8f2d36dd" sha1="3c39123bdefd80c8ac0e366802c1daec65bfc78b" offset="0" /> |
| 8421 | </dataarea> |
| 8422 | </part> |
| 8423 | </software> |
| 8424 | |
| 8425 | <software name="sziv13"> |
| 8426 | <description>Szivárvány 13</description> |
| 8427 | <year>198?</year> |
| 8428 | <publisher><unknown></publisher> |
| 8429 | |
| 8430 | <part name="flop1" interface="floppy_5_25"> |
| 8431 | <dataarea name="flop" size="368640"> |
| 8432 | <rom name="sziv13.dsk" size="368640" crc="12164a68" sha1="1239fb8acc7cd34886364072b2e60c245cf31bb8" offset="0" /> |
| 8433 | </dataarea> |
| 8434 | </part> |
| 8435 | </software> |
| 8436 | |
| 8437 | <software name="sziv14"> |
| 8438 | <description>Szivárvány 14</description> |
| 8439 | <year>198?</year> |
| 8440 | <publisher><unknown></publisher> |
| 8441 | |
| 8442 | <part name="flop1" interface="floppy_5_25"> |
| 8443 | <dataarea name="flop" size="368640"> |
| 8444 | <rom name="sziv14.dsk" size="368640" crc="49606daa" sha1="7f512528d506924f47d1d513b8a9756759f24423" offset="0" /> |
| 8445 | </dataarea> |
| 8446 | </part> |
| 8447 | </software> |
| 8448 | |
| 8449 | <software name="sziv15"> |
| 8450 | <description>Szivárvány 15</description> |
| 8451 | <year>198?</year> |
| 8452 | <publisher><unknown></publisher> |
| 8453 | |
| 8454 | <part name="flop1" interface="floppy_5_25"> |
| 8455 | <dataarea name="flop" size="368640"> |
| 8456 | <rom name="sziv15.dsk" size="368640" crc="8d33fa85" sha1="5fd6e34a0d3dd84904e9fe261e9b6bd869b841a9" offset="0" /> |
| 8457 | </dataarea> |
| 8458 | </part> |
| 8459 | </software> |
| 8460 | |
| 8461 | <software name="szocske"> |
| 8462 | <description>Szöcske</description> |
| 8463 | <year>198?</year> |
| 8464 | <publisher><unknown></publisher> |
| 8465 | |
| 8466 | <part name="flop1" interface="floppy_5_25"> |
| 8467 | <dataarea name="flop" size="368640"> |
| 8468 | <rom name="szocske.dsk" size="368640" crc="85fe3eb0" sha1="3bbc89efc52f41dc91e8167049cbacf839c3e536" offset="0" /> |
| 8469 | </dataarea> |
| 8470 | </part> |
| 8471 | </software> |
| 8472 | |
| 8473 | <software name="szoliter"> |
| 8474 | <description>Szoliter (TVCM)</description> |
| 8475 | <year>1992</year> |
| 8476 | <publisher>TVCM</publisher> |
| 8477 | |
| 8478 | <part name="flop1" interface="floppy_5_25"> |
| 8479 | <dataarea name="flop" size="368640"> |
| 8480 | <rom name="szoliter.dsk" size="368640" crc="d9fdc4ae" sha1="788f92878d29ac33564f370f8b95885f6258e16b" offset="0" /> |
| 8481 | </dataarea> |
| 8482 | </part> |
| 8483 | </software> |
| 8484 | |
| 8485 | <software name="szolitny"> |
| 8486 | <description>Szoliter (Nyitrai)</description> |
| 8487 | <year>1986</year> |
| 8488 | <publisher>Nyitrai</publisher> |
| 8489 | |
| 8490 | <part name="flop1" interface="floppy_5_25"> |
| 8491 | <dataarea name="flop" size="368640"> |
| 8492 | <rom name="szolit86.dsk" size="368640" crc="05e0b07b" sha1="e8d1876c7fa87fcfbfda9003194430d67865694d" offset="0" /> |
| 8493 | </dataarea> |
| 8494 | </part> |
| 8495 | </software> |
| 8496 | |
| 8497 | <software name="szolitny03" cloneof="szolitny"> |
| 8498 | <description>Szoliter (Nyitrai, Newer)</description> |
| 8499 | <year>2003</year> |
| 8500 | <publisher>Nyitrai</publisher> |
| 8501 | |
| 8502 | <part name="flop1" interface="floppy_5_25"> |
| 8503 | <dataarea name="flop" size="368640"> |
| 8504 | <rom name="szolitjg.dsk" size="368640" crc="acbc983e" sha1="1af207963f7d640ea405676e919884bf6ca7cef4" offset="0" /> |
| 8505 | </dataarea> |
| 8506 | </part> |
| 8507 | </software> |
| 8508 | |
| 8509 | <software name="szonda"> |
| 8510 | <description>Szonda</description> |
| 8511 | <year>198?</year> |
| 8512 | <publisher>Software in LUX</publisher> |
| 8513 | |
| 8514 | <part name="flop1" interface="floppy_5_25"> |
| 8515 | <dataarea name="flop" size="368640"> |
| 8516 | <rom name="szonda.dsk" size="368640" crc="9138e191" sha1="d4f5714aa0528b49bf826bcef3d209ce3467dc97" offset="0" /> |
| 8517 | </dataarea> |
| 8518 | </part> |
| 8519 | </software> |
| 8520 | |
| 8521 | <software name="szopoker"> |
| 8522 | <description>Szó-Póker</description> |
| 8523 | <year>198?</year> |
| 8524 | <publisher>Jozsef Szoldatics - Jozsefne Szoldatics</publisher> |
| 8525 | |
| 8526 | <part name="flop1" interface="floppy_5_25"> |
| 8527 | <dataarea name="flop" size="368640"> |
| 8528 | <rom name="szopoker.dsk" size="368640" crc="2a82c981" sha1="0f5d4c6601116be7d08e496dc4990240aeeef732" offset="0" /> |
| 8529 | </dataarea> |
| 8530 | </part> |
| 8531 | </software> |
| 8532 | |
| 8533 | <software name="szorny"> |
| 8534 | <description>Szörny</description> |
| 8535 | <year>198?</year> |
| 8536 | <publisher>Software in LUX</publisher> |
| 8537 | |
| 8538 | <part name="flop1" interface="floppy_5_25"> |
| 8539 | <dataarea name="flop" size="368640"> |
| 8540 | <rom name="szorny.dsk" size="368640" crc="f6231c02" sha1="ab85714c18d9da9b4b2513c38987e474df483fdd" offset="0" /> |
| 8541 | </dataarea> |
| 8542 | </part> |
| 8543 | </software> |
| 8544 | |
| 8545 | <software name="szornyek"> |
| 8546 | <description>Szörnyek az útvesztőben</description> |
| 8547 | <year>198?</year> |
| 8548 | <publisher>C.S. Software</publisher> |
| 8549 | |
| 8550 | <part name="flop1" interface="floppy_5_25"> |
| 8551 | <dataarea name="flop" size="368640"> |
| 8552 | <rom name="szornyekazutvesztoben.dsk" size="368640" crc="74b3315e" sha1="56f8bf0145c75a980607dda5877fbedfedbb4142" offset="0" /> |
| 8553 | </dataarea> |
| 8554 | </part> |
| 8555 | </software> |
| 8556 | |
| 8557 | <software name="szorzas"> |
| 8558 | <description>Szorzás</description> |
| 8559 | <year>198?</year> |
| 8560 | <publisher><unknown></publisher> |
| 8561 | |
| 8562 | <part name="flop1" interface="floppy_5_25"> |
| 8563 | <dataarea name="flop" size="368640"> |
| 8564 | <rom name="szorzas.dsk" size="368640" crc="02e3ec25" sha1="afc913842019eefa162637487f4650f8e1aa4fc6" offset="0" /> |
| 8565 | </dataarea> |
| 8566 | </part> |
| 8567 | </software> |
| 8568 | |
| 8569 | <software name="szorzasa" cloneof="szorzas"> |
| 8570 | <description>Szorzás (Alt)</description> |
| 8571 | <year>198?</year> |
| 8572 | <publisher><unknown></publisher> |
| 8573 | |
| 8574 | <part name="flop1" interface="floppy_5_25"> |
| 8575 | <dataarea name="flop" size="368640"> |
| 8576 | <rom name="szorzav2.dsk" size="368640" crc="1f46fda6" sha1="7fe95a085903401a2ce917196d72b315e082b55b" offset="0" /> |
| 8577 | </dataarea> |
| 8578 | </part> |
| 8579 | </software> |
| 8580 | |
| 8581 | <software name="szoved"> |
| 8582 | <description>Kazettás Szövegszerkesztő TV-Computerre</description> |
| 8583 | <year>198?</year> |
| 8584 | <publisher>Novotrade</publisher> |
| 8585 | |
| 8586 | <part name="flop1" interface="floppy_5_25"> |
| 8587 | <dataarea name="flop" size="368640"> |
| 8588 | <rom name="szoved.dsk" size="368640" crc="0ccfa08f" sha1="8610cddac1e4f9ccf04fcc0914d925ae80021e87" offset="0" /> |
| 8589 | </dataarea> |
| 8590 | </part> |
| 8591 | </software> |
| 8592 | |
| 8593 | <software name="szurosz"> |
| 8594 | <description>Szűrő Számítás</description> |
| 8595 | <year>198?</year> |
| 8596 | <publisher><unknown></publisher> |
| 8597 | |
| 8598 | <part name="flop1" interface="floppy_5_25"> |
| 8599 | <dataarea name="flop" size="368640"> |
| 8600 | <rom name="szurosz.dsk" size="368640" crc="0844fa9f" sha1="5f38465d6ece0696b604011d168f7ccca141206d" offset="0" /> |
| 8601 | </dataarea> |
| 8602 | </part> |
| 8603 | </software> |
| 8604 | |
| 8605 | <software name="tabla"> |
| 8606 | <description>Bűvös Tábla</description> |
| 8607 | <year>198?</year> |
| 8608 | <publisher><unknown></publisher> |
| 8609 | |
| 8610 | <part name="flop1" interface="floppy_5_25"> |
| 8611 | <dataarea name="flop" size="368640"> |
| 8612 | <rom name="tabla.dsk" size="368640" crc="5430933e" sha1="ef6484b3f25a0e3635ef606f5d8f1161a9204ce4" offset="0" /> |
| 8613 | </dataarea> |
| 8614 | </part> |
| 8615 | </software> |
| 8616 | |
| 8617 | <software name="talalkoz"> |
| 8618 | <description>Találkozók</description> |
| 8619 | <year>198?</year> |
| 8620 | <publisher>Béla Csatlós</publisher> |
| 8621 | |
| 8622 | <part name="flop1" interface="floppy_5_25"> |
| 8623 | <dataarea name="flop" size="368640"> |
| 8624 | <rom name="talalkozok.dsk" size="368640" crc="10a6c559" sha1="dd227266f66a6b70eec966731928321ccdf13735" offset="0" /> |
| 8625 | </dataarea> |
| 8626 | </part> |
| 8627 | </software> |
| 8628 | |
| 8629 | <software name="tamadas"> |
| 8630 | <description>Támadás</description> |
| 8631 | <year>198?</year> |
| 8632 | <publisher><unknown></publisher> |
| 8633 | |
| 8634 | <part name="flop1" interface="floppy_5_25"> |
| 8635 | <dataarea name="flop" size="368640"> |
| 8636 | <rom name="tamadas.dsk" size="368640" crc="a9219002" sha1="3f491cbf0c8351aef5c9496181b4f235c5d93599" offset="0" /> |
| 8637 | </dataarea> |
| 8638 | </part> |
| 8639 | </software> |
| 8640 | |
| 8641 | <software name="tankcsat"> |
| 8642 | <description>Tankcsata</description> |
| 8643 | <year>1988</year> |
| 8644 | <publisher>László Nagy</publisher> |
| 8645 | |
| 8646 | <part name="flop1" interface="floppy_5_25"> |
| 8647 | <dataarea name="flop" size="368640"> |
| 8648 | <rom name="tankcsata.dsk" size="368640" crc="578c039c" sha1="bc82079b9c6056ec1acde052658be833d03d84b0" offset="0" /> |
| 8649 | </dataarea> |
| 8650 | </part> |
| 8651 | </software> |
| 8652 | |
| 8653 | <software name="tapsi"> |
| 8654 | <description>Tapsi és a Nagy Vadász</description> |
| 8655 | <year>1988</year> |
| 8656 | <publisher>L&M Software</publisher> |
| 8657 | |
| 8658 | <part name="flop1" interface="floppy_5_25"> |
| 8659 | <dataarea name="flop" size="368640"> |
| 8660 | <rom name="tapsiesanagyvadasz.dsk" size="368640" crc="c5f0569c" sha1="e313fce9da29899044f7a37fd1cc2f23409e64b8" offset="0" /> |
| 8661 | </dataarea> |
| 8662 | </part> |
| 8663 | </software> |
| 8664 | |
| 8665 | <software name="tartalom"> |
| 8666 | <description>Tartalom</description> |
| 8667 | <year>1992</year> |
| 8668 | <publisher><unknown></publisher> |
| 8669 | |
| 8670 | <part name="flop1" interface="floppy_5_25"> |
| 8671 | <dataarea name="flop" size="368640"> |
| 8672 | <rom name="tartalom.dsk" size="368640" crc="29ac99f4" sha1="073864b9f4a78fa7d79db1fbff8968a133dddfa8" offset="0" /> |
| 8673 | </dataarea> |
| 8674 | </part> |
| 8675 | </software> |
| 8676 | |
| 8677 | <software name="teke"> |
| 8678 | <description>Teke</description> |
| 8679 | <year>198?</year> |
| 8680 | <publisher>L&M Software</publisher> |
| 8681 | |
| 8682 | <part name="flop1" interface="floppy_5_25"> |
| 8683 | <dataarea name="flop" size="368640"> |
| 8684 | <rom name="teke.dsk" size="368640" crc="94353cf8" sha1="07447a05b5ce6f8f971f0520f3db74684b4645c1" offset="0" /> |
| 8685 | </dataarea> |
| 8686 | </part> |
| 8687 | </software> |
| 8688 | |
| 8689 | <software name="telex1"> |
| 8690 | <description>Telex - 1500 szó magyarul 1</description> |
| 8691 | <year>1988</year> |
| 8692 | <publisher>Novotrade - Octasoft</publisher> |
| 8693 | |
| 8694 | <part name="flop1" interface="floppy_5_25"> |
| 8695 | <dataarea name="flop" size="368640"> |
| 8696 | <rom name="telex1.dsk" size="368640" crc="78562d4c" sha1="8d15a9a0efd0c14cb98f44383b8becc104eb99b1" offset="0" /> |
| 8697 | </dataarea> |
| 8698 | </part> |
| 8699 | </software> |
| 8700 | |
| 8701 | <software name="telex1a" cloneof="telex1"> |
| 8702 | <description>Telex - 1500 szó magyarul 1 (Alt)</description> |
| 8703 | <year>1988</year> |
| 8704 | <publisher>Novotrade - Octasoft</publisher> |
| 8705 | |
| 8706 | <part name="flop1" interface="floppy_5_25"> |
| 8707 | <dataarea name="flop" size="368640"> |
| 8708 | <rom name="telex1 [a].dsk" size="368640" crc="08bada71" sha1="c97b5b66dccb439505164201a76fba0d1be0b8af" offset="0" /> |
| 8709 | </dataarea> |
| 8710 | </part> |
| 8711 | </software> |
| 8712 | |
| 8713 | <software name="telex2"> |
| 8714 | <description>Telex - 1500 szó magyarul 2</description> |
| 8715 | <year>1988</year> |
| 8716 | <publisher>Novotrade - Octasoft</publisher> |
| 8717 | |
| 8718 | <part name="flop1" interface="floppy_5_25"> |
| 8719 | <dataarea name="flop" size="368640"> |
| 8720 | <rom name="telex2.dsk" size="368640" crc="c16a70a2" sha1="cfb8ea7460d68a636c713cbcde0c0ad07d9c0da9" offset="0" /> |
| 8721 | </dataarea> |
| 8722 | </part> |
| 8723 | </software> |
| 8724 | |
| 8725 | <software name="telex2a" cloneof="telex2"> |
| 8726 | <description>Telex - 1500 szó magyarul 2 (Alt)</description> |
| 8727 | <year>1988</year> |
| 8728 | <publisher>Novotrade - Octasoft</publisher> |
| 8729 | |
| 8730 | <part name="flop1" interface="floppy_5_25"> |
| 8731 | <dataarea name="flop" size="368640"> |
| 8732 | <rom name="telex2 [a].dsk" size="368640" crc="6e4d0a6f" sha1="e8841bb40773bbe0ef6cae4b62c6be33dfcbbc5b" offset="0" /> |
| 8733 | </dataarea> |
| 8734 | </part> |
| 8735 | </software> |
| 8736 | |
| 8737 | <software name="tenbrick"> |
| 8738 | <description>Ten Brick</description> |
| 8739 | <year>198?</year> |
| 8740 | <publisher>Cápasoft</publisher> |
| 8741 | |
| 8742 | <part name="flop1" interface="floppy_5_25"> |
| 8743 | <dataarea name="flop" size="368640"> |
| 8744 | <rom name="tenbrick.dsk" size="368640" crc="559c7067" sha1="5df09df2304a6a4993a531525416201113e9c2d6" offset="0" /> |
| 8745 | </dataarea> |
| 8746 | </part> |
| 8747 | </software> |
| 8748 | |
| 8749 | <software name="tenbricka" cloneof="tenbrick"> |
| 8750 | <description>Ten Brick (Alt)</description> |
| 8751 | <year>198?</year> |
| 8752 | <publisher>Cápasoft</publisher> |
| 8753 | |
| 8754 | <part name="flop1" interface="floppy_5_25"> |
| 8755 | <dataarea name="flop" size="368640"> |
| 8756 | <rom name="tenbriv2.dsk" size="368640" crc="818c16cd" sha1="eee11e5551232cd09f638047f82a47bf3c671bd9" offset="0" /> |
| 8757 | </dataarea> |
| 8758 | </part> |
| 8759 | </software> |
| 8760 | |
| 8761 | <software name="tetris"> |
| 8762 | <description>Tetris</description> |
| 8763 | <year>198?</year> |
| 8764 | <publisher><unknown></publisher> |
| 8765 | |
| 8766 | <part name="flop1" interface="floppy_5_25"> |
| 8767 | <dataarea name="flop" size="368640"> |
| 8768 | <rom name="tetris.dsk" size="368640" crc="a4cf58fc" sha1="14a853c6aa8601d3088432a695ccd846c5ff6d3d" offset="0" /> |
| 8769 | </dataarea> |
| 8770 | </part> |
| 8771 | </software> |
| 8772 | |
| 8773 | <software name="tievadas"> |
| 8774 | <description>TIE Vadász</description> |
| 8775 | <year>1988</year> |
| 8776 | <publisher>László Nagy</publisher> |
| 8777 | |
| 8778 | <part name="flop1" interface="floppy_5_25"> |
| 8779 | <dataarea name="flop" size="368640"> |
| 8780 | <rom name="tievad.dsk" size="368640" crc="b1695e54" sha1="84b30e32ee529a6dfcdca7a3e3ed55d02abeeec6" offset="0" /> |
| 8781 | </dataarea> |
| 8782 | </part> |
| 8783 | </software> |
| 8784 | |
| 8785 | <software name="tiktakto"> |
| 8786 | <description>Tik-Tak-To</description> |
| 8787 | <year>198?</year> |
| 8788 | <publisher><unknown></publisher> |
| 8789 | |
| 8790 | <part name="flop1" interface="floppy_5_25"> |
| 8791 | <dataarea name="flop" size="368640"> |
| 8792 | <rom name="tiktakto.dsk" size="368640" crc="e6f8ff24" sha1="134e2856a18b401460ca1648fc2efa21df9d157c" offset="0" /> |
| 8793 | </dataarea> |
| 8794 | </part> |
| 8795 | </software> |
| 8796 | |
| 8797 | <software name="tisztala"> |
| 8798 | <description>Tiszta Lappal</description> |
| 8799 | <year>1987</year> |
| 8800 | <publisher>King ec Software</publisher> |
| 8801 | |
| 8802 | <part name="flop1" interface="floppy_5_25"> |
| 8803 | <dataarea name="flop" size="368640"> |
| 8804 | <rom name="tisztalappal.dsk" size="368640" crc="d324e290" sha1="2fd8d2407704f19f26eb0a275605b33c60cec708" offset="0" /> |
| 8805 | </dataarea> |
| 8806 | </part> |
| 8807 | </software> |
| 8808 | |
| 8809 | <software name="toccs"> |
| 8810 | <description>Toccsanó Játék</description> |
| 8811 | <year>198?</year> |
| 8812 | <publisher><unknown></publisher> |
| 8813 | |
| 8814 | <part name="flop1" interface="floppy_5_25"> |
| 8815 | <dataarea name="flop" size="368640"> |
| 8816 | <rom name="toccs.dsk" size="368640" crc="d27f3a97" sha1="0dcf961bc6b94183c5b9090f01b0f305de2859bf" offset="0" /> |
| 8817 | </dataarea> |
| 8818 | </part> |
| 8819 | </software> |
| 8820 | |
| 8821 | <software name="toli"> |
| 8822 | <description>Toli v1.0</description> |
| 8823 | <year>1993</year> |
| 8824 | <publisher>GATO Bt.</publisher> |
| 8825 | |
| 8826 | <part name="flop1" interface="floppy_5_25"> |
| 8827 | <dataarea name="flop" size="368640"> |
| 8828 | <rom name="toli.dsk" size="368640" crc="bdd54b1d" sha1="21f2e91e0e8a648885b17cc16fc2a2d6a620f306" offset="0" /> |
| 8829 | </dataarea> |
| 8830 | </part> |
| 8831 | </software> |
| 8832 | |
| 8833 | <software name="tomjerry"> |
| 8834 | <description>Tom és Jerry</description> |
| 8835 | <year>198?</year> |
| 8836 | <publisher>Gigasoft</publisher> |
| 8837 | |
| 8838 | <part name="flop1" interface="floppy_5_25"> |
| 8839 | <dataarea name="flop" size="368640"> |
| 8840 | <rom name="tomesjerry.dsk" size="368640" crc="71578fb0" sha1="547087457c116c8e292b04c2534f6da660b868d9" offset="0" /> |
| 8841 | </dataarea> |
| 8842 | </part> |
| 8843 | </software> |
| 8844 | |
| 8845 | <software name="tomjerrya" cloneof="tomjerry"> |
| 8846 | <description>Tom és Jerry (Alt)</description> |
| 8847 | <year>198?</year> |
| 8848 | <publisher>Gigasoft</publisher> |
| 8849 | |
| 8850 | <part name="flop1" interface="floppy_5_25"> |
| 8851 | <dataarea name="flop" size="368640"> |
| 8852 | <rom name="tomjv2.dsk" size="368640" crc="6420b05a" sha1="1aaa6fc267ae17ec908740e62a9cd35fb62a63ce" offset="0" /> |
| 8853 | </dataarea> |
| 8854 | </part> |
| 8855 | </software> |
| 8856 | |
| 8857 | <software name="tomjerryb" cloneof="tomjerry"> |
| 8858 | <description>Tom és Jerry (Alt 2)</description> |
| 8859 | <year>198?</year> |
| 8860 | <publisher>Gigasoft</publisher> |
| 8861 | |
| 8862 | <part name="flop1" interface="floppy_5_25"> |
| 8863 | <dataarea name="flop" size="368640"> |
| 8864 | <rom name="tomjv3.dsk" size="368640" crc="f6a22e74" sha1="6031f0e01e0519ea418f8d04f87cc94c40895088" offset="0" /> |
| 8865 | </dataarea> |
| 8866 | </part> |
| 8867 | </software> |
| 8868 | |
| 8869 | <software name="tomjerrycr" cloneof="tomjerry"> |
| 8870 | <description>Tom és Jerry (Cracked)</description> |
| 8871 | <year>198?</year> |
| 8872 | <publisher>Gigasoft</publisher> |
| 8873 | |
| 8874 | <part name="flop1" interface="floppy_5_25"> |
| 8875 | <dataarea name="flop" size="368640"> |
| 8876 | <rom name="tomesjerrykirako.dsk" size="368640" crc="55cda685" sha1="749fb902fd1db24781e416825916e98037f567b3" offset="0" /> |
| 8877 | </dataarea> |
| 8878 | </part> |
| 8879 | </software> |
| 8880 | |
| 8881 | <software name="asmtop"> |
| 8882 | <description>Mnemonic IV Assembler-Monitor - Top</description> |
| 8883 | <year>198?</year> |
| 8884 | <publisher><unknown></publisher> |
| 8885 | |
| 8886 | <part name="flop1" interface="floppy_5_25"> |
| 8887 | <dataarea name="flop" size="368640"> |
| 8888 | <rom name="top.dsk" size="368640" crc="8c5457fe" sha1="376f2b18dfd8feaa8b6787beada9e042ff563f8c" offset="0" /> |
| 8889 | </dataarea> |
| 8890 | </part> |
| 8891 | </software> |
| 8892 | |
| 8893 | <software name="torokind"> |
| 8894 | <description>Török Induló</description> |
| 8895 | <year>198?</year> |
| 8896 | <publisher><unknown></publisher> |
| 8897 | |
| 8898 | <part name="flop1" interface="floppy_5_25"> |
| 8899 | <dataarea name="flop" size="368640"> |
| 8900 | <rom name="torokindulo.dsk" size="368640" crc="dd6552ee" sha1="cb610113cdbc3ed21a8a3356beccc4e6b41aa7ea" offset="0" /> |
| 8901 | </dataarea> |
| 8902 | </part> |
| 8903 | </software> |
| 8904 | |
| 8905 | <software name="torokinda" cloneof="torokind"> |
| 8906 | <description>Török Induló (Alt)</description> |
| 8907 | <year>198?</year> |
| 8908 | <publisher><unknown></publisher> |
| 8909 | |
| 8910 | <part name="flop1" interface="floppy_5_25"> |
| 8911 | <dataarea name="flop" size="368640"> |
| 8912 | <rom name="indulo.dsk" size="368640" crc="fd585fe8" sha1="ff22b93830ee127e5e0f26a86a9857a6c7c7681c" offset="0" /> |
| 8913 | </dataarea> |
| 8914 | </part> |
| 8915 | </software> |
| 8916 | |
| 8917 | <software name="torpe"> |
| 8918 | <description>Törpe</description> |
| 8919 | <year>198?</year> |
| 8920 | <publisher>Béla Takács</publisher> |
| 8921 | |
| 8922 | <part name="flop1" interface="floppy_5_25"> |
| 8923 | <dataarea name="flop" size="368640"> |
| 8924 | <rom name="torpe.dsk" size="368640" crc="4b6f7947" sha1="cec7b174b6f02e068617698c05412efce6b5a120" offset="0" /> |
| 8925 | </dataarea> |
| 8926 | </part> |
| 8927 | </software> |
| 8928 | |
| 8929 | <software name="torpedca"> |
| 8930 | <description>Torpedó (Attila Canjavec)</description> |
| 8931 | <year>1988</year> |
| 8932 | <publisher>Attila Canjavec</publisher> |
| 8933 | |
| 8934 | <part name="flop1" interface="floppy_5_25"> |
| 8935 | <dataarea name="flop" size="368640"> |
| 8936 | <rom name="torpedca.dsk" size="368640" crc="5c7281c0" sha1="5522a450f659dc5ededeef4fce5f065ffb7a2a3e" offset="0" /> |
| 8937 | </dataarea> |
| 8938 | </part> |
| 8939 | </software> |
| 8940 | |
| 8941 | <software name="torpedo"> |
| 8942 | <description>Torpedó</description> |
| 8943 | <year>198?</year> |
| 8944 | <publisher><unknown></publisher> |
| 8945 | |
| 8946 | <part name="flop1" interface="floppy_5_25"> |
| 8947 | <dataarea name="flop" size="368640"> |
| 8948 | <rom name="torpedo.dsk" size="368640" crc="8937fb4e" sha1="95ba7f26ad8bf826fa85b30558eaddbf6307a10c" offset="0" /> |
| 8949 | </dataarea> |
| 8950 | </part> |
| 8951 | </software> |
| 8952 | |
| 8953 | <software name="torpedou"> |
| 8954 | <description>Torpedó (Unisoft)</description> |
| 8955 | <year>1986</year> |
| 8956 | <publisher>Unisoft GMK</publisher> |
| 8957 | |
| 8958 | <part name="flop1" interface="floppy_5_25"> |
| 8959 | <dataarea name="flop" size="368640"> |
| 8960 | <rom name="torpedounisoft.dsk" size="368640" crc="08fda78b" sha1="a7c3fda5feebc137318762d68182c90c6358c783" offset="0" /> |
| 8961 | </dataarea> |
| 8962 | </part> |
| 8963 | </software> |
| 8964 | |
| 8965 | <software name="torpedoua" cloneof="torpedou"> |
| 8966 | <description>Torpedó (Unisoft, Alt)</description> |
| 8967 | <year>1986</year> |
| 8968 | <publisher>Unisoft GMK</publisher> |
| 8969 | |
| 8970 | <part name="flop1" interface="floppy_5_25"> |
| 8971 | <dataarea name="flop" size="368640"> |
| 8972 | <rom name="torpedov2-unisoft.dsk" size="368640" crc="1bf5b8c9" sha1="4f134bd9f6dbecb1585b9dddf272d46d3f8c956a" offset="0" /> |
| 8973 | </dataarea> |
| 8974 | </part> |
| 8975 | </software> |
| 8976 | |
| 8977 | <software name="torpeism"> |
| 8978 | <description>Törpe Ismertető</description> |
| 8979 | <year>198?</year> |
| 8980 | <publisher>Béla Takács</publisher> |
| 8981 | |
| 8982 | <part name="flop1" interface="floppy_5_25"> |
| 8983 | <dataarea name="flop" size="368640"> |
| 8984 | <rom name="torpeism.dsk" size="368640" crc="98cb819d" sha1="cbab778a7153e6c861a0e8f7419f69c8ff87f6b1" offset="0" /> |
| 8985 | </dataarea> |
| 8986 | </part> |
| 8987 | </software> |
| 8988 | |
| 8989 | <software name="toto"> |
| 8990 | <description>Toto - Jatekot Segito Program</description> |
| 8991 | <year>1986</year> |
| 8992 | <publisher>Centrumdata VGMK</publisher> |
| 8993 | |
| 8994 | <part name="flop1" interface="floppy_5_25"> |
| 8995 | <dataarea name="flop" size="368640"> |
| 8996 | <rom name="toto.dsk" size="368640" crc="0ad06fe1" sha1="0cedfc3267b8f925de4e9768788c3d0115c0a928" offset="0" /> |
| 8997 | </dataarea> |
| 8998 | </part> |
| 8999 | </software> |
| 9000 | |
| 9001 | <software name="tower"> |
| 9002 | <description>Tower</description> |
| 9003 | <year>198?</year> |
| 9004 | <publisher>Berysoft</publisher> |
| 9005 | |
| 9006 | <part name="flop1" interface="floppy_5_25"> |
| 9007 | <dataarea name="flop" size="368640"> |
| 9008 | <rom name="tower.dsk" size="368640" crc="f2149783" sha1="a2202d2606632d690799d1f6a97e47342a26c455" offset="0" /> |
| 9009 | </dataarea> |
| 9010 | </part> |
| 9011 | </software> |
| 9012 | |
| 9013 | <software name="towera" cloneof="tower"> |
| 9014 | <description>Tower (Alt)</description> |
| 9015 | <year>198?</year> |
| 9016 | <publisher>Berysoft</publisher> |
| 9017 | |
| 9018 | <part name="flop1" interface="floppy_5_25"> |
| 9019 | <dataarea name="flop" size="368640"> |
| 9020 | <rom name="towerv2.dsk" size="368640" crc="18359cd6" sha1="ed72607b17c01b3f594d0362b1ef1e3b8f5483e7" offset="0" /> |
| 9021 | </dataarea> |
| 9022 | </part> |
| 9023 | </software> |
| 9024 | |
| 9025 | <software name="trafosz"> |
| 9026 | <description>Transzformátor Méretezés</description> |
| 9027 | <year>198?</year> |
| 9028 | <publisher>H&M</publisher> |
| 9029 | |
| 9030 | <part name="flop1" interface="floppy_5_25"> |
| 9031 | <dataarea name="flop" size="368640"> |
| 9032 | <rom name="trafosz.dsk" size="368640" crc="e191be73" sha1="1d93e8ec9a2260ed4afb82871aa48b0e561dd6e1" offset="0" /> |
| 9033 | </dataarea> |
| 9034 | </part> |
| 9035 | </software> |
| 9036 | |
| 9037 | <software name="trailer"> |
| 9038 | <description>Trailer</description> |
| 9039 | <year>198?</year> |
| 9040 | <publisher><unknown></publisher> |
| 9041 | |
| 9042 | <part name="flop1" interface="floppy_5_25"> |
| 9043 | <dataarea name="flop" size="368640"> |
| 9044 | <rom name="trailer.dsk" size="368640" crc="a234a673" sha1="b7237199286056feb1e4b14441662841714eea18" offset="0" /> |
| 9045 | </dataarea> |
| 9046 | </part> |
| 9047 | </software> |
| 9048 | |
| 9049 | <software name="transver"> |
| 9050 | <description>Transversion</description> |
| 9051 | <year>198?</year> |
| 9052 | <publisher>TVCM</publisher> |
| 9053 | |
| 9054 | <part name="flop1" interface="floppy_5_25"> |
| 9055 | <dataarea name="flop" size="368640"> |
| 9056 | <rom name="transversion.dsk" size="368640" crc="a3ebbb91" sha1="b08b53664a4510cd5967cef25ae0275a29c3f31e" offset="0" /> |
| 9057 | </dataarea> |
| 9058 | </part> |
| 9059 | </software> |
| 9060 | |
| 9061 | <software name="transvert" cloneof="transver"> |
| 9062 | <description>Transversion (Trainer)</description> |
| 9063 | <year>198?</year> |
| 9064 | <publisher>TVCM</publisher> |
| 9065 | |
| 9066 | <part name="flop1" interface="floppy_5_25"> |
| 9067 | <dataarea name="flop" size="368640"> |
| 9068 | <rom name="transvt.dsk" size="368640" crc="f0b46063" sha1="3300d9cb3f2526a3e8c3967774a0fe0da679f322" offset="0" /> |
| 9069 | </dataarea> |
| 9070 | </part> |
| 9071 | </software> |
| 9072 | |
| 9073 | <software name="treasure"> |
| 9074 | <description>Treasure-Hunting</description> |
| 9075 | <year>1988</year> |
| 9076 | <publisher>Béla Szalontai</publisher> |
| 9077 | |
| 9078 | <part name="flop1" interface="floppy_5_25"> |
| 9079 | <dataarea name="flop" size="368640"> |
| 9080 | <rom name="treasurehunting.dsk" size="368640" crc="448cc296" sha1="5015c880b0de0c6782f8e83ef91aca746a553ed2" offset="0" /> |
| 9081 | </dataarea> |
| 9082 | </part> |
| 9083 | </software> |
| 9084 | |
| 9085 | <software name="startreka" cloneof="startrek"> |
| 9086 | <description>Star Trek (Alt, Newer?)</description> |
| 9087 | <year>1987</year> |
| 9088 | <publisher><unknown></publisher> |
| 9089 | |
| 9090 | <part name="flop1" interface="floppy_5_25"> |
| 9091 | <dataarea name="flop" size="368640"> |
| 9092 | <rom name="trekk.dsk" size="368640" crc="5cd60714" sha1="6ecf5852ae3994ce07243bdb08dd932421d5d569" offset="0" /> |
| 9093 | </dataarea> |
| 9094 | </part> |
| 9095 | </software> |
| 9096 | |
| 9097 | <software name="tunnel"> |
| 9098 | <description>Tunnel</description> |
| 9099 | <year>198?</year> |
| 9100 | <publisher>Ubisoft</publisher> |
| 9101 | |
| 9102 | <part name="flop1" interface="floppy_5_25"> |
| 9103 | <dataarea name="flop" size="368640"> |
| 9104 | <rom name="tunnel.dsk" size="368640" crc="f28f9a67" sha1="d715d799f159e910930ac6af007d77048bb5c72a" offset="0" /> |
| 9105 | </dataarea> |
| 9106 | </part> |
| 9107 | </software> |
| 9108 | |
| 9109 | <software name="turboesp"> |
| 9110 | <description>Turbo Esprit</description> |
| 9111 | <year>198?</year> |
| 9112 | <publisher>Zsolt Szigeti</publisher> |
| 9113 | |
| 9114 | <part name="flop1" interface="floppy_5_25"> |
| 9115 | <dataarea name="flop" size="368640"> |
| 9116 | <rom name="turboespirit.dsk" size="368640" crc="91f91928" sha1="9770435e56dd6e3f27ac65d7e8b35c90eeea7077" offset="0" /> |
| 9117 | </dataarea> |
| 9118 | </part> |
| 9119 | </software> |
| 9120 | |
| 9121 | <software name="turbojac"> |
| 9122 | <description>Turbo Jack</description> |
| 9123 | <year>1991</year> |
| 9124 | <publisher>STV</publisher> |
| 9125 | |
| 9126 | <part name="flop1" interface="floppy_5_25"> |
| 9127 | <dataarea name="flop" size="368640"> |
| 9128 | <rom name="turbojack.dsk" size="368640" crc="09233b23" sha1="72229e0c9a68a323344f7f1be495836f3501ee65" offset="0" /> |
| 9129 | </dataarea> |
| 9130 | </part> |
| 9131 | </software> |
| 9132 | |
| 9133 | <software name="turborud"> |
| 9134 | <description>Turbó Rudi</description> |
| 9135 | <year>1987</year> |
| 9136 | <publisher>'a' Studio</publisher> |
| 9137 | |
| 9138 | <part name="flop1" interface="floppy_5_25"> |
| 9139 | <dataarea name="flop" size="368640"> |
| 9140 | <rom name="turborudi.dsk" size="368640" crc="9f82bd37" sha1="794ec13d8e1d932c349a8f7bd4e4e39806ef90b9" offset="0" /> |
| 9141 | </dataarea> |
| 9142 | </part> |
| 9143 | </software> |
| 9144 | |
| 9145 | <software name="turboruda" cloneof="turborud"> |
| 9146 | <description>Turbó Rudi (Alt)</description> |
| 9147 | <year>1987</year> |
| 9148 | <publisher>'a' Studio</publisher> |
| 9149 | |
| 9150 | <part name="flop1" interface="floppy_5_25"> |
| 9151 | <dataarea name="flop" size="368640"> |
| 9152 | <rom name="turborudiv2.dsk" size="368640" crc="cab7764e" sha1="b6b95d69cec766dcc06b50d4ed660b425d7f0f1d" offset="0" /> |
| 9153 | </dataarea> |
| 9154 | </part> |
| 9155 | </software> |
| 9156 | |
| 9157 | <software name="tvball"> |
| 9158 | <description>TV Ball</description> |
| 9159 | <year>1988</year> |
| 9160 | <publisher>'a' Studio</publisher> |
| 9161 | |
| 9162 | <part name="flop1" interface="floppy_5_25"> |
| 9163 | <dataarea name="flop" size="368640"> |
| 9164 | <rom name="tvball.dsk" size="368640" crc="001ec8ed" sha1="e980c49a36a6a7a0b595089f2f2de3746389ab93" offset="0" /> |
| 9165 | </dataarea> |
| 9166 | </part> |
| 9167 | </software> |
| 9168 | |
| 9169 | <software name="tvballa" cloneof="tvball"> |
| 9170 | <description>TV Ball (Alt)</description> |
| 9171 | <year>1988</year> |
| 9172 | <publisher>'a' Studio</publisher> |
| 9173 | |
| 9174 | <part name="flop1" interface="floppy_5_25"> |
| 9175 | <dataarea name="flop" size="368640"> |
| 9176 | <rom name="tvballv2.dsk" size="368640" crc="5e7ee724" sha1="2287090afc93699392d8c6806027a7504e62cd01" offset="0" /> |
| 9177 | </dataarea> |
| 9178 | </part> |
| 9179 | </software> |
| 9180 | |
| 9181 | <software name="tvc-ass"> |
| 9182 | <description>TVC-Assembler v1.0</description> |
| 9183 | <year>198?</year> |
| 9184 | <publisher><unknown></publisher> |
| 9185 | |
| 9186 | <part name="flop1" interface="floppy_5_25"> |
| 9187 | <dataarea name="flop" size="368640"> |
| 9188 | <rom name="tvc-ass.dsk" size="368640" crc="3b1df259" sha1="901fe8a140182f293c31a70aec0658fb1a6fd14c" offset="0" /> |
| 9189 | </dataarea> |
| 9190 | </part> |
| 9191 | </software> |
| 9192 | |
| 9193 | <software name="tvclist2"> |
| 9194 | <description>TVC Program Lista 2</description> |
| 9195 | <year>198?</year> |
| 9196 | <publisher>Molmix</publisher> |
| 9197 | |
| 9198 | <part name="flop1" interface="floppy_5_25"> |
| 9199 | <dataarea name="flop" size="368640"> |
| 9200 | <rom name="tvc-list.dsk" size="368640" crc="bab36ccb" sha1="be1c7bcc813afd88e75d448716dfdb30ab1dd729" offset="0" /> |
| 9201 | </dataarea> |
| 9202 | </part> |
| 9203 | </software> |
| 9204 | |
| 9205 | <software name="tvc123"> |
| 9206 | <description>TVC123 - Táblázatkezelő</description> |
| 9207 | <year>1989</year> |
| 9208 | <publisher>Sandor Vekony</publisher> |
| 9209 | |
| 9210 | <part name="flop1" interface="floppy_5_25"> |
| 9211 | <dataarea name="flop" size="368640"> |
| 9212 | <rom name="tvc123.dsk" size="368640" crc="1fefacde" sha1="f80aac12c4186be76727e1c66207f5c9deba7610" offset="0" /> |
| 9213 | </dataarea> |
| 9214 | </part> |
| 9215 | </software> |
| 9216 | |
| 9217 | <software name="tvcass14a" cloneof="tvcass14"> |
| 9218 | <description>TVC-Assembler v1.4 (Alt)</description> |
| 9219 | <year>198?</year> |
| 9220 | <publisher><unknown></publisher> |
| 9221 | |
| 9222 | <part name="flop1" interface="floppy_5_25"> |
| 9223 | <dataarea name="flop" size="368640"> |
| 9224 | <rom name="tvca14v2.dsk" size="368640" crc="9a1b3c97" sha1="4d311460cf834a997cd847f3fc9d5f5eb3216066" offset="0" /> |
| 9225 | </dataarea> |
| 9226 | </part> |
| 9227 | </software> |
| 9228 | |
| 9229 | <software name="tvcass11"> |
| 9230 | <description>TVC-Assembler v1.1</description> |
| 9231 | <year>198?</year> |
| 9232 | <publisher><unknown></publisher> |
| 9233 | |
| 9234 | <part name="flop1" interface="floppy_5_25"> |
| 9235 | <dataarea name="flop" size="368640"> |
| 9236 | <rom name="tvcass11.dsk" size="368640" crc="a8a180e0" sha1="1b355bae76d12ad03514ec2ed6f3a8c88deb7016" offset="0" /> |
| 9237 | </dataarea> |
| 9238 | </part> |
| 9239 | </software> |
| 9240 | |
| 9241 | <software name="tvcass14"> |
| 9242 | <description>TVC-Assembler v1.4</description> |
| 9243 | <year>198?</year> |
| 9244 | <publisher><unknown></publisher> |
| 9245 | |
| 9246 | <part name="flop1" interface="floppy_5_25"> |
| 9247 | <dataarea name="flop" size="368640"> |
| 9248 | <rom name="tvcass14.dsk" size="368640" crc="37a1935c" sha1="9056bdc5cb604b8c84466472191673fe2f96326f" offset="0" /> |
| 9249 | </dataarea> |
| 9250 | </part> |
| 9251 | </software> |
| 9252 | |
| 9253 | <software name="tvccopy"> |
| 9254 | <description>TV-Computer Copy</description> |
| 9255 | <year>1986</year> |
| 9256 | <publisher>Géza Garai</publisher> |
| 9257 | |
| 9258 | <part name="flop1" interface="floppy_5_25"> |
| 9259 | <dataarea name="flop" size="368640"> |
| 9260 | <rom name="tvccopy.dsk" size="368640" crc="67cdd689" sha1="3dd2f80aeeefcf15aac338504b09d5044dff6864" offset="0" /> |
| 9261 | </dataarea> |
| 9262 | </part> |
| 9263 | </software> |
| 9264 | |
| 9265 | <software name="tvcedi"> |
| 9266 | <description>TVC-EDI</description> |
| 9267 | <year>1987</year> |
| 9268 | <publisher>IHS GMK</publisher> |
| 9269 | |
| 9270 | <part name="flop1" interface="floppy_5_25"> |
| 9271 | <dataarea name="flop" size="368640"> |
| 9272 | <rom name="tvcedi.dsk" size="368640" crc="e4a8f717" sha1="c0501c8a9170451cf29270045cca4cb9151ab369" offset="0" /> |
| 9273 | </dataarea> |
| 9274 | </part> |
| 9275 | </software> |
| 9276 | |
| 9277 | <software name="tvceprom"> |
| 9278 | <description>TVC-EPROM Programming System</description> |
| 9279 | <year>198?</year> |
| 9280 | <publisher><unknown></publisher> |
| 9281 | |
| 9282 | <part name="flop1" interface="floppy_5_25"> |
| 9283 | <dataarea name="flop" size="368640"> |
| 9284 | <rom name="tvceprom.dsk" size="368640" crc="017ceadc" sha1="aac34f47612eb61cf572bdbaad63a2417d9cdec6" offset="0" /> |
| 9285 | </dataarea> |
| 9286 | </part> |
| 9287 | </software> |
| 9288 | |
| 9289 | <software name="tvclista"> |
| 9290 | <description>TVC Programlista</description> |
| 9291 | <year>198?</year> |
| 9292 | <publisher>Erno Kiraly</publisher> |
| 9293 | |
| 9294 | <part name="flop1" interface="floppy_5_25"> |
| 9295 | <dataarea name="flop" size="368640"> |
| 9296 | <rom name="tvclista.dsk" size="368640" crc="e588904b" sha1="3dc67f6e192360520deb75d080b65853872e8818" offset="0" /> |
| 9297 | </dataarea> |
| 9298 | </part> |
| 9299 | </software> |
| 9300 | |
| 9301 | <software name="tvpoker"> |
| 9302 | <description>TV-Póker (Blacksoft)</description> |
| 9303 | <year>1987</year> |
| 9304 | <publisher>Blacksoft</publisher> |
| 9305 | |
| 9306 | <part name="flop1" interface="floppy_5_25"> |
| 9307 | <dataarea name="flop" size="368640"> |
| 9308 | <rom name="tvpoker.dsk" size="368640" crc="4de78e7d" sha1="55aa5fb7294908049cfda3659a52364239001c8b" offset="0" /> |
| 9309 | </dataarea> |
| 9310 | </part> |
| 9311 | </software> |
| 9312 | |
| 9313 | <software name="tvpokern"> |
| 9314 | <description>TV-Póker (Novotrade)</description> |
| 9315 | <year>198?</year> |
| 9316 | <publisher>Novotrade</publisher> |
| 9317 | |
| 9318 | <part name="flop1" interface="floppy_5_25"> |
| 9319 | <dataarea name="flop" size="368640"> |
| 9320 | <rom name="tvpokern.dsk" size="368640" crc="3b8700ae" sha1="7e2538d345febda9e42346453d8c55e76976a8f8" offset="0" /> |
| 9321 | </dataarea> |
| 9322 | </part> |
| 9323 | </software> |
| 9324 | |
| 9325 | <software name="tvpokerna" cloneof="tvpokern"> |
| 9326 | <description>TV-Póker (Novotrade, Alt)</description> |
| 9327 | <year>198?</year> |
| 9328 | <publisher>Novotrade</publisher> |
| 9329 | |
| 9330 | <part name="flop1" interface="floppy_5_25"> |
| 9331 | <dataarea name="flop" size="368640"> |
| 9332 | <rom name="tvpokernv2.dsk" size="368640" crc="6cfc9463" sha1="bca56290ab4b6e5a5687355646dcacee31440072" offset="0" /> |
| 9333 | </dataarea> |
| 9334 | </part> |
| 9335 | </software> |
| 9336 | |
| 9337 | <software name="tvstack"> |
| 9338 | <description>TV Stack (Cracked by Nameless)</description> |
| 9339 | <year>1987</year> |
| 9340 | <publisher>'a' Studio</publisher> |
| 9341 | |
| 9342 | <part name="flop1" interface="floppy_5_25"> |
| 9343 | <dataarea name="flop" size="368640"> |
| 9344 | <rom name="tvstack.dsk" size="368640" crc="d2006117" sha1="82494a6b19a72910c84375e644d3823a59cce461" offset="0" /> |
| 9345 | </dataarea> |
| 9346 | </part> |
| 9347 | </software> |
| 9348 | |
| 9349 | <software name="tvtenisz"> |
| 9350 | <description>TV-Tenisz</description> |
| 9351 | <year>1987</year> |
| 9352 | <publisher>Zsolt Dobrovics</publisher> |
| 9353 | |
| 9354 | <part name="flop1" interface="floppy_5_25"> |
| 9355 | <dataarea name="flop" size="368640"> |
| 9356 | <rom name="tvtenisz.dsk" size="368640" crc="7dad8871" sha1="cd119a8a42c6540f25e09c3edf8908e7317c5497" offset="0" /> |
| 9357 | </dataarea> |
| 9358 | </part> |
| 9359 | </software> |
| 9360 | |
| 9361 | <software name="ubulball"> |
| 9362 | <description>Ubul's Ball</description> |
| 9363 | <year>1988</year> |
| 9364 | <publisher>Ubisoft</publisher> |
| 9365 | |
| 9366 | <part name="flop1" interface="floppy_5_25"> |
| 9367 | <dataarea name="flop" size="368640"> |
| 9368 | <rom name="ubulball.dsk" size="368640" crc="7e623a14" sha1="d126268421de09d732c46465e3ac5e4a94e5d255" offset="0" /> |
| 9369 | </dataarea> |
| 9370 | </part> |
| 9371 | </software> |
| 9372 | |
| 9373 | <software name="ubulesap"> |
| 9374 | <description>Ubul és a Pince</description> |
| 9375 | <year>198?</year> |
| 9376 | <publisher><unknown></publisher> |
| 9377 | |
| 9378 | <part name="flop1" interface="floppy_5_25"> |
| 9379 | <dataarea name="flop" size="368640"> |
| 9380 | <rom name="ubulesapince.dsk" size="368640" crc="2c6e0f33" sha1="b8af10b369afb3945ba74c995124afbef27bd3e4" offset="0" /> |
| 9381 | </dataarea> |
| 9382 | </part> |
| 9383 | </software> |
| 9384 | |
| 9385 | <software name="ufo"> |
| 9386 | <description>UFO</description> |
| 9387 | <year>1985</year> |
| 9388 | <publisher>STV</publisher> |
| 9389 | |
| 9390 | <part name="flop1" interface="floppy_5_25"> |
| 9391 | <dataarea name="flop" size="368640"> |
| 9392 | <rom name="ufo.dsk" size="368640" crc="ca12d576" sha1="ae395bd32727b4365e7a19b4f48d08f334c2fbd7" offset="0" /> |
| 9393 | </dataarea> |
| 9394 | </part> |
| 9395 | </software> |
| 9396 | |
| 9397 | <software name="ufoka"> |
| 9398 | <description>Ufóka</description> |
| 9399 | <year>198?</year> |
| 9400 | <publisher>József Kovács</publisher> |
| 9401 | |
| 9402 | <part name="flop1" interface="floppy_5_25"> |
| 9403 | <dataarea name="flop" size="368640"> |
| 9404 | <rom name="ufoka.dsk" size="368640" crc="b55da4dc" sha1="0b333771e1c91ccbadd7720c0320b46a796b9b9f" offset="0" /> |
| 9405 | </dataarea> |
| 9406 | </part> |
| 9407 | </software> |
| 9408 | |
| 9409 | <software name="ujawari"> |
| 9410 | <description>Új Awari</description> |
| 9411 | <year>198?</year> |
| 9412 | <publisher><unknown></publisher> |
| 9413 | |
| 9414 | <part name="flop1" interface="floppy_5_25"> |
| 9415 | <dataarea name="flop" size="368640"> |
| 9416 | <rom name="ujawari.dsk" size="368640" crc="7bb7d686" sha1="b5785a4e153c4207392211d33c924ffe40bfbcfd" offset="0" /> |
| 9417 | </dataarea> |
| 9418 | </part> |
| 9419 | </software> |
| 9420 | |
| 9421 | <software name="unicopy"> |
| 9422 | <description>UniCopy</description> |
| 9423 | <year>1987</year> |
| 9424 | <publisher>Zsolt Szigyártó</publisher> |
| 9425 | |
| 9426 | <part name="flop1" interface="floppy_5_25"> |
| 9427 | <dataarea name="flop" size="368640"> |
| 9428 | <rom name="unicopy.dsk" size="368640" crc="54dade63" sha1="e331f2309fe74c9b36b599d50c8c5af602d8c723" offset="0" /> |
| 9429 | </dataarea> |
| 9430 | </part> |
| 9431 | </software> |
| 9432 | |
| 9433 | <software name="unicum"> |
| 9434 | <description>Unicum</description> |
| 9435 | <year>1988</year> |
| 9436 | <publisher>Red-Green-Blue Software - Compi System</publisher> |
| 9437 | |
| 9438 | <part name="flop1" interface="floppy_5_25"> |
| 9439 | <dataarea name="flop" size="368640"> |
| 9440 | <rom name="unicum.dsk" size="368640" crc="64f23f36" sha1="3f844b6bc710559faed0fa2c0256c316d6b92927" offset="0" /> |
| 9441 | </dataarea> |
| 9442 | </part> |
| 9443 | </software> |
| 9444 | |
| 9445 | <software name="unicuma" cloneof="unicum"> |
| 9446 | <description>Unicum (Alt)</description> |
| 9447 | <year>1988</year> |
| 9448 | <publisher>Red-Green-Blue Software - Compi System</publisher> |
| 9449 | |
| 9450 | <part name="flop1" interface="floppy_5_25"> |
| 9451 | <dataarea name="flop" size="368640"> |
| 9452 | <rom name="unicumv2.dsk" size="368640" crc="cca3fa09" sha1="e14c1591709f21929d676c74aaa42cfa4da0c24d" offset="0" /> |
| 9453 | </dataarea> |
| 9454 | </part> |
| 9455 | </software> |
| 9456 | |
| 9457 | <software name="unicumb" cloneof="unicum"> |
| 9458 | <description>Unicum (Alt 2)</description> |
| 9459 | <year>1988</year> |
| 9460 | <publisher>Red-Green-Blue Software - Compi System</publisher> |
| 9461 | |
| 9462 | <part name="flop1" interface="floppy_5_25"> |
| 9463 | <dataarea name="flop" size="368640"> |
| 9464 | <rom name="unicumv3.dsk" size="368640" crc="c9e7495f" sha1="5db1719c51a1b6fa4f9284b85d89ed20d211d5a5" offset="0" /> |
| 9465 | </dataarea> |
| 9466 | </part> |
| 9467 | </software> |
| 9468 | |
| 9469 | <software name="unifel"> |
| 9470 | <description>Univerzális Feleltető Program</description> |
| 9471 | <year>198?</year> |
| 9472 | <publisher><unknown></publisher> |
| 9473 | |
| 9474 | <part name="flop1" interface="floppy_5_25"> |
| 9475 | <dataarea name="flop" size="368640"> |
| 9476 | <rom name="unifel.dsk" size="368640" crc="f8044dff" sha1="d4afb644e5201377a720438b7e0257b25bc73ef5" offset="0" /> |
| 9477 | </dataarea> |
| 9478 | </part> |
| 9479 | </software> |
| 9480 | |
| 9481 | <software name="unigraph"> |
| 9482 | <description>Unigraph v1.0</description> |
| 9483 | <year>198?</year> |
| 9484 | <publisher>Béla Csatlós</publisher> |
| 9485 | |
| 9486 | <part name="flop1" interface="floppy_5_25"> |
| 9487 | <dataarea name="flop" size="368640"> |
| 9488 | <rom name="unigraph10.dsk" size="368640" crc="58e37171" sha1="76d87bdce94e546d9cd9a23aaa4016a58b212f9f" offset="0" /> |
| 9489 | </dataarea> |
| 9490 | </part> |
| 9491 | </software> |
| 9492 | |
| 9493 | <software name="urhaszim"> |
| 9494 | <description>Űrhajó Szimulátor</description> |
| 9495 | <year>198?</year> |
| 9496 | <publisher>Vincze Szoftver</publisher> |
| 9497 | |
| 9498 | <part name="flop1" interface="floppy_5_25"> |
| 9499 | <dataarea name="flop" size="368640"> |
| 9500 | <rom name="urhaszim.dsk" size="368640" crc="4add71d9" sha1="c62962afde4015b640cacd99a26f115561072f6b" offset="0" /> |
| 9501 | </dataarea> |
| 9502 | </part> |
| 9503 | </software> |
| 9504 | |
| 9505 | <software name="urjatek"> |
| 9506 | <description>Űrjáték</description> |
| 9507 | <year>198?</year> |
| 9508 | <publisher><unknown></publisher> |
| 9509 | |
| 9510 | <part name="flop1" interface="floppy_5_25"> |
| 9511 | <dataarea name="flop" size="368640"> |
| 9512 | <rom name="urjatek.dsk" size="368640" crc="985ab1e4" sha1="d0370572c78a15bb895d5e7ecb9fcd33b89b9808" offset="0" /> |
| 9513 | </dataarea> |
| 9514 | </part> |
| 9515 | </software> |
| 9516 | |
| 9517 | <software name="ursiklo"> |
| 9518 | <description>Űrsikló</description> |
| 9519 | <year>198?</year> |
| 9520 | <publisher>Software in LUX</publisher> |
| 9521 | |
| 9522 | <part name="flop1" interface="floppy_5_25"> |
| 9523 | <dataarea name="flop" size="368640"> |
| 9524 | <rom name="ursiklo.dsk" size="368640" crc="69addc69" sha1="0f926f9e8bfb0be83857880d1eda44bf35ea0d05" offset="0" /> |
| 9525 | </dataarea> |
| 9526 | </part> |
| 9527 | </software> |
| 9528 | |
| 9529 | <software name="utsebido"> |
| 9530 | <description>Út-sebesség-idő Grafikon</description> |
| 9531 | <year>198?</year> |
| 9532 | <publisher><unknown></publisher> |
| 9533 | |
| 9534 | <part name="flop1" interface="floppy_5_25"> |
| 9535 | <dataarea name="flop" size="368640"> |
| 9536 | <rom name="utsebido.dsk" size="368640" crc="1070ac1b" sha1="cb848a1f90fa3c738aae8c24588871ad1d9e4253" offset="0" /> |
| 9537 | </dataarea> |
| 9538 | </part> |
| 9539 | </software> |
| 9540 | |
| 9541 | <software name="vadasz"> |
| 9542 | <description>Vadász</description> |
| 9543 | <year>1987</year> |
| 9544 | <publisher>Csaba Kiss</publisher> |
| 9545 | |
| 9546 | <part name="flop1" interface="floppy_5_25"> |
| 9547 | <dataarea name="flop" size="368640"> |
| 9548 | <rom name="vadasz.dsk" size="368640" crc="321ce23f" sha1="a21122aac402f82aaa757aa6493124f7712ba337" offset="0" /> |
| 9549 | </dataarea> |
| 9550 | </part> |
| 9551 | </software> |
| 9552 | |
| 9553 | <software name="vadnyuga"> |
| 9554 | <description>Vadnyugat</description> |
| 9555 | <year>1987</year> |
| 9556 | <publisher>Szabolcs Pőcze</publisher> |
| 9557 | |
| 9558 | <part name="flop1" interface="floppy_5_25"> |
| 9559 | <dataarea name="flop" size="368640"> |
| 9560 | <rom name="vadnyugat.dsk" size="368640" crc="e9297c4c" sha1="4243e0210df7361c72abf61fd6ca11b1d6ff0125" offset="0" /> |
| 9561 | </dataarea> |
| 9562 | </part> |
| 9563 | </software> |
| 9564 | |
| 9565 | <software name="varak"> |
| 9566 | <description>Várak</description> |
| 9567 | <year>198?</year> |
| 9568 | <publisher>Zoltan Halasz</publisher> |
| 9569 | |
| 9570 | <part name="flop1" interface="floppy_5_25"> |
| 9571 | <dataarea name="flop" size="368640"> |
| 9572 | <rom name="varakv1.dsk" size="368640" crc="f0923f84" sha1="e81a3cfb0737a34c7b8519280ac2717dfc3f1121" offset="0" /> |
| 9573 | </dataarea> |
| 9574 | </part> |
| 9575 | </software> |
| 9576 | |
| 9577 | <software name="varaka" cloneof="varak"> |
| 9578 | <description>Várak (Alt)</description> |
| 9579 | <year>198?</year> |
| 9580 | <publisher>Zoltan Halasz</publisher> |
| 9581 | |
| 9582 | <part name="flop1" interface="floppy_5_25"> |
| 9583 | <dataarea name="flop" size="368640"> |
| 9584 | <rom name="varakv2.dsk" size="368640" crc="10b3ad2c" sha1="ac0832ccc85d7f62bc771736cb60145a47ddc368" offset="0" /> |
| 9585 | </dataarea> |
| 9586 | </part> |
| 9587 | </software> |
| 9588 | |
| 9589 | <software name="varazsec"> |
| 9590 | <description>Varázsecset</description> |
| 9591 | <year>1988</year> |
| 9592 | <publisher>Novotrade</publisher> |
| 9593 | |
| 9594 | <part name="flop1" interface="floppy_5_25"> |
| 9595 | <dataarea name="flop" size="368640"> |
| 9596 | <rom name="varazsecset.dsk" size="368640" crc="2deb2a16" sha1="64df2ad5180f4339d63eee2c3f40e653152ef491" offset="0" /> |
| 9597 | </dataarea> |
| 9598 | </part> |
| 9599 | </software> |
| 9600 | |
| 9601 | <software name="varazseca" cloneof="varazsec"> |
| 9602 | <description>Varázsecset (Alt)</description> |
| 9603 | <year>1988</year> |
| 9604 | <publisher>Novotrade</publisher> |
| 9605 | |
| 9606 | <part name="flop1" interface="floppy_5_25"> |
| 9607 | <dataarea name="flop" size="368640"> |
| 9608 | <rom name="varazsecsetv2.dsk" size="368640" crc="544bf2a5" sha1="44735a8b4c8b02a0abfdb2349e73911c20c24c9f" offset="0" /> |
| 9609 | </dataarea> |
| 9610 | </part> |
| 9611 | </software> |
| 9612 | |
| 9613 | <software name="varazsecb" cloneof="varazsec"> |
| 9614 | <description>Varázsecset (Alt 2)</description> |
| 9615 | <year>1988</year> |
| 9616 | <publisher>Novotrade</publisher> |
| 9617 | |
| 9618 | <part name="flop1" interface="floppy_5_25"> |
| 9619 | <dataarea name="flop" size="368640"> |
| 9620 | <rom name="varazsecsetv3.dsk" size="368640" crc="fe102ffb" sha1="41e48300c43dbdd2eff90daa0cf9acc0ff77fec4" offset="0" /> |
| 9621 | </dataarea> |
| 9622 | </part> |
| 9623 | </software> |
| 9624 | |
| 9625 | <software name="varazsgo"> |
| 9626 | <description>Varázsgömb</description> |
| 9627 | <year>198?</year> |
| 9628 | <publisher>Berysoft</publisher> |
| 9629 | |
| 9630 | <part name="flop1" interface="floppy_5_25"> |
| 9631 | <dataarea name="flop" size="368640"> |
| 9632 | <rom name="varazsgomb.dsk" size="368640" crc="2c2259c5" sha1="e932ccfa7cca80dd7b37601b42f0207457017684" offset="0" /> |
| 9633 | </dataarea> |
| 9634 | </part> |
| 9635 | </software> |
| 9636 | |
| 9637 | <software name="varos"> |
| 9638 | <description>Város</description> |
| 9639 | <year>1986</year> |
| 9640 | <publisher>Ferenc Dobai</publisher> |
| 9641 | |
| 9642 | <part name="flop1" interface="floppy_5_25"> |
| 9643 | <dataarea name="flop" size="368640"> |
| 9644 | <rom name="varos.dsk" size="368640" crc="a96bb898" sha1="ec7786e36e4db9d235c109fa3e7912884ac36654" offset="0" /> |
| 9645 | </dataarea> |
| 9646 | </part> |
| 9647 | </software> |
| 9648 | |
| 9649 | <software name="vasarely"> |
| 9650 | <description>Vasarely</description> |
| 9651 | <year>198?</year> |
| 9652 | <publisher><unknown></publisher> |
| 9653 | |
| 9654 | <part name="flop1" interface="floppy_5_25"> |
| 9655 | <dataarea name="flop" size="368640"> |
| 9656 | <rom name="vasarely.dsk" size="368640" crc="4634111d" sha1="011be5aa91f03629e8dfac12bdf48e21f4ee320c" offset="0" /> |
| 9657 | </dataarea> |
| 9658 | </part> |
| 9659 | </software> |
| 9660 | |
| 9661 | <software name="vaterlo"> |
| 9662 | <description>Vaterlo</description> |
| 9663 | <year>198?</year> |
| 9664 | <publisher><unknown></publisher> |
| 9665 | |
| 9666 | <part name="flop1" interface="floppy_5_25"> |
| 9667 | <dataarea name="flop" size="368640"> |
| 9668 | <rom name="vaterlo.dsk" size="368640" crc="5d5b8f09" sha1="ff75a501e65ac6b22eeec9467a387e32fdd04296" offset="0" /> |
| 9669 | </dataarea> |
| 9670 | </part> |
| 9671 | </software> |
| 9672 | |
| 9673 | <software name="vektorgf"> |
| 9674 | <description>Perspektívikus Real-Time Vektor</description> |
| 9675 | <year>198?</year> |
| 9676 | <publisher>Peter Rakos</publisher> |
| 9677 | |
| 9678 | <part name="flop1" interface="floppy_5_25"> |
| 9679 | <dataarea name="flop" size="368640"> |
| 9680 | <rom name="vektorgf.dsk" size="368640" crc="39ca7a01" sha1="fea8951fd29e9999d8c9889d9f0abe72975cb6f0" offset="0" /> |
| 9681 | </dataarea> |
| 9682 | </part> |
| 9683 | </software> |
| 9684 | |
| 9685 | <software name="vezetes"> |
| 9686 | <description>Vezetés</description> |
| 9687 | <year>1987</year> |
| 9688 | <publisher>King ec Software</publisher> |
| 9689 | |
| 9690 | <part name="flop1" interface="floppy_5_25"> |
| 9691 | <dataarea name="flop" size="368640"> |
| 9692 | <rom name="vezetes.dsk" size="368640" crc="331fda0a" sha1="607aabb21294b081c896fcc04d40ffedd5029993" offset="0" /> |
| 9693 | </dataarea> |
| 9694 | </part> |
| 9695 | </software> |
| 9696 | |
| 9697 | <software name="vidas64"> |
| 9698 | <description>VIDAS - TVC Assembler</description> |
| 9699 | <year>1986</year> |
| 9700 | <publisher>Tamas Bakos - Tibor Bereznai</publisher> |
| 9701 | |
| 9702 | <part name="flop1" interface="floppy_5_25"> |
| 9703 | <dataarea name="flop" size="368640"> |
| 9704 | <rom name="vidas64.dsk" size="368640" crc="6ade85c1" sha1="848e4f0b5ccd8a7636cc0ead085a95c83faf2699" offset="0" /> |
| 9705 | </dataarea> |
| 9706 | </part> |
| 9707 | </software> |
| 9708 | |
| 9709 | <software name="videoton"> |
| 9710 | <description>Videoton</description> |
| 9711 | <year>198?</year> |
| 9712 | <publisher>Videoton</publisher> |
| 9713 | |
| 9714 | <part name="flop1" interface="floppy_5_25"> |
| 9715 | <dataarea name="flop" size="368640"> |
| 9716 | <rom name="videoton.dsk" size="368640" crc="ecc4f646" sha1="3c9f11eda5e86b83b9ac74e6406b980620512fbe" offset="0" /> |
| 9717 | </dataarea> |
| 9718 | </part> |
| 9719 | </software> |
| 9720 | |
| 9721 | <software name="viditype"> |
| 9722 | <description>VidiType</description> |
| 9723 | <year>1986</year> |
| 9724 | <publisher>Géza Garai</publisher> |
| 9725 | |
| 9726 | <part name="flop1" interface="floppy_5_25"> |
| 9727 | <dataarea name="flop" size="368640"> |
| 9728 | <rom name="viditype.dsk" size="368640" crc="584883d8" sha1="12f3113cd87a6d441bac10b6372b7222fc42a5b4" offset="0" /> |
| 9729 | </dataarea> |
| 9730 | </part> |
| 9731 | </software> |
| 9732 | |
| 9733 | <software name="vidzene"> |
| 9734 | <description>Videoton Zene</description> |
| 9735 | <year>198?</year> |
| 9736 | <publisher>JozsiSoft</publisher> |
| 9737 | |
| 9738 | <part name="flop1" interface="floppy_5_25"> |
| 9739 | <dataarea name="flop" size="368640"> |
| 9740 | <rom name="vidizene.dsk" size="368640" crc="30d8797b" sha1="9cfc8639f723b0800e31994dd0d9915a22d9faaa" offset="0" /> |
| 9741 | </dataarea> |
| 9742 | </part> |
| 9743 | </software> |
| 9744 | |
| 9745 | <software name="vigyori"> |
| 9746 | <description>Vigyori</description> |
| 9747 | <year>198?</year> |
| 9748 | <publisher>Software in LUX</publisher> |
| 9749 | |
| 9750 | <part name="flop1" interface="floppy_5_25"> |
| 9751 | <dataarea name="flop" size="368640"> |
| 9752 | <rom name="vigyori.dsk" size="368640" crc="c0b7de42" sha1="627a229443ff2d4d16bf419a7d2768b8e4400189" offset="0" /> |
| 9753 | </dataarea> |
| 9754 | </part> |
| 9755 | </software> |
| 9756 | |
| 9757 | <software name="viliaban"> |
| 9758 | <description>Vili a Bányász</description> |
| 9759 | <year>1991</year> |
| 9760 | <publisher>STV</publisher> |
| 9761 | |
| 9762 | <part name="flop1" interface="floppy_5_25"> |
| 9763 | <dataarea name="flop" size="368640"> |
| 9764 | <rom name="viliabanyasz.dsk" size="368640" crc="8aa88b24" sha1="94330623455f48430f4aedfff7a0f95e097b645e" offset="0" /> |
| 9765 | </dataarea> |
| 9766 | </part> |
| 9767 | </software> |
| 9768 | |
| 9769 | <software name="viliabanj" cloneof="viliaban"> |
| 9770 | <description>Vili A Banyasz (Joystick)</description> |
| 9771 | <year>1991</year> |
| 9772 | <publisher>STV</publisher> |
| 9773 | |
| 9774 | <part name="flop1" interface="floppy_5_25"> |
| 9775 | <dataarea name="flop" size="368640"> |
| 9776 | <rom name="viliabanyaszjoy.dsk" size="368640" crc="06a7ca1a" sha1="0534488b9264cf46ef24edec9d03945ebe0bc4b8" offset="0" /> |
| 9777 | </dataarea> |
| 9778 | </part> |
| 9779 | </software> |
| 9780 | |
| 9781 | <software name="vipera"> |
| 9782 | <description>Vipera</description> |
| 9783 | <year>1987</year> |
| 9784 | <publisher>Atlas</publisher> |
| 9785 | |
| 9786 | <part name="flop1" interface="floppy_5_25"> |
| 9787 | <dataarea name="flop" size="368640"> |
| 9788 | <rom name="vipera.dsk" size="368640" crc="9b410dd2" sha1="2109a2f84d239f092099a2aa620a04d3d250480a" offset="0" /> |
| 9789 | </dataarea> |
| 9790 | </part> |
| 9791 | </software> |
| 9792 | |
| 9793 | <software name="viszhang"> |
| 9794 | <description>Visszhang</description> |
| 9795 | <year>198?</year> |
| 9796 | <publisher><unknown></publisher> |
| 9797 | |
| 9798 | <part name="flop1" interface="floppy_5_25"> |
| 9799 | <dataarea name="flop" size="368640"> |
| 9800 | <rom name="viszhang.dsk" size="368640" crc="c72758a3" sha1="f27312dd23fba5ba4abf99276927e9b15911c74d" offset="0" /> |
| 9801 | </dataarea> |
| 9802 | </part> |
| 9803 | </software> |
| 9804 | |
| 9805 | <software name="volleyba"> |
| 9806 | <description>Volleyball</description> |
| 9807 | <year>1990</year> |
| 9808 | <publisher>Berysoft</publisher> |
| 9809 | |
| 9810 | <part name="flop1" interface="floppy_5_25"> |
| 9811 | <dataarea name="flop" size="368640"> |
| 9812 | <rom name="volleyball_v1.dsk" size="368640" crc="02f2a992" sha1="a79d869c8381e998f7b178b2118d662d6938c025" offset="0" /> |
| 9813 | </dataarea> |
| 9814 | </part> |
| 9815 | </software> |
| 9816 | |
| 9817 | <software name="volleybaa" cloneof="volleyba"> |
| 9818 | <description>Volleyball (Alt)</description> |
| 9819 | <year>1990</year> |
| 9820 | <publisher>Berysoft</publisher> |
| 9821 | |
| 9822 | <part name="flop1" interface="floppy_5_25"> |
| 9823 | <dataarea name="flop" size="368640"> |
| 9824 | <rom name="volleyball_v2.dsk" size="368640" crc="9c2ff2a5" sha1="b32e4a85931b46dc8610cf7601d6e31bb844741c" offset="0" /> |
| 9825 | </dataarea> |
| 9826 | </part> |
| 9827 | </software> |
| 9828 | |
| 9829 | <software name="vtbridzs"> |
| 9830 | <description>VT Bridzs</description> |
| 9831 | <year>198?</year> |
| 9832 | <publisher>Videoton</publisher> |
| 9833 | |
| 9834 | <part name="flop1" interface="floppy_5_25"> |
| 9835 | <dataarea name="flop" size="368640"> |
| 9836 | <rom name="vtbridzsv1.dsk" size="368640" crc="0a234ab2" sha1="2c0e075098098418a14ac1d686692b3e2e389828" offset="0" /> |
| 9837 | </dataarea> |
| 9838 | </part> |
| 9839 | </software> |
| 9840 | |
| 9841 | <software name="vtbridzsa" cloneof="vtbridzs"> |
| 9842 | <description>VT Bridzs (Alt)</description> |
| 9843 | <year>198?</year> |
| 9844 | <publisher>Videoton</publisher> |
| 9845 | |
| 9846 | <part name="flop1" interface="floppy_5_25"> |
| 9847 | <dataarea name="flop" size="368640"> |
| 9848 | <rom name="vtbridzsv2.dsk" size="368640" crc="2fe325c5" sha1="458441b9d46193fce6f546423630cafb23cd80b6" offset="0" /> |
| 9849 | </dataarea> |
| 9850 | </part> |
| 9851 | </software> |
| 9852 | |
| 9853 | <software name="vtbridzsb" cloneof="vtbridzs"> |
| 9854 | <description>VT Bridzs (Alt 2)</description> |
| 9855 | <year>198?</year> |
| 9856 | <publisher><unknown></publisher> |
| 9857 | |
| 9858 | <part name="flop1" interface="floppy_5_25"> |
| 9859 | <dataarea name="flop" size="368640"> |
| 9860 | <rom name="vtbridv3.dsk" size="368640" crc="09bd925c" sha1="e043c76ec82209aac5a9ba0feb46ac5b04d917bd" offset="0" /> |
| 9861 | </dataarea> |
| 9862 | </part> |
| 9863 | </software> |
| 9864 | |
| 9865 | <software name="walltris"> |
| 9866 | <description>Walltris</description> |
| 9867 | <year>198?</year> |
| 9868 | <publisher>STV</publisher> |
| 9869 | |
| 9870 | <part name="flop1" interface="floppy_5_25"> |
| 9871 | <dataarea name="flop" size="368640"> |
| 9872 | <rom name="walltris.dsk" size="368640" crc="76ce49dc" sha1="52b8a7028e21fdde51cf28c87ad180047a58ea42" offset="0" /> |
| 9873 | </dataarea> |
| 9874 | </part> |
| 9875 | </software> |
| 9876 | |
| 9877 | <software name="war2200d"> |
| 9878 | <description>War in 2200 Demo</description> |
| 9879 | <year>198?</year> |
| 9880 | <publisher>TVCM</publisher> |
| 9881 | |
| 9882 | <part name="flop1" interface="floppy_5_25"> |
| 9883 | <dataarea name="flop" size="368640"> |
| 9884 | <rom name="war2200demo.dsk" size="368640" crc="0eb7ede9" sha1="7b2a0e013c7fd7adf62814816385c765f54515bf" offset="0" /> |
| 9885 | </dataarea> |
| 9886 | </part> |
| 9887 | </software> |
| 9888 | |
| 9889 | <software name="war2100"> |
| 9890 | <description>War in 2100</description> |
| 9891 | <year>198?</year> |
| 9892 | <publisher>TVCM</publisher> |
| 9893 | |
| 9894 | <part name="flop1" interface="floppy_5_25"> |
| 9895 | <dataarea name="flop" size="368640"> |
| 9896 | <rom name="warin2100.dsk" size="368640" crc="ef086158" sha1="cc55ef0ddb4a663903afaaae24a63ac04315894f" offset="0" /> |
| 9897 | </dataarea> |
| 9898 | </part> |
| 9899 | </software> |
| 9900 | |
| 9901 | <software name="wimbledo"> |
| 9902 | <description>Wimbledon</description> |
| 9903 | <year>198?</year> |
| 9904 | <publisher>Software in LUX</publisher> |
| 9905 | |
| 9906 | <info name="usage" value="Load file wimbledo.cas"/> |
| 9907 | <part name="flop1" interface="floppy_5_25"> |
| 9908 | <dataarea name="flop" size="368640"> |
| 9909 | <rom name="wimbledon.dsk" size="368640" crc="d1311da4" sha1="a3c681bd8a871c1d2127c2397628951aca7d6671" offset="0" /> |
| 9910 | </dataarea> |
| 9911 | </part> |
| 9912 | </software> |
| 9913 | |
| 9914 | <software name="wimbledoa" cloneof="wimbledo"> |
| 9915 | <description>Wimbledon (Alt)</description> |
| 9916 | <year>198?</year> |
| 9917 | <publisher>Software in LUX</publisher> |
| 9918 | |
| 9919 | <part name="flop1" interface="floppy_5_25"> |
| 9920 | <dataarea name="flop" size="368640"> |
| 9921 | <rom name="wimblev2.dsk" size="368640" crc="5ef42a61" sha1="21c753ba0de135caf9b7854ee7c2235d27fd017d" offset="0" /> |
| 9922 | </dataarea> |
| 9923 | </part> |
| 9924 | </software> |
| 9925 | |
| 9926 | <software name="wst"> |
| 9927 | <description>World Soccer Trainer</description> |
| 9928 | <year>1994</year> |
| 9929 | <publisher>STV</publisher> |
| 9930 | |
| 9931 | <part name="flop1" interface="floppy_5_25"> |
| 9932 | <dataarea name="flop" size="368640"> |
| 9933 | <rom name="wst.dsk" size="368640" crc="6bb8a4f3" sha1="4c2cfb572206573758fa158c98883a330d81c610" offset="0" /> |
| 9934 | </dataarea> |
| 9935 | </part> |
| 9936 | </software> |
| 9937 | |
| 9938 | <software name="xeno"> |
| 9939 | <description>Xeno</description> |
| 9940 | <year>1986</year> |
| 9941 | <publisher>STV</publisher> |
| 9942 | |
| 9943 | <part name="flop1" interface="floppy_5_25"> |
| 9944 | <dataarea name="flop" size="368640"> |
| 9945 | <rom name="xeno.dsk" size="368640" crc="5b7bcd6e" sha1="aee4eb09790ddfb36ea2ed5e670e3ef019e88c42" offset="0" /> |
| 9946 | </dataarea> |
| 9947 | </part> |
| 9948 | </software> |
| 9949 | |
| 9950 | <software name="xstore"> |
| 9951 | <description>Hexadecimális töltőprogram</description> |
| 9952 | <year>1987</year> |
| 9953 | <publisher><unknown></publisher> |
| 9954 | |
| 9955 | <part name="flop1" interface="floppy_5_25"> |
| 9956 | <dataarea name="flop" size="368640"> |
| 9957 | <rom name="xstore.dsk" size="368640" crc="676e5961" sha1="64b26b0f2c75172a931f3d67daf64f0eb9ebecbb" offset="0" /> |
| 9958 | </dataarea> |
| 9959 | </part> |
| 9960 | </software> |
| 9961 | |
| 9962 | <software name="yogi"> |
| 9963 | <description>Yogi</description> |
| 9964 | <year>198?</year> |
| 9965 | <publisher>Agilar</publisher> |
| 9966 | |
| 9967 | <part name="flop1" interface="floppy_5_25"> |
| 9968 | <dataarea name="flop" size="368640"> |
| 9969 | <rom name="yogi.dsk" size="368640" crc="4656e157" sha1="6db97baf0e9c820deb6b7192db1db62d9eec2a9b" offset="0" /> |
| 9970 | </dataarea> |
| 9971 | </part> |
| 9972 | </software> |
| 9973 | |
| 9974 | <software name="zenebona"> |
| 9975 | <description>Zenebona</description> |
| 9976 | <year>1986</year> |
| 9977 | <publisher>'a' Studio</publisher> |
| 9978 | |
| 9979 | <part name="flop1" interface="floppy_5_25"> |
| 9980 | <dataarea name="flop" size="368640"> |
| 9981 | <rom name="zenebona.dsk" size="368640" crc="a3a0ebe3" sha1="beba8fdb597c00cfced2a8071ceedbb9ec60a370" offset="0" /> |
| 9982 | </dataarea> |
| 9983 | </part> |
| 9984 | </software> |
| 9985 | |
| 9986 | <software name="zenezenea" cloneof="zenezene"> |
| 9987 | <description>Zene-Zene-Zene (Alt Colors)</description> |
| 9988 | <year>198?</year> |
| 9989 | <publisher><unknown></publisher> |
| 9990 | |
| 9991 | <part name="flop1" interface="floppy_5_25"> |
| 9992 | <dataarea name="flop" size="368640"> |
| 9993 | <rom name="zeneev.dsk" size="368640" crc="d64c7183" sha1="1e45852513a672336eaf07dceb91140026efee32" offset="0" /> |
| 9994 | </dataarea> |
| 9995 | </part> |
| 9996 | </software> |
| 9997 | |
| 9998 | <software name="zenegyar"> |
| 9999 | <description>Zenegyár v1.3</description> |
| 10000 | <year>1989</year> |
| 10001 | <publisher>Software in LUX</publisher> |
| 10002 | |
| 10003 | <part name="flop1" interface="floppy_5_25"> |
| 10004 | <dataarea name="flop" size="368640"> |
| 10005 | <rom name="zenegyar.dsk" size="368640" crc="3b3279bf" sha1="43ca1c4c0f3dbee80d5369238a8a2dd06d76ceda" offset="0" /> |
| 10006 | </dataarea> |
| 10007 | </part> |
| 10008 | </software> |
| 10009 | |
| 10010 | <software name="zenezene"> |
| 10011 | <description>Zene-Zene-Zene</description> |
| 10012 | <year>198?</year> |
| 10013 | <publisher><unknown></publisher> |
| 10014 | |
| 10015 | <part name="flop1" interface="floppy_5_25"> |
| 10016 | <dataarea name="flop" size="368640"> |
| 10017 | <rom name="zenek.dsk" size="368640" crc="ed5161c2" sha1="5c33ac0a675567f890ea8424051a018d8e27029c" offset="0" /> |
| 10018 | </dataarea> |
| 10019 | </part> |
| 10020 | </software> |
| 10021 | |
| 10022 | <software name="zenek"> |
| 10023 | <description>Zenék</description> |
| 10024 | <year>198?</year> |
| 10025 | <publisher><unknown></publisher> |
| 10026 | |
| 10027 | <part name="flop1" interface="floppy_5_25"> |
| 10028 | <dataarea name="flop" size="368640"> |
| 10029 | <rom name="zenekz.dsk" size="368640" crc="7375518c" sha1="7e3c1df2645e90877655601e2b9296a52e90c8c4" offset="0" /> |
| 10030 | </dataarea> |
| 10031 | </part> |
| 10032 | </software> |
| 10033 | |
| 10034 | <software name="zeneszer"> |
| 10035 | <description>Zeneszerző</description> |
| 10036 | <year>198?</year> |
| 10037 | <publisher><unknown></publisher> |
| 10038 | |
| 10039 | <part name="flop1" interface="floppy_5_25"> |
| 10040 | <dataarea name="flop" size="368640"> |
| 10041 | <rom name="zeneszer.dsk" size="368640" crc="8b0c48ab" sha1="f87fe786e1a177222fdc28f659f459711991446d" offset="0" /> |
| 10042 | </dataarea> |
| 10043 | </part> |
| 10044 | </software> |
| 10045 | |
| 10046 | <software name="zsidu3"> |
| 10047 | <description>Zsid U3</description> |
| 10048 | <year>198?</year> |
| 10049 | <publisher><unknown></publisher> |
| 10050 | |
| 10051 | <part name="flop1" interface="floppy_5_25"> |
| 10052 | <dataarea name="flop" size="368640"> |
| 10053 | <rom name="zsidu3.dsk" size="368640" crc="f3beacc0" sha1="b61f92722ddf7039a26561db3572daf3dbf75f3e" offset="0" /> |
| 10054 | </dataarea> |
| 10055 | </part> |
| 10056 | </software> |
| 10057 | |
| 10058 | <software name="zsir"> |
| 10059 | <description>Zsír</description> |
| 10060 | <year>198?</year> |
| 10061 | <publisher>Berysoft</publisher> |
| 10062 | |
| 10063 | <part name="flop1" interface="floppy_5_25"> |
| 10064 | <dataarea name="flop" size="368640"> |
| 10065 | <rom name="zsir.dsk" size="368640" crc="5c587e01" sha1="f07b150651981efce447d0a5aeb4a2d32edec208" offset="0" /> |
| 10066 | </dataarea> |
| 10067 | </part> |
| 10068 | </software> |
| 10069 | |
| 10070 | |
| 10071 | |
| 10072 | <!-- |
| 10073 | <software name="blankdsk"> |
| 10074 | <description>Blank Disk (TV-DOS v1.2)</description> |
| 10075 | <year>198?</year> |
| 10076 | <publisher><unknown></publisher> |
| 10077 | |
| 10078 | <part name="flop1" interface="floppy_5_25"> |
| 10079 | <dataarea name="flop" size="368640"> |
| 10080 | <rom name="realtiv.dsk" size="368640" crc="ef5198e5" sha1="63c25cbee70f667c0403ba85829391c07c201a2c" offset="0" /> |
| 10081 | </dataarea> |
| 10082 | </part> |
| 10083 | </software> |
| 10084 | |
| 10085 | |
| 10086 | <software name="astrobla" cloneof="astrobl"> |
| 10087 | <description>Astro Blaster (Alt)</description> |
| 10088 | <year>1991</year> |
| 10089 | <publisher>STV</publisher> |
| 10090 | |
| 10091 | <part name="flop1" interface="floppy_5_25"> |
| 10092 | <dataarea name="flop" size="368640"> |
| 10093 | <rom name="astro.dsk" size="737280" crc="9b43b63d" sha1="ce632f216055d8ecffd99e23f4c91481c5e0bd12" offset="0" /> |
| 10094 | </dataarea> |
| 10095 | </part> |
| 10096 | </software> |
| 10097 | |
| 10098 | <software name="bobb" cloneof="bob"> |
| 10099 | <description>Bob (Alt 2)</description> |
| 10100 | <year>198?</year> |
| 10101 | <publisher>Mamut Soft</publisher> |
| 10102 | |
| 10103 | <part name="flop1" interface="floppy_5_25"> |
| 10104 | <dataarea name="flop" size="368640"> |
| 10105 | <rom name="bobv1.dsk" size="368640" crc="a3eb8cd9" sha1="640cfe393b40f88c44ab781c91f87b725b50f5a7" offset="0" /> |
| 10106 | </dataarea> |
| 10107 | </part> |
| 10108 | </software> |
| 10109 | |
| 10110 | <software name="bobc" cloneof="bob"> |
| 10111 | <description>Bob (Alt 3)</description> |
| 10112 | <year>198?</year> |
| 10113 | <publisher>Mamut Soft</publisher> |
| 10114 | |
| 10115 | <part name="flop1" interface="floppy_5_25"> |
| 10116 | <dataarea name="flop" size="368640"> |
| 10117 | <rom name="bobv2_.dsk" size="368640" crc="cadf10cd" sha1="32f6215e9ab16a6f272820311f88ac7cbdcae052" offset="0" /> |
| 10118 | </dataarea> |
| 10119 | </part> |
| 10120 | </software> |
| 10121 | |
| 10122 | <software name="bombazoa" cloneof="bombazo"> |
| 10123 | <description>Az Utolso Bombazo (Alt)</description> |
| 10124 | <year>198?</year> |
| 10125 | <publisher><unknown></publisher> |
| 10126 | |
| 10127 | <part name="flop1" interface="floppy_5_25"> |
| 10128 | <dataarea name="flop" size="737280"> |
| 10129 | <rom name="bombazo.dsk" size="737280" crc="297f8e3a" sha1="16ea50b5e7fb1f68d0c6b1c910ad08b7cf894023" offset="0" /> |
| 10130 | </dataarea> |
| 10131 | </part> |
| 10132 | </software> |
| 10133 | |
| 10134 | <software name="break"> |
| 10135 | <description>Break</description> |
| 10136 | <year>198?</year> |
| 10137 | <publisher><unknown></publisher> |
| 10138 | |
| 10139 | <part name="flop1" interface="floppy_5_25"> |
| 10140 | <dataarea name="flop" size="368640"> |
| 10141 | <rom name="break.dsk" size="368640" crc="ec0765bc" sha1="4cd47552c883751528a8b0674ee23c56c07a2f05" offset="0" /> |
| 10142 | </dataarea> |
| 10143 | </part> |
| 10144 | </software> |
| 10145 | |
| 10146 | <software name="centipeda" cloneof="centiped"> |
| 10147 | <description>Centipede (Alt)</description> |
| 10148 | <year>198?</year> |
| 10149 | <publisher>STV</publisher> |
| 10150 | |
| 10151 | <part name="flop1" interface="floppy_5_25"> |
| 10152 | <dataarea name="flop" size="737280"> |
| 10153 | <rom name="cent.dsk" size="737280" crc="1dd2c577" sha1="06595792be54bbbad9b220134ddf10435bac8f2a" offset="0" /> |
| 10154 | </dataarea> |
| 10155 | </part> |
| 10156 | </software> |
| 10157 | |
| 10158 | <software name="crackeda" cloneof="cracked"> |
| 10159 | <description>Crack Ed (Alt)</description> |
| 10160 | <year>198?</year> |
| 10161 | <publisher><unknown></publisher> |
| 10162 | |
| 10163 | <part name="flop1" interface="floppy_5_25"> |
| 10164 | <dataarea name="flop" size="368640"> |
| 10165 | <rom name="crak.dsk" size="368640" crc="eb6a363f" sha1="743b726d8430b1c55f2003f5ad24133377eff9ec" offset="0" /> |
| 10166 | </dataarea> |
| 10167 | </part> |
| 10168 | </software> |
| 10169 | |
| 10170 | <software name="cyrus2a" cloneof="cyrus2"> |
| 10171 | <description>Cyrus 2 (Alt)</description> |
| 10172 | <year>1985</year> |
| 10173 | <publisher>Intelligent Chess Software</publisher> |
| 10174 | |
| 10175 | <part name="flop1" interface="floppy_5_25"> |
| 10176 | <dataarea name="flop" size="737280"> |
| 10177 | <rom name="cyrus2 [a].dsk" size="737280" crc="5f1de574" sha1="069641cdd004acfe0071ffe43f7679b63e50ccec" offset="0" /> |
| 10178 | </dataarea> |
| 10179 | </part> |
| 10180 | </software> |
| 10181 | |
| 10182 | <software name="dobgepa" cloneof="dobgep"> |
| 10183 | <description>Dobgép (Alt)</description> |
| 10184 | <year>198?</year> |
| 10185 | <publisher>STV</publisher> |
| 10186 | |
| 10187 | <part name="flop1" interface="floppy_5_25"> |
| 10188 | <dataarea name="flop" size="737280"> |
| 10189 | <rom name="dob.dsk" size="737280" crc="5b5d0bc5" sha1="2c9d3d349ef97c21c64c3a5fbe7e99f29e8035f1" offset="0" /> |
| 10190 | </dataarea> |
| 10191 | </part> |
| 10192 | </software> |
| 10193 | |
| 10194 | <software name="hamburg"> |
| 10195 | <description>Hamburger</description> |
| 10196 | <year>198?</year> |
| 10197 | <publisher><unknown></publisher> |
| 10198 | |
| 10199 | <part name="flop1" interface="floppy_5_25"> |
| 10200 | <dataarea name="flop" size="368640"> |
| 10201 | <rom name="hamburger.dsk" size="368640" crc="fe540e2c" sha1="4520e085c21e0b4c3dfe6aa92b269b4b9e73c982" offset="0" /> |
| 10202 | </dataarea> |
| 10203 | </part> |
| 10204 | </software> |
| 10205 | |
| 10206 | <software name="invazioa" cloneof="invazio"> |
| 10207 | <description>Invázió (Alt)</description> |
| 10208 | <year>198?</year> |
| 10209 | <publisher>STV</publisher> |
| 10210 | |
| 10211 | <part name="flop1" interface="floppy_5_25"> |
| 10212 | <dataarea name="flop" size="737280"> |
| 10213 | <rom name="inv.dsk" size="737280" crc="16169e62" sha1="9ee2c1890ac273ee49da023c41cd1d8ff7a8608d" offset="0" /> |
| 10214 | </dataarea> |
| 10215 | </part> |
| 10216 | </software> |
| 10217 | |
| 10218 | <software name="iq"> |
| 10219 | <description>Hasznalati Utasitas</description> |
| 10220 | <year>198?</year> |
| 10221 | <publisher><unknown></publisher> |
| 10222 | |
| 10223 | <part name="flop1" interface="floppy_5_25"> |
| 10224 | <dataarea name="flop" size="737280"> |
| 10225 | <rom name="iq.dsk" size="737280" crc="46ce5ec6" sha1="887d95912347a39052a3ac98f5f5e655732b7ccd" offset="0" /> |
| 10226 | </dataarea> |
| 10227 | </part> |
| 10228 | </software> |
| 10229 | |
| 10230 | <software name="jancsia" cloneof="jancsi"> |
| 10231 | <description>Jancsi a Várban (Alt)</description> |
| 10232 | <year>1986</year> |
| 10233 | <publisher>STV</publisher> |
| 10234 | |
| 10235 | <part name="flop1" interface="floppy_5_25"> |
| 10236 | <dataarea name="flop" size="737280"> |
| 10237 | <rom name="jancs.dsk" size="737280" crc="fd406d9b" sha1="4136b8925bfb87485f4a882eb50744f0b10f9d70" offset="0" /> |
| 10238 | </dataarea> |
| 10239 | </part> |
| 10240 | </software> |
| 10241 | |
| 10242 | <software name="kardhalaa" cloneof="kardhala"> |
| 10243 | <description>Kardhalak és Kincsek (Alt)</description> |
| 10244 | <year>198?</year> |
| 10245 | <publisher><unknown></publisher> |
| 10246 | |
| 10247 | <part name="flop1" interface="floppy_5_25"> |
| 10248 | <dataarea name="flop" size="737280"> |
| 10249 | <rom name="kardhal.dsk" size="737280" crc="31743be0" sha1="f44e32caf176055e254b9540591eda496c4ff0d1" offset="0" /> |
| 10250 | </dataarea> |
| 10251 | </part> |
| 10252 | </software> |
| 10253 | |
| 10254 | <software name="katalogu"> |
| 10255 | <description>Katalogus Program</description> |
| 10256 | <year>1986</year> |
| 10257 | <publisher>Kronosz</publisher> |
| 10258 | |
| 10259 | <part name="flop1" interface="floppy_5_25"> |
| 10260 | <dataarea name="flop" size="368640"> |
| 10261 | <rom name="katalogus.dsk" size="368640" crc="a3d08af1" sha1="68336f5e904aada1f0bf93dcd30ee284dff65206" offset="0" /> |
| 10262 | </dataarea> |
| 10263 | </part> |
| 10264 | </software> |
| 10265 | |
| 10266 | <software name="keljfelja" cloneof="keljfelj"> |
| 10267 | <description>Keljfeljancsi (Alt)</description> |
| 10268 | <year>198?</year> |
| 10269 | <publisher>STV</publisher> |
| 10270 | |
| 10271 | <part name="flop1" interface="floppy_5_25"> |
| 10272 | <dataarea name="flop" size="737280"> |
| 10273 | <rom name="keljfel.dsk" size="737280" crc="6e09e8c5" sha1="f5a043f2eddd88d7207bdd862887d3c3a9af66c3" offset="0" /> |
| 10274 | </dataarea> |
| 10275 | </part> |
| 10276 | </software> |
| 10277 | |
| 10278 | <software name="kismozdoa" cloneof="kismozdo"> |
| 10279 | <description>Kismozdony (Alt)</description> |
| 10280 | <year>198?</year> |
| 10281 | <publisher>STV</publisher> |
| 10282 | |
| 10283 | <part name="flop1" interface="floppy_5_25"> |
| 10284 | <dataarea name="flop" size="737280"> |
| 10285 | <rom name="kismozony.dsk" size="737280" crc="0af2cc13" sha1="de13c7326810609fc81046333c689919f8ea3c2b" offset="0" /> |
| 10286 | </dataarea> |
| 10287 | </part> |
| 10288 | </software> |
| 10289 | |
| 10290 | <software name="labirinta" cloneof="labirint"> |
| 10291 | <description>Labirintus (Alt)</description> |
| 10292 | <year>198?</year> |
| 10293 | <publisher><unknown></publisher> |
| 10294 | |
| 10295 | <part name="flop1" interface="floppy_5_25"> |
| 10296 | <dataarea name="flop" size="368640"> |
| 10297 | <rom name="labiv2.dsk" size="368640" crc="7b90a57c" sha1="2f0ba8595584141e2ea7dacd0b1f758ff27b5743" offset="0" /> |
| 10298 | </dataarea> |
| 10299 | </part> |
| 10300 | </software> |
| 10301 | |
| 10302 | <software name="linaa" cloneof="lina"> |
| 10303 | <description>Lina (Alt)</description> |
| 10304 | <year>198?</year> |
| 10305 | <publisher>STV</publisher> |
| 10306 | |
| 10307 | <part name="flop1" interface="floppy_5_25"> |
| 10308 | <dataarea name="flop" size="737280"> |
| 10309 | <rom name="lina [a].dsk" size="737280" crc="dbe61e9a" sha1="50fda0f33be072c40d2050efc6e4f3531971f9d5" offset="0" /> |
| 10310 | </dataarea> |
| 10311 | </part> |
| 10312 | </software> |
| 10313 | |
| 10314 | <software name="masolo"> |
| 10315 | <description>Másoló</description> |
| 10316 | <year>198?</year> |
| 10317 | <publisher><unknown></publisher> |
| 10318 | |
| 10319 | <part name="flop1" interface="floppy_5_25"> |
| 10320 | <dataarea name="flop" size="368640"> |
| 10321 | <rom name="masolo.dsk" size="368640" crc="33b27e3e" sha1="7e542be169d5a6de3cd5dcdf4f50f65fc48ce055" offset="0" /> |
| 10322 | </dataarea> |
| 10323 | </part> |
| 10324 | </software> |
| 10325 | |
| 10326 | <software name="newintro"> |
| 10327 | <description>Newintro</description> |
| 10328 | <year>198?</year> |
| 10329 | <publisher>C.S. Software</publisher> |
| 10330 | |
| 10331 | <part name="flop1" interface="floppy_5_25"> |
| 10332 | <dataarea name="flop" size="368640"> |
| 10333 | <rom name="newintro.dsk" size="368640" crc="bde3cf32" sha1="994fe451f537f42686367984e3ef449ecbf18263" offset="0" /> |
| 10334 | </dataarea> |
| 10335 | </part> |
| 10336 | </software> |
| 10337 | |
| 10338 | <software name="ordogmota" cloneof="ordogmot"> |
| 10339 | <description>Ördögmotor (Alt)</description> |
| 10340 | <year>1990</year> |
| 10341 | <publisher>STV</publisher> |
| 10342 | |
| 10343 | <part name="flop1" interface="floppy_5_25"> |
| 10344 | <dataarea name="flop" size="737280"> |
| 10345 | <rom name="ordogmotor [a].dsk" size="737280" crc="8bfa6cbf" sha1="e6758720567aa72cd2afc8be5b413c2015ab1fcf" offset="0" /> |
| 10346 | </dataarea> |
| 10347 | </part> |
| 10348 | </software> |
| 10349 | |
| 10350 | <software name="oszkara" cloneof="oszkar"> |
| 10351 | <description>Oszkár a Lovag (Alt)</description> |
| 10352 | <year>198?</year> |
| 10353 | <publisher>STV</publisher> |
| 10354 | |
| 10355 | <part name="flop1" interface="floppy_5_25"> |
| 10356 | <dataarea name="flop" size="737280"> |
| 10357 | <rom name="oszkar.dsk" size="737280" crc="62d1c2b2" sha1="76ea86b6661a35c2de1e202154599c2b613df32b" offset="0" /> |
| 10358 | </dataarea> |
| 10359 | </part> |
| 10360 | </software> |
| 10361 | |
| 10362 | <software name="panika" cloneof="panik"> |
| 10363 | <description>Pánik (Alt)</description> |
| 10364 | <year>1991</year> |
| 10365 | <publisher>STV</publisher> |
| 10366 | |
| 10367 | <part name="flop1" interface="floppy_5_25"> |
| 10368 | <dataarea name="flop" size="737280"> |
| 10369 | <rom name="panik [a].dsk" size="737280" crc="ac5ac41b" sha1="ec78040a45ab5419478f0a9ad159bb74dcdf9b10" offset="0" /> |
| 10370 | </dataarea> |
| 10371 | </part> |
| 10372 | </software> |
| 10373 | |
| 10374 | <software name="parbajb" cloneof="parbaj"> |
| 10375 | <description>Párbaj (Alt 2)</description> |
| 10376 | <year>1991</year> |
| 10377 | <publisher>STV</publisher> |
| 10378 | |
| 10379 | <part name="flop1" interface="floppy_5_25"> |
| 10380 | <dataarea name="flop" size="737280"> |
| 10381 | <rom name="parbaj [a].dsk" size="737280" crc="296e157b" sha1="c3b71a97597257253057c4c41e9cc97c7741e93e" offset="0" /> |
| 10382 | </dataarea> |
| 10383 | </part> |
| 10384 | </software> |
| 10385 | |
| 10386 | <software name="peepshowa" cloneof="peepshow"> |
| 10387 | <description>Peep Show (Alt)</description> |
| 10388 | <year>1984</year> |
| 10389 | <publisher>STV</publisher> |
| 10390 | |
| 10391 | <part name="flop1" interface="floppy_5_25"> |
| 10392 | <dataarea name="flop" size="737280"> |
| 10393 | <rom name="peepshow.dsk" size="737280" crc="c3628300" sha1="01b45844089b16341ab1bc8964208f6304f97222" offset="0" /> |
| 10394 | </dataarea> |
| 10395 | </part> |
| 10396 | </software> |
| 10397 | |
| 10398 | <software name="poseidona" cloneof="poseidon"> |
| 10399 | <description>Poseidon Kincse (Alt)</description> |
| 10400 | <year>1989</year> |
| 10401 | <publisher>Novotrade</publisher> |
| 10402 | |
| 10403 | <part name="flop1" interface="floppy_5_25"> |
| 10404 | <dataarea name="flop" size="368640"> |
| 10405 | <rom name="poseidonkincse.dsk" size="368640" crc="2acff3a1" sha1="cc3af65157cd00645c8f2f45dbec17dcdd13ca71" offset="0" /> |
| 10406 | </dataarea> |
| 10407 | </part> |
| 10408 | </software> |
| 10409 | |
| 10410 | <software name="raceaceb" cloneof="raceace"> |
| 10411 | <description>Race Ace (Alt 2)</description> |
| 10412 | <year>1990</year> |
| 10413 | <publisher>Zsolt Szigeti</publisher> |
| 10414 | |
| 10415 | <part name="flop1" interface="floppy_5_25"> |
| 10416 | <dataarea name="flop" size="368640"> |
| 10417 | <rom name="race_ace.dsk" size="368640" crc="af7378e5" sha1="553a0bc4909afd55b59eca95d4a5b1a998590dd5" offset="0" /> |
| 10418 | </dataarea> |
| 10419 | </part> |
| 10420 | </software> |
| 10421 | |
| 10422 | <software name="rohammcr" cloneof="rohamm"> |
| 10423 | <description>Rohamm (Cracked)</description> |
| 10424 | <year>1989</year> |
| 10425 | <publisher>GATO Bt.</publisher> |
| 10426 | |
| 10427 | <part name="flop1" interface="floppy_5_25"> |
| 10428 | <dataarea name="flop" size="368640"> |
| 10429 | <rom name="rohammcracked.dsk" size="368640" crc="5c1b9675" sha1="338864ac3231d73af5a24def9c676c08d49e1b19" offset="0" /> |
| 10430 | </dataarea> |
| 10431 | </part> |
| 10432 | </software> |
| 10433 | |
| 10434 | <software name="sajtvajob" cloneof="sajtvajo"> |
| 10435 | <description>Sajtvájó (Alt 2)</description> |
| 10436 | <year>1991</year> |
| 10437 | <publisher>STV</publisher> |
| 10438 | |
| 10439 | <part name="flop1" interface="floppy_5_25"> |
| 10440 | <dataarea name="flop" size="737280"> |
| 10441 | <rom name="sajtvajo [a].dsk" size="737280" crc="1e73fb64" sha1="83f0953be53663c8cc3881a06a124a5186ac0dcf" offset="0" /> |
| 10442 | </dataarea> |
| 10443 | </part> |
| 10444 | </software> |
| 10445 | |
| 10446 | <software name="satirozab" cloneof="satiroza"> |
| 10447 | <description>Satírozás (Alt 2)</description> |
| 10448 | <year>1991</year> |
| 10449 | <publisher>STV</publisher> |
| 10450 | |
| 10451 | <part name="flop1" interface="floppy_5_25"> |
| 10452 | <dataarea name="flop" size="737280"> |
| 10453 | <rom name="satirozas.dsk" size="737280" crc="23fa33d8" sha1="d3048a2e17254270c2a8ccd28a65a6e936e81539" offset="0" /> |
| 10454 | </dataarea> |
| 10455 | </part> |
| 10456 | </software> |
| 10457 | |
| 10458 | <software name="sinuscr"> |
| 10459 | <description>Sinuscr</description> |
| 10460 | <year>198?</year> |
| 10461 | <publisher>Peter Rakos</publisher> |
| 10462 | |
| 10463 | <part name="flop1" interface="floppy_5_25"> |
| 10464 | <dataarea name="flop" size="368640"> |
| 10465 | <rom name="sinusscr.dsk" size="368640" crc="bb893ca8" sha1="17dc0c5eb70b4718654718cae1be2acd38a1dff7" offset="0" /> |
| 10466 | </dataarea> |
| 10467 | </part> |
| 10468 | </software> |
| 10469 | |
| 10470 | <software name="spacesapb" cloneof="spacesap"> |
| 10471 | <description>Space Sapper (Alt 2)</description> |
| 10472 | <year>1987</year> |
| 10473 | <publisher>Novotrade</publisher> |
| 10474 | |
| 10475 | <part name="flop1" interface="floppy_5_25"> |
| 10476 | <dataarea name="flop" size="368640"> |
| 10477 | <rom name="spacesapperv2.dsk" size="368640" crc="2c0c2b0e" sha1="e9294e4a1b82cc6bc60ced8a27081442ed3e4c62" offset="0" /> |
| 10478 | </dataarea> |
| 10479 | </part> |
| 10480 | </software> |
| 10481 | |
| 10482 | <software name="teszt"> |
| 10483 | <description>Teszt</description> |
| 10484 | <year>198?</year> |
| 10485 | <publisher><unknown></publisher> |
| 10486 | |
| 10487 | <part name="flop1" interface="floppy_5_25"> |
| 10488 | <dataarea name="flop" size="737280"> |
| 10489 | <rom name="teszt.dsk" size="737280" crc="31fbc7bb" sha1="cf9521931f5aa45459a64ab8258c4dddd5f9d788" offset="0" /> |
| 10490 | </dataarea> |
| 10491 | </part> |
| 10492 | </software> |
| 10493 | |
| 10494 | <software name="turbojaca" cloneof="turbojac"> |
| 10495 | <description>Turbo Jack (Alt)</description> |
| 10496 | <year>1991</year> |
| 10497 | <publisher>STV</publisher> |
| 10498 | |
| 10499 | <part name="flop1" interface="floppy_5_25"> |
| 10500 | <dataarea name="flop" size="737280"> |
| 10501 | <rom name="turbojack [a].dsk" size="737280" crc="2ea588e9" sha1="acbc0f2d1907406f2a44489124c3a3fe30e851bf" offset="0" /> |
| 10502 | </dataarea> |
| 10503 | </part> |
| 10504 | </software> |
| 10505 | |
| 10506 | <software name="ufoa"> |
| 10507 | <description>UFO (Alt)</description> |
| 10508 | <year>1985</year> |
| 10509 | <publisher>STV</publisher> |
| 10510 | |
| 10511 | <part name="flop1" interface="floppy_5_25"> |
| 10512 | <dataarea name="flop" size="737280"> |
| 10513 | <rom name="ufo [a].dsk" size="737280" crc="941110b4" sha1="453504556562f0ccd00089dcf2c86d67004df053" offset="0" /> |
| 10514 | </dataarea> |
| 10515 | </part> |
| 10516 | </software> |
| 10517 | |
| 10518 | <software name="upmleme1"> |
| 10519 | <description>UPM Lemez 1</description> |
| 10520 | <year>198?</year> |
| 10521 | <publisher><unknown></publisher> |
| 10522 | |
| 10523 | <part name="flop1" interface="floppy_5_25"> |
| 10524 | <dataarea name="flop" size="737280"> |
| 10525 | <rom name="upmlemez1.dsk" size="737280" crc="d3698df2" sha1="1b944fff0b41007fc6c482ba28407fb851e3ec16" offset="0" /> |
| 10526 | </dataarea> |
| 10527 | </part> |
| 10528 | </software> |
| 10529 | |
| 10530 | <software name="upmleme2"> |
| 10531 | <description>UPM Lemez 2</description> |
| 10532 | <year>198?</year> |
| 10533 | <publisher><unknown></publisher> |
| 10534 | |
| 10535 | <part name="flop1" interface="floppy_5_25"> |
| 10536 | <dataarea name="flop" size="737280"> |
| 10537 | <rom name="upmlemez2.dsk" size="737280" crc="1f51ce73" sha1="3de8a6e44bbd34e0abacd0fcdfb76b6965cc5b5a" offset="0" /> |
| 10538 | </dataarea> |
| 10539 | </part> |
| 10540 | </software> |
| 10541 | |
| 10542 | <software name="upmleme3"> |
| 10543 | <description>UPM Lemez 3</description> |
| 10544 | <year>198?</year> |
| 10545 | <publisher><unknown></publisher> |
| 10546 | |
| 10547 | <part name="flop1" interface="floppy_5_25"> |
| 10548 | <dataarea name="flop" size="737280"> |
| 10549 | <rom name="upmlemez3.dsk" size="737280" crc="c8966ad8" sha1="a38ac0cd6eec559cbf4f306f64dd8e4c7cab9c57" offset="0" /> |
| 10550 | </dataarea> |
| 10551 | </part> |
| 10552 | </software> |
| 10553 | |
| 10554 | <software name="vidzenea" cloneof="vidzene"> |
| 10555 | <description>Videoton Zene (Alt)</description> |
| 10556 | <year>198?</year> |
| 10557 | <publisher>JozsiSoft</publisher> |
| 10558 | |
| 10559 | <part name="flop1" interface="floppy_5_25"> |
| 10560 | <dataarea name="flop" size="368640"> |
| 10561 | <rom name="vidizev2.dsk" size="368640" crc="7ef1328a" sha1="99b708e16a8c49b63661a4b44afa30fecb0079dc" offset="0" /> |
| 10562 | </dataarea> |
| 10563 | </part> |
| 10564 | </software> |
| 10565 | |
| 10566 | <software name="viliabana" cloneof="viliaban"> |
| 10567 | <description>Vili a Bányász (Alt)</description> |
| 10568 | <year>1991</year> |
| 10569 | <publisher>STV</publisher> |
| 10570 | |
| 10571 | <part name="flop1" interface="floppy_5_25"> |
| 10572 | <dataarea name="flop" size="737280"> |
| 10573 | <rom name="vili.dsk" size="737280" crc="90b96888" sha1="0a38c2d1704f5cdfdc5f2cb7c60f7035caaa28b4" offset="0" /> |
| 10574 | </dataarea> |
| 10575 | </part> |
| 10576 | </software> |
| 10577 | |
| 10578 | --> |
| 10579 | </softwarelist> |
trunk/src/emu/cpu/tms0980/tms0980.c
| r242231 | r242232 | |
| 1 | // license:BSD-3-Clause |
| 2 | // copyright-holders:Wilbert Pol, hap |
| 1 | 3 | /* |
| 2 | 4 | |
| 5 | TMS0980/TMS1000-family MCU cores |
| 3 | 6 | |
| 4 | | TMS0980/TMS1000-family CPU cores |
| 5 | | |
| 6 | | The tms0980 and tms1000-family cpu cores are very similar. The tms0980 has a |
| 7 | | slightly bigger addressable area and uses 9bit instructions where the tms1000 |
| 7 | The TMS0980 and TMS1000-family MCU cores are very similar. The TMS0980 has a |
| 8 | slightly bigger addressable area and uses 9bit instructions where the TMS1000 |
| 8 | 9 | family uses 8bit instruction. The instruction set themselves are very similar |
| 9 | | though. The table below shows the differences between the different models. |
| 10 | though. |
| 10 | 11 | |
| 11 | | Mode | ROM | RAM | R pins | O pins | K pins | ids |
| 12 | | ---------+-----------+----------+--------+--------+--------|---------- |
| 13 | | tms0970 | 1024 * 8 | 64 * 4 | | | | tms0972 |
| 14 | | tms0920* | 511?* 9 | 40 * 5 | | | | tmc0921 |
| 15 | | tms0980 | 2048 * 9 | 64 * 9 | | | | tmc0981 |
| 16 | | tms1000 | 1024 * 8 | 64 * 4 | 11 | 8 | 4 | tms1001 |
| 17 | | tms1040* | 1024 * 8 | 64 * 4 | | | | tms1043 |
| 18 | | tms1070 | 1024 * 8 | 64 * 4 | 11 | 8 | 4 | tms1071 |
| 19 | | tms1100 | 2048 * 8 | 128 * 4 | 11 | 8 | 4 | tms1111/tms1115 |
| 20 | | tms1170* | 2048 * 8 | 128 * 4 | | | | tmc1172 |
| 21 | | tms1200 | 1024 * 8 | 64 * 4 | 13 | 8 | 4 | tms1215 |
| 22 | | tms1270 | 1024 * 8 | 64 * 4 | 13 | 10 | 4 | tms1278 |
| 23 | | tms1300 | 2048 * 8 | 128 * 4 | 16 | 8 | 4 | tms1309 |
| 24 | | tms1370* | 2048 * 8 | 128 * 4 | | | | za0543 |
| 25 | | tms1400* | 4096 * 8 | 128 * 4 | | | | |
| 26 | | tms1470* | 4096 * 8 | 128 * 4 | | | | tms1470 |
| 27 | | tms1500* | 2048 * 13 | 64 * 20 | | | | tmc1501 |
| 28 | | tms1600* | 4096 * 8 | 128 * 4 | | | | |
| 29 | | tms1670* | 4096 * 8 | 128 * 4 | | | | |
| 30 | | tms1700* | 512 * 8 | 32 * 4 | | | | |
| 31 | | tms1980* | 2048 * 9 | 64 * 9 | | | | tmc1982 |
| 32 | | tms1990* | 1024 * 8 | 64 * 4 | | | | tmc1991 |
| 33 | | tp0310* | 511?* 9 | 40 * 5 | | | | tp0311 |
| 34 | | tp0320* | 2048 * 9 | 64 * 13 | | | | tp0321 |
| 35 | | tp0455* | | | | | | cd4501 |
| 36 | | tp0456* | | | | | | cd4555 |
| 37 | | tp0458* | | | | | | cd4812 |
| 38 | | tp0485* | | | | | | cd2901 |
| 39 | | tp0530* | | | | | | cd5402 |
| 40 | | |
| 41 | | * = not supported yet |
| 42 | | |
| 43 | | The TMS1000 core has been tested with some example code, the other models |
| 44 | | have not been tested lacking rom dumps. |
| 45 | | |
| 46 | 12 | Each instruction takes 12 cycles to execute in 2 phases: a fetch phase and an |
| 47 | 13 | execution phase. The execution phase takes place at the same time as the fetch |
| 48 | 14 | phase of the next instruction. So, during execution there are both fetch and |
| r242231 | r242232 | |
| 82 | 48 | - Execute: |
| 83 | 49 | 1. Execute BRANCH/CALL/RETN part #1 |
| 84 | 50 | |
| 51 | */ |
| 85 | 52 | |
| 86 | | The CPU cores contains a set of fixed instructions and a set of |
| 53 | #include "tms0980.h" |
| 54 | #include "debugger.h" |
| 55 | |
| 56 | /* |
| 57 | |
| 58 | The MCU cores contains a set of fixed instructions and a set of |
| 87 | 59 | instructions created using microinstructions. A subset of the |
| 88 | 60 | instruction set could be defined from the microinstructions by |
| 89 | | TI customers. Currently we only support the standard instruction |
| 90 | | set as defined by TI. |
| 61 | TI customers. |
| 91 | 62 | |
| 92 | | The microinstructions are: |
| 93 | | 15TN - 15 to -ALU |
| 94 | | ATN - ACC to -ALU |
| 95 | | AUTA - ALU to ACC |
| 96 | | AUTY - ALU to Y |
| 97 | | C8 - CARRY8 to STATUS |
| 98 | | CIN - Carry In to ALU |
| 99 | | CKM - CKB to MEM |
| 100 | | CKN - CKB to -ALU |
| 101 | | CKP - CKB to +ALU |
| 102 | | CME - Conditional Memory Enable |
| 103 | | DMTP - DAM to +ALU |
| 104 | | MTN - MEM to -ALU |
| 105 | | MTP - MEM to +ALU |
| 106 | | NATN - ~ACC to -ALU |
| 107 | | NDMTP - ~DAM to +ALU |
| 108 | | NE - COMP to STATUS |
| 109 | | SSE - Special Status Enable |
| 110 | | SSS - Special Status Sample |
| 111 | | STO - ACC to MEM |
| 112 | | YTP - Y to +ALU |
| 113 | | |
| 114 | 63 | cycle #0: 15TN, ATN, CIN, CKN, CKP, DMTP, MTN, MTP, NATN, NDMTP, YTP |
| 115 | 64 | cycle #2: C8(?), CKM, NE(?), STO |
| 116 | 65 | cycle #3,#4: AUTA, AUTY |
| r242231 | r242232 | |
| 119 | 68 | |
| 120 | 69 | */ |
| 121 | 70 | |
| 122 | | #include "emu.h" |
| 123 | | #include "debugger.h" |
| 124 | | #include "tms0980.h" |
| 71 | /* Microinstructions */ |
| 72 | #define M_15TN 0x00000001 /* 15 to -ALU */ |
| 73 | #define M_ATN 0x00000002 /* ACC to -ALU */ |
| 74 | #define M_AUTA 0x00000004 /* ALU to ACC */ |
| 75 | #define M_AUTY 0x00000008 /* ALU to Y */ |
| 76 | #define M_C8 0x00000010 /* CARRY8 to STATUS */ |
| 77 | #define M_CIN 0x00000020 /* Carry In to ALU */ |
| 78 | #define M_CKM 0x00000040 /* CKB to MEM */ |
| 79 | #define M_CKN 0x00000080 /* CKB to -ALU */ |
| 80 | #define M_CKP 0x00000100 /* CKB to +ALU */ |
| 81 | #define M_CME 0x00000200 /* Conditional Memory Enable */ |
| 82 | #define M_DMTP 0x00000400 /* DAM to +ALU */ |
| 83 | #define M_MTN 0x00000800 /* MEM to -ALU */ |
| 84 | #define M_MTP 0x00001000 /* MEM to +ALU */ |
| 85 | #define M_NATN 0x00002000 /* ~ACC to -ALU */ |
| 86 | #define M_NDMTP 0x00004000 /* ~DAM to +ALU */ |
| 87 | #define M_NE 0x00008000 /* COMP to STATUS */ |
| 88 | #define M_SSE 0x00010000 /* Special Status Enable */ |
| 89 | #define M_SSS 0x00020000 /* Special Status Sample */ |
| 90 | #define M_STO 0x00040000 /* ACC to MEM */ |
| 91 | #define M_STSL 0x00080000 /* STATUS to Status Latch */ |
| 92 | #define M_YTP 0x00100000 /* Y to +ALU */ |
| 125 | 93 | |
| 126 | | |
| 127 | | |
| 128 | | const device_type TMS0980 = &device_creator<tms0980_cpu_device>; |
| 129 | | const device_type TMS1000 = &device_creator<tms1000_cpu_device>; |
| 130 | | const device_type TMS0970 = &device_creator<tms0970_cpu_device>; |
| 131 | | const device_type TMS1070 = &device_creator<tms1070_cpu_device>; |
| 132 | | const device_type TMS1200 = &device_creator<tms1200_cpu_device>; |
| 133 | | const device_type TMS1270 = &device_creator<tms1270_cpu_device>; |
| 134 | | const device_type TMS1100 = &device_creator<tms1100_cpu_device>; |
| 135 | | const device_type TMS1300 = &device_creator<tms1300_cpu_device>; |
| 136 | | |
| 137 | | |
| 138 | | #define MICRO_MASK 0x80000000 |
| 139 | | #define FIXED_INSTRUCTION 0x00000000 |
| 140 | | |
| 141 | | |
| 142 | | /* Standard/fixed intructions */ |
| 143 | | #define F_ILL 0x00000000 |
| 94 | /* Standard/fixed instructions - these are documented more in their specific handlers below */ |
| 144 | 95 | #define F_BR 0x00000001 |
| 145 | 96 | #define F_CALL 0x00000002 |
| 146 | 97 | #define F_CLO 0x00000004 |
| r242231 | r242232 | |
| 160 | 111 | #define F_SEAC 0x00010000 |
| 161 | 112 | #define F_SETR 0x00020000 |
| 162 | 113 | #define F_TDO 0x00040000 |
| 114 | #define F_XDA 0x00080000 |
| 163 | 115 | |
| 164 | 116 | |
| 165 | | /* Microinstructions */ |
| 166 | | #define M_15TN 0x00000001 |
| 167 | | #define M_ATN 0x00000002 |
| 168 | | #define M_AUTA 0x00000004 |
| 169 | | #define M_AUTY 0x00000008 |
| 170 | | #define M_C8 0x00000010 |
| 171 | | #define M_CIN 0x00000020 |
| 172 | | #define M_CKM 0x00000040 |
| 173 | | #define M_CKN 0x00000080 |
| 174 | | #define M_CKP 0x00000100 |
| 175 | | #define M_CME 0x00000200 |
| 176 | | #define M_DMTP 0x00000400 |
| 177 | | #define M_MTN 0x00000800 |
| 178 | | #define M_MTP 0x00001000 |
| 179 | | #define M_NATN 0x00002000 |
| 180 | | #define M_NDMTP 0x00004000 |
| 181 | | #define M_NE 0x00008000 |
| 182 | | #define M_SSE 0x00010000 |
| 183 | | #define M_SSS 0x00020000 |
| 184 | | #define M_STO 0x00040000 |
| 185 | | #define M_STSL 0x00080000 |
| 186 | | #define M_YTP 0x00100000 |
| 117 | // supported types: |
| 118 | // note: dice information assumes the orientation is pictured with RAM at the bottom-left |
| 187 | 119 | |
| 120 | // TMS1000 |
| 121 | // - 64x4bit RAM array at the bottom-left |
| 122 | // - 1024x8bit ROM array at the bottom-right |
| 123 | // * FYI, the row-selector to the left of it is laid out as: |
| 124 | // 3,4,11,12,19,20,27,28,35,36,43,44,51,52,59,60,0,7,8,15,16,23,24,31,32,39,40,47,48,55,56,63, |
| 125 | // 2,5,10,13,18,21,26,29,34,37,42,45,50,53,58,61,1,6,9,14,17,22,25,30,33,38,41,46,49,54,57,62 |
| 126 | // - 30-term microinstructions PLA(mpla) at the top half, to the right of the midline, supporting 16 microinstructions |
| 127 | // - 20-term output PLA(opla) at the top-left |
| 128 | // - the ALU is between the opla and mpla |
| 129 | const device_type TMS1000 = &device_creator<tms1000_cpu_device>; // 28-pin DIP, 11 R pins |
| 130 | const device_type TMS1200 = &device_creator<tms1200_cpu_device>; // 40-pin DIP, 13 R pins |
| 131 | const device_type TMS1070 = &device_creator<tms1070_cpu_device>; // same as tms1000, just supports higher voltage |
| 132 | // TMS1270 has 10 O pins, how does that work? |
| 188 | 133 | |
| 189 | | /* instructions built from microinstructions */ |
| 190 | | #define I_AC1AC ( MICRO_MASK | M_CKP | M_ATN | M_CIN | M_C8 | M_AUTA ) |
| 191 | | #define I_A6AAC I_ACACC |
| 192 | | #define I_A8AAC I_ACACC |
| 193 | | #define I_A10AAC I_ACACC |
| 194 | | #define I_ACACC ( MICRO_MASK | M_CKP | M_ATN | M_C8 | M_AUTA ) |
| 195 | | #define I_ACNAA ( MICRO_MASK | M_CKP | M_NATN | M_AUTA ) |
| 196 | | #define I_ALEC ( MICRO_MASK | M_CKP | M_NATN | M_CIN | M_C8 ) |
| 197 | | #define I_ALEM ( MICRO_MASK | M_MTP | M_NATN | M_CIN | M_C8 ) |
| 198 | | #define I_AMAAC ( MICRO_MASK | M_MTP | M_ATN | M_C8 | M_AUTA ) |
| 199 | | #define I_CCLA ( MICRO_MASK | M_AUTA | M_SSS ) |
| 200 | | #define I_CLA ( MICRO_MASK | M_AUTA ) |
| 201 | | #define I_CPAIZ ( MICRO_MASK | M_NATN | M_CIN | M_C8 | M_AUTA ) |
| 202 | | #define I_CTMDYN ( MICRO_MASK | M_YTP | M_15TN | M_C8 | M_AUTY | M_CME ) |
| 203 | | #define I_DAN ( MICRO_MASK | M_CKP | M_ATN | M_CIN | M_C8 | M_AUTA ) |
| 204 | | #define I_DMAN ( MICRO_MASK | M_MTP | M_15TN | M_C8 | M_AUTA ) |
| 205 | | #define I_DMEA ( MICRO_MASK | M_MTP | M_DMTP | M_SSS | M_AUTA ) |
| 206 | | #define I_NDMEA ( MICRO_MASK | M_MTN | M_NDMTP | M_SSS | M_AUTA ) |
| 207 | | #define I_DNAA ( MICRO_MASK | M_DMTP | M_NATN | M_SSS | M_AUTA ) |
| 208 | | #define I_DYN ( MICRO_MASK | M_YTP | M_15TN | M_C8 | M_AUTY ) |
| 209 | | #define I_IA ( MICRO_MASK | M_ATN | M_CIN | M_AUTA ) |
| 210 | | #define I_IMAC ( MICRO_MASK | M_MTP | M_CIN | M_C8 | M_AUTA ) |
| 211 | | #define I_IYC ( MICRO_MASK | M_YTP | M_CIN | M_C8 | M_AUTY ) |
| 212 | | #define I_KNEZ ( MICRO_MASK | M_CKP | M_NE ) |
| 213 | | #define I_MNEA ( MICRO_MASK | M_MTP | M_ATN | M_NE ) |
| 214 | | #define I_MNEZ ( MICRO_MASK | M_MTP | M_NE ) |
| 215 | | #define I_SAMAN ( MICRO_MASK | M_MTP | M_NATN | M_CIN | M_C8 | M_AUTA ) |
| 216 | | #define I_SETR ( MICRO_MASK | M_YTP | M_15TN | M_AUTY | M_C8 ) |
| 217 | | #define I_TAM ( MICRO_MASK | M_STO ) |
| 218 | | #define I_TAMACS ( MICRO_MASK | M_STO | M_ATN | M_CKP | M_AUTA | M_SSE ) |
| 219 | | #define I_TAMDYN ( MICRO_MASK | M_STO | M_YTP | M_15TN | M_AUTY | M_C8 ) |
| 220 | | #define I_TAMIY ( MICRO_MASK | M_STO | M_YTP | M_CIN | M_AUTY ) |
| 221 | | #define I_TAMIYC ( MICRO_MASK | M_STO | M_YTP | M_CIN | M_C8 | M_AUTY ) |
| 222 | | #define I_TAMZA ( MICRO_MASK | M_STO | M_AUTA ) |
| 223 | | #define I_TAY ( MICRO_MASK | M_ATN | M_AUTY ) |
| 224 | | #define I_TBIT ( MICRO_MASK | M_CKP | M_CKN | M_MTP | M_NE ) |
| 225 | | #define I_TCY ( MICRO_MASK | M_CKP | M_AUTY ) |
| 226 | | #define I_TCMIY ( MICRO_MASK | M_CKM | M_YTP | M_CIN | M_AUTY ) |
| 227 | | #define I_TKA ( MICRO_MASK | M_CKP | M_AUTA ) |
| 228 | | #define I_TKM ( MICRO_MASK | M_CKM ) |
| 229 | | #define I_TMA ( MICRO_MASK | M_MTP | M_AUTA ) |
| 230 | | #define I_TMY ( MICRO_MASK | M_MTP | M_AUTY ) |
| 231 | | #define I_TYA ( MICRO_MASK | M_YTP | M_AUTA ) |
| 232 | | #define I_XDA ( MICRO_MASK | M_DMTP | M_AUTA | M_STO ) |
| 233 | | #define I_XMA ( MICRO_MASK | M_MTP | M_STO | M_AUTA ) |
| 234 | | #define I_YMCY ( MICRO_MASK | M_CIN | M_YTP | M_CKN | M_AUTY ) |
| 235 | | #define I_YNEA ( MICRO_MASK | M_YTP | M_ATN | M_NE ) |
| 236 | | #define I_YNEC ( MICRO_MASK | M_YTP | M_CKN | M_NE ) |
| 134 | // TMS1100 is nearly the same as TMS1000, some different opcodes, and with double the RAM and ROM |
| 135 | const device_type TMS1100 = &device_creator<tms1100_cpu_device>; // 28-pin DIP, 11 R pins |
| 136 | const device_type TMS1300 = &device_creator<tms1300_cpu_device>; // 40-pin DIP, 16 R pins |
| 237 | 137 | |
| 138 | // TMS0980 |
| 139 | // - 64x9bit RAM array at the bottom-left (set up as 144x4) |
| 140 | // - 2048x9bit ROM array at the bottom-left |
| 141 | // - main instructions PLA at the top half, to the right of the midline |
| 142 | // - 64-term microinstructions PLA between the RAM and ROM, supporting 20 microinstructions |
| 143 | // - 16-term output PLA and segment PLA above the RAM |
| 144 | const device_type TMS0980 = &device_creator<tms0980_cpu_device>; // 28-pin DIP, 9 R pins |
| 238 | 145 | |
| 239 | | static const UINT8 tms0980_c2_value[4] = { 0, 2, 1, 3 }; |
| 240 | | static const UINT8 tms0980_c3_value[8] = { 0, 4, 2, 6, 1, 5, 3, 7 }; |
| 241 | | static const UINT8 tms0980_c4_value[16] = { 0x0, 0x8, 0x4, 0xC, 0x2, 0xA, 0x6, 0xE, 0x1, 0x9, 0x5, 0xD, 0x3, 0xB, 0x7, 0xF }; |
| 242 | | static const UINT8 tms0980_bit_value[4] = { 1, 4, 2, 8 }; |
| 243 | | static const UINT8 tms0980_nbit_value[4] = { 0xE, 0xB, 0xD, 0x7 }; |
| 146 | // TMS0970 is a stripped-down version of the TMS0980, itself acting more like a TMS1000 |
| 147 | // - 64x4bit RAM array at the bottom-left |
| 148 | // - 1024x8bit ROM array at the bottom-right |
| 149 | // - main instructions PLA at the top half, to the right of the midline |
| 150 | // - 32-term microinstructions PLA between the RAM and ROM, supporting 15 microinstructions |
| 151 | // - 16-term output PLA and segment PLA above the RAM |
| 152 | const device_type TMS0970 = &device_creator<tms0970_cpu_device>; // 28-pin DIP, 11 R pins |
| 244 | 153 | |
| 245 | 154 | |
| 246 | | static const UINT32 tms0980_decode[512] = |
| 155 | static ADDRESS_MAP_START(program_11bit_9, AS_PROGRAM, 16, tms1xxx_cpu_device) |
| 156 | AM_RANGE(0x000, 0xfff) AM_ROM |
| 157 | ADDRESS_MAP_END |
| 158 | |
| 159 | static ADDRESS_MAP_START(program_10bit_8, AS_PROGRAM, 8, tms1xxx_cpu_device) |
| 160 | AM_RANGE(0x000, 0x3ff) AM_ROM |
| 161 | ADDRESS_MAP_END |
| 162 | |
| 163 | static ADDRESS_MAP_START(program_11bit_8, AS_PROGRAM, 8, tms1xxx_cpu_device) |
| 164 | AM_RANGE(0x000, 0x7ff) AM_ROM |
| 165 | ADDRESS_MAP_END |
| 166 | |
| 167 | |
| 168 | static ADDRESS_MAP_START(data_64x4, AS_DATA, 8, tms1xxx_cpu_device) |
| 169 | AM_RANGE(0x00, 0x3f) AM_RAM |
| 170 | ADDRESS_MAP_END |
| 171 | |
| 172 | static ADDRESS_MAP_START(data_128x4, AS_DATA, 8, tms1xxx_cpu_device) |
| 173 | AM_RANGE(0x00, 0x7f) AM_RAM |
| 174 | ADDRESS_MAP_END |
| 175 | |
| 176 | static ADDRESS_MAP_START(data_64x9_as4, AS_DATA, 8, tms1xxx_cpu_device) |
| 177 | AM_RANGE(0x00, 0x7f) AM_RAM |
| 178 | AM_RANGE(0x80, 0x8f) AM_RAM AM_MIRROR(0x70) // DAM |
| 179 | ADDRESS_MAP_END |
| 180 | |
| 181 | |
| 182 | tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 183 | : tms1xxx_cpu_device(mconfig, TMS1000, "TMS1000", tag, owner, clock, 8, 11, 4, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1000", __FILE__) |
| 247 | 184 | { |
| 248 | | /* 0x000 */ |
| 249 | | F_COMX, I_ALEM, I_YNEA, I_XMA, I_DYN, I_IYC, I_CLA, I_DMAN, |
| 250 | | I_TKA, I_MNEA, I_TKM, F_ILL, F_ILL, F_SETR, I_KNEZ, F_ILL, |
| 251 | | I_DMEA, I_DNAA, I_CCLA, I_NDMEA, F_ILL, I_AMAAC, F_ILL, F_ILL, |
| 252 | | I_CTMDYN, I_XDA, F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, |
| 253 | | I_TBIT, I_TBIT, I_TBIT, I_TBIT, F_ILL, F_ILL, F_ILL, F_ILL, |
| 254 | | I_TAY, I_TMA, I_TMY, I_TYA, I_TAMDYN, I_TAMIYC, I_TAMZA, I_TAM, |
| 255 | | I_SAMAN, I_CPAIZ, I_IMAC, I_MNEZ, F_ILL, F_ILL, F_ILL, F_ILL, |
| 256 | | I_TCY, I_YNEC, I_TCMIY, I_ACACC, I_ACNAA, I_TAMACS, I_ALEC, I_YMCY, |
| 257 | | /* 0x040 */ |
| 258 | | I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, |
| 259 | | I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, |
| 260 | | I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, |
| 261 | | I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, |
| 262 | | I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, |
| 263 | | I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, |
| 264 | | I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, |
| 265 | | I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, I_ACACC, |
| 266 | | /* 0x080 */ |
| 267 | | F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, |
| 268 | | F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, |
| 269 | | F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, |
| 270 | | F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, |
| 271 | | F_SBIT, F_SBIT, F_SBIT, F_SBIT, F_RBIT, F_RBIT, F_RBIT, F_RBIT, |
| 272 | | F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, |
| 273 | | F_TDO, F_SAL, F_COMX8, F_SBL, F_REAC, F_SEAC, F_OFF, F_ILL, |
| 274 | | F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, F_ILL, F_RETN, |
| 275 | | /* 0x0c0 */ |
| 276 | | I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, |
| 277 | | I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, I_ACNAA, |
| 278 | | I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, |
| 279 | | I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, I_TAMACS, |
| 280 | | I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, |
| 281 | | I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, |
| 282 | | I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, |
| 283 | | I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, I_YMCY, |
| 284 | | /* 0x100 */ |
| 285 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 286 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 287 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 288 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 289 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 290 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 291 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 292 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 293 | | /* 0x140 */ |
| 294 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 295 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 296 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 297 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 298 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 299 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 300 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 301 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 302 | | /* 0x180 */ |
| 303 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 304 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 305 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 306 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 307 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 308 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 309 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 310 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 311 | | /* 0x1c0 */ |
| 312 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 313 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 314 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 315 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 316 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 317 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 318 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 319 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL |
| 320 | | }; |
| 185 | } |
| 321 | 186 | |
| 187 | tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 k_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) |
| 188 | : tms1xxx_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, k_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) |
| 189 | { |
| 190 | } |
| 322 | 191 | |
| 323 | | static const UINT32 tms1000_default_decode[256] = |
| 192 | tms1070_cpu_device::tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 193 | : tms1000_cpu_device(mconfig, TMS1070, "TMS1070", tag, owner, clock, 8, 11, 4, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1070", __FILE__) |
| 324 | 194 | { |
| 325 | | /* 0x00 */ |
| 326 | | F_COMX, I_A8AAC, I_YNEA, I_TAM, I_TAMZA, I_A10AAC, I_A6AAC, I_DAN, |
| 327 | | I_TKA, I_KNEZ, F_TDO, F_CLO, F_RSTR, F_SETR, I_IA, F_RETN, |
| 328 | | F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, |
| 329 | | F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, |
| 330 | | /* 0x20 */ |
| 331 | | I_TAMIY, I_TMA, I_TMY, I_TYA, I_TAY, I_AMAAC, I_MNEZ, I_SAMAN, |
| 332 | | I_IMAC, I_ALEM, I_DMAN, I_IYC, I_DYN, I_CPAIZ, I_XMA, I_CLA, |
| 333 | | F_SBIT, F_SBIT, F_SBIT, F_SBIT, F_RBIT, F_RBIT, F_RBIT, F_RBIT, |
| 334 | | I_TBIT, I_TBIT, I_TBIT, I_TBIT, F_LDX, F_LDX, F_LDX, F_LDX, |
| 335 | | /* 0x40 */ |
| 336 | | I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, |
| 337 | | I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, |
| 338 | | I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, |
| 339 | | I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, |
| 340 | | /* 0x60 */ |
| 341 | | I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, |
| 342 | | I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, |
| 343 | | I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, |
| 344 | | I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, I_ALEC, |
| 345 | | /* 0x80 */ |
| 346 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 347 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 348 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 349 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 350 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 351 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 352 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 353 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 354 | | /* 0xC0 */ |
| 355 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 356 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 357 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 358 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 359 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 360 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 361 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 362 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 363 | | }; |
| 195 | } |
| 364 | 196 | |
| 197 | tms1200_cpu_device::tms1200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 198 | : tms1000_cpu_device(mconfig, TMS1200, "TMS1200", tag, owner, clock, 8, 13, 4, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms1200", __FILE__) |
| 199 | { |
| 200 | } |
| 365 | 201 | |
| 366 | | static const UINT32 tms1100_default_decode[256] = |
| 202 | |
| 203 | tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 204 | : tms1000_cpu_device(mconfig, TMS1100, "TMS1100", tag, owner, clock, 8, 11, 4, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1100", __FILE__) |
| 367 | 205 | { |
| 368 | | /* 0x00 */ |
| 369 | | I_MNEA, I_ALEM, I_YNEA, I_XMA, I_DYN, I_IYC, I_AMAAC, I_DMAN, |
| 370 | | I_TKA, F_COMX, F_TDO, F_COMC, F_RSTR, F_SETR, I_KNEZ, F_RETN, |
| 371 | | F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, |
| 372 | | F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, F_LDP, |
| 373 | | /* 0x20 */ |
| 374 | | I_TAY, I_TMA, I_TMY, I_TYA, I_TAMDYN, I_TAMIYC, I_TAMZA, I_TAM, |
| 375 | | F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, F_LDX, |
| 376 | | F_SBIT, F_SBIT, F_SBIT, F_SBIT, F_RBIT, F_RBIT, F_RBIT, F_RBIT, |
| 377 | | I_TBIT, I_TBIT, I_TBIT, I_TBIT, I_SAMAN, I_CPAIZ, I_IMAC, I_MNEZ, |
| 378 | | /* 0x40 */ |
| 379 | | I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, |
| 380 | | I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, I_TCY, |
| 381 | | I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, |
| 382 | | I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, I_YNEC, |
| 383 | | /* 0x60 */ |
| 384 | | I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, |
| 385 | | I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, I_TCMIY, |
| 386 | | I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, |
| 387 | | I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_AC1AC, I_CLA, |
| 388 | | /* 0x80 */ |
| 389 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 390 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 391 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 392 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 393 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 394 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 395 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 396 | | F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, F_BR, |
| 397 | | /* 0xC0 */ |
| 398 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 399 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 400 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 401 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 402 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 403 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 404 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 405 | | F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, F_CALL, |
| 406 | | }; |
| 206 | } |
| 407 | 207 | |
| 208 | tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 k_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) |
| 209 | : tms1000_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, k_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) |
| 210 | { |
| 211 | } |
| 408 | 212 | |
| 409 | | static ADDRESS_MAP_START(program_11bit_9, AS_PROGRAM, 16, tms1xxx_cpu_device) |
| 410 | | AM_RANGE( 0x000, 0xfff ) AM_ROM |
| 411 | | ADDRESS_MAP_END |
| 213 | tms1300_cpu_device::tms1300_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 214 | : tms1100_cpu_device(mconfig, TMS1300, "TMS1200", tag, owner, clock, 8, 16, 4, 6, 8, 3, 11, ADDRESS_MAP_NAME(program_11bit_8), 7, ADDRESS_MAP_NAME(data_128x4), "tms1300", __FILE__) |
| 215 | { |
| 216 | } |
| 412 | 217 | |
| 413 | 218 | |
| 414 | | static ADDRESS_MAP_START(program_10bit_8, AS_PROGRAM, 8, tms1xxx_cpu_device) |
| 415 | | AM_RANGE( 0x000, 0x3ff ) AM_ROM |
| 416 | | ADDRESS_MAP_END |
| 219 | tms0970_cpu_device::tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 220 | : tms1000_cpu_device(mconfig, TMS0970, "TMS0970", tag, owner, clock, 8, 11, 4, 6, 8, 2, 10, ADDRESS_MAP_NAME(program_10bit_8), 6, ADDRESS_MAP_NAME(data_64x4), "tms0970", __FILE__) |
| 221 | { |
| 222 | } |
| 417 | 223 | |
| 224 | tms0970_cpu_device::tms0970_cpu_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 o_pins, UINT8 r_pins, UINT8 k_pins, UINT8 pc_bits, UINT8 byte_bits, UINT8 x_bits, int prgwidth, address_map_constructor program, int datawidth, address_map_constructor data, const char *shortname, const char *source) |
| 225 | : tms1000_cpu_device(mconfig, type, name, tag, owner, clock, o_pins, r_pins, k_pins, pc_bits, byte_bits, x_bits, prgwidth, program, datawidth, data, shortname, source) |
| 226 | { |
| 227 | } |
| 418 | 228 | |
| 419 | | static ADDRESS_MAP_START(program_11bit_8, AS_PROGRAM, 8, tms1xxx_cpu_device) |
| 420 | | AM_RANGE( 0x000, 0x7ff ) AM_ROM |
| 421 | | ADDRESS_MAP_END |
| 422 | 229 | |
| 230 | tms0980_cpu_device::tms0980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 231 | : tms0970_cpu_device(mconfig, TMS0980, "TMS0980", tag, owner, clock, 8, 9, 5, 7, 9, 4, 12, ADDRESS_MAP_NAME(program_11bit_9), 8, ADDRESS_MAP_NAME(data_64x9_as4), "tms0980", __FILE__) |
| 232 | { |
| 233 | } |
| 423 | 234 | |
| 424 | | static ADDRESS_MAP_START(data_64x4, AS_DATA, 8, tms1xxx_cpu_device) |
| 425 | | AM_RANGE( 0x00, 0x3f ) AM_RAM |
| 426 | | ADDRESS_MAP_END |
| 427 | 235 | |
| 428 | 236 | |
| 429 | | static ADDRESS_MAP_START(data_128x4, AS_DATA, 8, tms1xxx_cpu_device) |
| 430 | | AM_RANGE( 0x00, 0x7f ) AM_RAM |
| 431 | | ADDRESS_MAP_END |
| 237 | static MACHINE_CONFIG_FRAGMENT(tms1000) |
| 238 | |
| 239 | // microinstructions PLA, output PLA |
| 240 | MCFG_PLA_ADD("mpla", 8, 16, 30) |
| 241 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 242 | MCFG_PLA_ADD("opla", 5, 8, 20) |
| 243 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 244 | MACHINE_CONFIG_END |
| 432 | 245 | |
| 246 | machine_config_constructor tms1000_cpu_device::device_mconfig_additions() const |
| 247 | { |
| 248 | return MACHINE_CONFIG_NAME(tms1000); |
| 249 | } |
| 433 | 250 | |
| 434 | | static ADDRESS_MAP_START(data_64x9_as4, AS_DATA, 8, tms1xxx_cpu_device) |
| 435 | | AM_RANGE( 0x00, 0x8f ) AM_RAM |
| 436 | | AM_RANGE( 0x90, 0xff ) AM_NOP |
| 437 | | ADDRESS_MAP_END |
| 438 | 251 | |
| 252 | static MACHINE_CONFIG_FRAGMENT(tms0970) |
| 439 | 253 | |
| 254 | // main opcodes PLA, microinstructions PLA, output PLA, segment PLA |
| 255 | MCFG_PLA_ADD("ipla", 8, 15, 18) |
| 256 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 257 | MCFG_PLA_ADD("mpla", 5, 15, 32) |
| 258 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 259 | MCFG_PLA_ADD("opla", 4, 8, 16) |
| 260 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 261 | MCFG_PLA_ADD("spla", 3, 8, 8) |
| 262 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 263 | MACHINE_CONFIG_END |
| 264 | |
| 265 | machine_config_constructor tms0970_cpu_device::device_mconfig_additions() const |
| 266 | { |
| 267 | return MACHINE_CONFIG_NAME(tms0970); |
| 268 | } |
| 269 | |
| 270 | |
| 271 | static MACHINE_CONFIG_FRAGMENT(tms0980) |
| 272 | |
| 273 | // main opcodes PLA, microinstructions PLA, output PLA, segment PLA |
| 274 | MCFG_PLA_ADD("ipla", 9, 22, 24) |
| 275 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 276 | MCFG_PLA_ADD("mpla", 6, 20, 64) |
| 277 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 278 | MCFG_PLA_ADD("opla", 4, 8, 16) |
| 279 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 280 | MCFG_PLA_ADD("spla", 3, 8, 8) |
| 281 | MCFG_PLA_FILEFORMAT(PLA_FMT_BERKELEY) |
| 282 | MACHINE_CONFIG_END |
| 283 | |
| 284 | machine_config_constructor tms0980_cpu_device::device_mconfig_additions() const |
| 285 | { |
| 286 | return MACHINE_CONFIG_NAME(tms0980); |
| 287 | } |
| 288 | |
| 289 | |
| 290 | |
| 291 | offs_t tms1000_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 292 | { |
| 293 | extern CPU_DISASSEMBLE(tms1000); |
| 294 | return CPU_DISASSEMBLE_NAME(tms1000)(this, buffer, pc, oprom, opram, options); |
| 295 | } |
| 296 | |
| 297 | offs_t tms1100_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 298 | { |
| 299 | extern CPU_DISASSEMBLE(tms1100); |
| 300 | return CPU_DISASSEMBLE_NAME(tms1100)(this, buffer, pc, oprom, opram, options); |
| 301 | } |
| 302 | |
| 303 | offs_t tms0980_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 304 | { |
| 305 | extern CPU_DISASSEMBLE(tms0980); |
| 306 | return CPU_DISASSEMBLE_NAME(tms0980)(this, buffer, pc, oprom, opram, options); |
| 307 | } |
| 308 | |
| 309 | void tms1xxx_cpu_device::state_string_export(const device_state_entry &entry, astring &string) |
| 310 | { |
| 311 | switch (entry.index()) |
| 312 | { |
| 313 | case STATE_GENPC: |
| 314 | string.printf("%03X", m_rom_address << ((m_byte_bits > 8) ? 1 : 0)); |
| 315 | break; |
| 316 | } |
| 317 | } |
| 318 | |
| 319 | |
| 320 | |
| 321 | //------------------------------------------------- |
| 322 | // device_start - device-specific startup |
| 323 | //------------------------------------------------- |
| 324 | |
| 325 | enum |
| 326 | { |
| 327 | TMS0980_PC=1, TMS0980_SR, TMS0980_PA, TMS0980_PB, |
| 328 | TMS0980_A, TMS0980_X, TMS0980_Y, TMS0980_STATUS |
| 329 | }; |
| 330 | |
| 440 | 331 | void tms1xxx_cpu_device::device_start() |
| 441 | 332 | { |
| 442 | | m_program = &space( AS_PROGRAM ); |
| 443 | | m_data = &space( AS_DATA ); |
| 333 | m_program = &space(AS_PROGRAM); |
| 334 | m_data = &space(AS_DATA); |
| 444 | 335 | |
| 445 | | m_read_k.resolve_safe(0xff); |
| 336 | m_read_k.resolve_safe(0); |
| 446 | 337 | m_write_o.resolve_safe(); |
| 447 | 338 | m_write_r.resolve_safe(); |
| 339 | m_power_off.resolve_safe(); |
| 448 | 340 | |
| 449 | | save_item( NAME(m_prev_pc) ); |
| 450 | | save_item( NAME(m_prev_pa) ); |
| 451 | | save_item( NAME(m_pc) ); |
| 452 | | save_item( NAME(m_pa) ); |
| 453 | | save_item( NAME(m_sr) ); |
| 454 | | save_item( NAME(m_pb) ); |
| 455 | | save_item( NAME(m_a) ); |
| 456 | | save_item( NAME(m_x) ); |
| 457 | | save_item( NAME(m_y) ); |
| 458 | | save_item( NAME(m_dam) ); |
| 459 | | save_item( NAME(m_ca) ); |
| 460 | | save_item( NAME(m_cb) ); |
| 461 | | save_item( NAME(m_cs) ); |
| 462 | | save_item( NAME(m_r) ); |
| 463 | | save_item( NAME(m_o) ); |
| 464 | | save_item( NAME(m_cki_bus) ); |
| 465 | | save_item( NAME(m_p) ); |
| 466 | | save_item( NAME(m_n) ); |
| 467 | | save_item( NAME(m_adder_result) ); |
| 468 | | save_item( NAME(m_carry_in) ); |
| 469 | | save_item( NAME(m_status) ); |
| 470 | | save_item( NAME(m_status_latch) ); |
| 471 | | save_item( NAME(m_special_status) ); |
| 472 | | save_item( NAME(m_call_latch) ); |
| 473 | | save_item( NAME(m_add_latch) ); |
| 474 | | save_item( NAME(m_branch_latch) ); |
| 475 | | save_item( NAME(m_subcycle) ); |
| 476 | | save_item( NAME(m_ram_address) ); |
| 477 | | save_item( NAME(m_ram_data) ); |
| 478 | | save_item( NAME(m_rom_address) ); |
| 479 | | save_item( NAME(m_opcode) ); |
| 480 | | save_item( NAME(m_decode) ); |
| 341 | m_o_mask = (1 << m_o_pins) - 1; |
| 342 | m_r_mask = (1 << m_r_pins) - 1; |
| 343 | m_k_mask = (1 << m_k_pins) - 1; |
| 344 | m_pc_mask = (1 << m_pc_bits) - 1; |
| 345 | m_x_mask = (1 << m_x_bits) - 1; |
| 346 | |
| 347 | // zerofill |
| 348 | m_pc = 0; |
| 349 | m_sr = 0; |
| 350 | m_pa = 0; |
| 351 | m_pb = 0; |
| 352 | m_a = 0; |
| 353 | m_x = 0; |
| 354 | m_y = 0; |
| 355 | m_ca = 0; |
| 356 | m_cb = 0; |
| 357 | m_cs = 0; |
| 358 | m_r = 0; |
| 359 | m_o = 0; |
| 360 | m_cki_bus = 0; |
| 361 | m_c4 = 0; |
| 362 | m_p = 0; |
| 363 | m_n = 0; |
| 364 | m_adder_out = 0; |
| 365 | m_carry_in = 0; |
| 366 | m_carry_out = 0; |
| 367 | m_status = 0; |
| 368 | m_status_latch = 0; |
| 369 | m_eac = 0; |
| 370 | m_clatch = 0; |
| 371 | m_add = 0; |
| 372 | m_bl = 0; |
| 481 | 373 | |
| 482 | | // Register state for debugger |
| 483 | | state_add( TMS0980_PC, "PC", m_pc ).callimport().callexport().formatstr("%02X"); |
| 484 | | state_add( TMS0980_SR, "SR", m_sr ).callimport().callexport().formatstr("%01X"); |
| 485 | | state_add( TMS0980_PA, "PA", m_pa ).callimport().callexport().formatstr("%01X"); |
| 486 | | state_add( TMS0980_PB, "PB", m_pb ).callimport().callexport().formatstr("%01X"); |
| 487 | | state_add( TMS0980_A, "A", m_a ).callimport().callexport().formatstr("%01X"); |
| 488 | | state_add( TMS0980_X, "X", m_x ).callimport().callexport().formatstr("%01X"); |
| 489 | | state_add( TMS0980_Y, "Y", m_y ).callimport().callexport().formatstr("%01X"); |
| 490 | | state_add( TMS0980_STATUS, "STATUS", m_status ).callimport().callexport().formatstr("%01X"); |
| 374 | m_ram_in = 0; |
| 375 | m_dam_in = 0; |
| 376 | m_ram_out = 0; |
| 377 | m_ram_address = 0; |
| 378 | m_rom_address = 0; |
| 379 | m_opcode = 0; |
| 380 | m_fixed = 0; |
| 381 | m_micro = 0; |
| 382 | m_subcycle = 0; |
| 491 | 383 | |
| 492 | | state_add(STATE_GENPC, "curpc", m_pc).callimport().callexport().formatstr("%8s").noshow(); |
| 493 | | state_add(STATE_GENFLAGS, "GENFLAGS", m_sr).callimport().callexport().formatstr("%8s").noshow(); |
| 384 | // register for savestates |
| 385 | save_item(NAME(m_pc)); |
| 386 | save_item(NAME(m_sr)); |
| 387 | save_item(NAME(m_pa)); |
| 388 | save_item(NAME(m_pb)); |
| 389 | save_item(NAME(m_a)); |
| 390 | save_item(NAME(m_x)); |
| 391 | save_item(NAME(m_y)); |
| 392 | save_item(NAME(m_ca)); |
| 393 | save_item(NAME(m_cb)); |
| 394 | save_item(NAME(m_cs)); |
| 395 | save_item(NAME(m_r)); |
| 396 | save_item(NAME(m_o)); |
| 397 | save_item(NAME(m_cki_bus)); |
| 398 | save_item(NAME(m_c4)); |
| 399 | save_item(NAME(m_p)); |
| 400 | save_item(NAME(m_n)); |
| 401 | save_item(NAME(m_adder_out)); |
| 402 | save_item(NAME(m_carry_in)); |
| 403 | save_item(NAME(m_carry_out)); |
| 404 | save_item(NAME(m_status)); |
| 405 | save_item(NAME(m_status_latch)); |
| 406 | save_item(NAME(m_eac)); |
| 407 | save_item(NAME(m_clatch)); |
| 408 | save_item(NAME(m_add)); |
| 409 | save_item(NAME(m_bl)); |
| 494 | 410 | |
| 411 | save_item(NAME(m_ram_in)); |
| 412 | save_item(NAME(m_dam_in)); |
| 413 | save_item(NAME(m_ram_out)); |
| 414 | save_item(NAME(m_ram_address)); |
| 415 | save_item(NAME(m_rom_address)); |
| 416 | save_item(NAME(m_opcode)); |
| 417 | save_item(NAME(m_fixed)); |
| 418 | save_item(NAME(m_micro)); |
| 419 | save_item(NAME(m_subcycle)); |
| 420 | |
| 421 | // register state for debugger |
| 422 | state_add(TMS0980_PC, "PC", m_pc ).formatstr("%02X"); |
| 423 | state_add(TMS0980_SR, "SR", m_sr ).formatstr("%01X"); |
| 424 | state_add(TMS0980_PA, "PA", m_pa ).formatstr("%01X"); |
| 425 | state_add(TMS0980_PB, "PB", m_pb ).formatstr("%01X"); |
| 426 | state_add(TMS0980_A, "A", m_a ).formatstr("%01X"); |
| 427 | state_add(TMS0980_X, "X", m_x ).formatstr("%01X"); |
| 428 | state_add(TMS0980_Y, "Y", m_y ).formatstr("%01X"); |
| 429 | state_add(TMS0980_STATUS, "STATUS", m_status).formatstr("%01X"); |
| 430 | |
| 431 | state_add(STATE_GENPC, "curpc", m_rom_address).formatstr("%03X").noshow(); |
| 432 | state_add(STATE_GENFLAGS, "GENFLAGS", m_sr).formatstr("%8s").noshow(); |
| 433 | |
| 495 | 434 | m_icountptr = &m_icount; |
| 496 | 435 | } |
| 497 | 436 | |
| 498 | 437 | |
| 438 | |
| 439 | //------------------------------------------------- |
| 440 | // device_reset - device-specific reset |
| 441 | //------------------------------------------------- |
| 442 | |
| 499 | 443 | void tms1xxx_cpu_device::device_reset() |
| 500 | 444 | { |
| 501 | | m_pa = 0xF; |
| 502 | | m_pb = 0xF; |
| 445 | m_pa = 0xf; |
| 446 | m_pb = 0xf; |
| 503 | 447 | m_pc = 0; |
| 504 | | m_dam = 0; |
| 505 | 448 | m_ca = 0; |
| 506 | 449 | m_cb = 0; |
| 507 | 450 | m_cs = 0; |
| 451 | |
| 452 | m_eac = 0; |
| 453 | m_bl = 0; |
| 454 | m_add = 0; |
| 455 | |
| 456 | m_opcode = 0; |
| 457 | m_micro = 0; |
| 458 | m_fixed = 0; |
| 459 | |
| 508 | 460 | m_subcycle = 0; |
| 509 | | m_status = 1; |
| 510 | | m_status_latch = 0; |
| 511 | | m_call_latch = 0; |
| 512 | | m_add_latch = 0; |
| 513 | | m_branch_latch = 0; |
| 461 | |
| 462 | // clear outputs |
| 514 | 463 | m_r = 0; |
| 515 | | m_o = 0; |
| 516 | | m_ram_address = 0; |
| 517 | | m_decode = F_ILL; |
| 518 | | m_opcode = 0; |
| 464 | m_write_r(0, m_r & m_r_mask, 0xffff); |
| 465 | write_o_output(0); |
| 466 | m_write_r(0, m_r & m_r_mask, 0xffff); |
| 519 | 467 | } |
| 520 | 468 | |
| 521 | 469 | |
| 522 | | /* |
| 523 | | The program counter is implemented using PRNG logic and gets incremented as follows: |
| 470 | void tms1000_cpu_device::device_reset() |
| 471 | { |
| 472 | // common reset |
| 473 | tms1xxx_cpu_device::device_reset(); |
| 474 | |
| 475 | // pre-decode instructionset |
| 476 | m_fixed_decode.resize_and_clear(0x100); |
| 477 | m_micro_decode.resize_and_clear(0x100); |
| 478 | |
| 479 | for (int op = 0; op < 0x100; op++) |
| 480 | { |
| 481 | // _____ _____ ______ _____ ______ _____ _____ _____ _____ |
| 482 | const UINT32 md[16] = { M_STSL, M_AUTY, M_AUTA, M_CIN, M_C8, M_NE, M_CKN, M_15TN, M_MTN, M_NATN, M_ATN, M_MTP, M_YTP, M_CKP, M_CKM, M_STO }; |
| 483 | UINT16 mask = m_mpla->read(op); |
| 484 | mask ^= 0x3fc8; // invert active-negative |
| 485 | |
| 486 | for (int bit = 0; bit < 16; bit++) |
| 487 | if (mask & (1 << bit)) |
| 488 | m_micro_decode[op] |= md[bit]; |
| 489 | } |
| 524 | 490 | |
| 525 | | 00, 01, 03, 07, 0F, 1F, 3F, 3E, |
| 526 | | 3D, 3B, 37, 2F, 1E, 3C, 39, 33 |
| 527 | | 27, 0E, 1D, 3A, 35, 2B, 16, 2C, |
| 528 | | 18, 30, 21, 02, 05, 0B, 17, 2E, |
| 529 | | 1C, 38, 31, 23, 06, 0D, 1B, 36, |
| 530 | | 2D, 1A, 34, 29, 12, 24, 08, 11, |
| 531 | | 22, 04, 09, 13, 26, 0C, 19, 32, |
| 532 | | 25, 0A, 15, 2A, 14, 28, 10, 20 |
| 491 | // the fixed instruction set is not programmable |
| 492 | m_fixed_decode[0x00] = F_COMX; |
| 493 | m_fixed_decode[0x0a] = F_TDO; |
| 494 | m_fixed_decode[0x0b] = F_CLO; |
| 495 | m_fixed_decode[0x0c] = F_RSTR; |
| 496 | m_fixed_decode[0x0d] = F_SETR; |
| 497 | m_fixed_decode[0x0f] = F_RETN; |
| 498 | |
| 499 | for (int i = 0x10; i < 0x20; i++) m_fixed_decode[i] = F_LDP; |
| 500 | for (int i = 0x30; i < 0x34; i++) m_fixed_decode[i] = F_SBIT; |
| 501 | for (int i = 0x34; i < 0x38; i++) m_fixed_decode[i] = F_RBIT; |
| 502 | for (int i = 0x3c; i < 0x40; i++) m_fixed_decode[i] = F_LDX; |
| 533 | 503 | |
| 534 | | There is also a strange address (AD) to location (LOC) mapping performed by the |
| 535 | | tms1000 family. |
| 504 | for (int i = 0x80; i < 0xc0; i++) m_fixed_decode[i] = F_BR; |
| 505 | for (int i = 0xc0; i < 0x100; i++) m_fixed_decode[i] = F_CALL; |
| 506 | } |
| 536 | 507 | |
| 537 | | From tms1000 family pdf: |
| 538 | | AD LOC |
| 539 | | 000 000000 003 000011 |
| 540 | | 001 000001 004 000100 |
| 541 | | 003 000011 00C 001100 |
| 542 | | 007 000111 01C 011100 |
| 543 | | 00F 001111 03C 111100 |
| 544 | | 01F 011111 03F 111111 |
| 545 | | 03F 111111 03E 111110 |
| 546 | | 03E 111110 039 111001 |
| 547 | | 03D 111101 036 110110 |
| 548 | | 03B 111011 02E 101110 |
| 549 | | 037 110111 01E 011110 |
| 550 | | 02F 101111 03D 111101 |
| 551 | | 01E 011110 038 111000 |
| 552 | | 03C 111100 031 110001 |
| 553 | | 039 111001 026 100110 |
| 554 | | 033 110011 00E 001110 |
| 555 | | 027 100111 01D 011101 |
| 556 | | 00E 001110 03B 111011 |
| 557 | | 01D 011101 037 110111 |
| 558 | | 03A 111010 029 101001 |
| 559 | | 035 110101 016 010110 |
| 560 | | 02B 101011 02D 101101 |
| 561 | | 016 010110 018 011000 |
| 562 | | 02C 101100 032 110010 |
| 563 | | 018 011000 020 100000 |
| 564 | | 030 110000 001 000001 |
| 565 | | 021 100001 005 000101 |
| 566 | | 002 000010 00B 001011 |
| 567 | | 005 000101 014 010100 |
| 568 | | 00B 001011 02C 101100 |
| 569 | | 017 010111 01F 011111 |
| 570 | | 02E 101110 03A 111010 |
| 571 | | 01C 011100 030 110000 |
| 572 | | 038 111000 021 100001 |
| 573 | | 031 110001 006 000110 |
| 574 | | 023 100011 00D 001101 |
| 575 | | 006 000110 01B 011011 |
| 576 | | 00D 001101 034 110100 |
| 577 | | 01B 011011 02F 101111 |
| 578 | | 036 110110 019 011001 |
| 579 | | 02D 101101 035 110101 |
| 580 | | 01A 011010 028 101000 |
| 581 | | 034 110100 011 010001 |
| 582 | | 029 101001 025 100101 |
| 583 | | 012 010010 008 001000 |
| 584 | | 024 100100 012 010010 |
| 585 | | 008 001000 023 100011 |
| 586 | | 011 010001 007 000111 |
| 587 | | 022 100010 00A 001010 |
| 588 | | 004 000100 013 010011 |
| 589 | | 009 001001 024 100100 |
| 590 | | 013 010011 00F 001111 |
| 591 | | 026 100110 01A 011010 |
| 592 | | 00C 001100 033 110011 |
| 593 | | 019 011001 027 100111 |
| 594 | | 032 110010 009 001001 |
| 595 | | 025 100101 015 010101 |
| 596 | | 00A 001010 02B 101011 |
| 597 | | 015 010101 017 010111 |
| 598 | | 02A 101010 02A 101010 |
| 599 | | 014 010100 010 010000 |
| 600 | | 028 101000 022 100010 |
| 601 | | 010 010000 000 000000 |
| 602 | | 020 100000 002 000010 |
| 603 | | |
| 604 | | The following formula seems to be used to decode a program counter |
| 605 | | into a rom address: |
| 606 | | location{5:2} = pc{3:0} |
| 607 | | location{1:0} = ( pc{5:4} == 00 && pc{0} == 0 ) => 11 |
| 608 | | ( pc{5:4} == 00 && pc{0} == 1 ) => 00 |
| 609 | | ( pc{5:4} == 01 && pc{0} == 0 ) => 00 |
| 610 | | ( pc{5:4} == 01 && pc{0} == 1 ) => 11 |
| 611 | | ( pc{5:4} == 10 && pc{0} == 0 ) => 10 |
| 612 | | ( pc{5:4} == 10 && pc{0} == 1 ) => 01 |
| 613 | | ( pc{5:4} == 11 && pc{0} == 0 ) => 01 |
| 614 | | ( pc{5:4} == 11 && pc{0} == 1 ) => 10 |
| 615 | | |
| 616 | | */ |
| 617 | | static const UINT8 tms1000_next_pc[64] = |
| 508 | void tms1100_cpu_device::device_reset() |
| 618 | 509 | { |
| 619 | | 0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F, |
| 620 | | 0x20, 0x22, 0x24, 0x26, 0x28, 0x2A, 0x2C, 0x2E, 0x30, 0x32, 0x34, 0x36, 0x38, 0x3A, 0x3C, 0x3F, |
| 621 | | 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0E, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1A, 0x1C, 0x1E, |
| 622 | | 0x21, 0x23, 0x25, 0x27, 0x29, 0x2B, 0x2D, 0x2F, 0x31, 0x33, 0x35, 0x37, 0x39, 0x3B, 0x3D, 0x3E, |
| 623 | | }; |
| 510 | tms1000_cpu_device::device_reset(); |
| 511 | |
| 512 | // small differences in 00-3f area |
| 513 | m_fixed_decode[0x00] = 0; |
| 514 | m_fixed_decode[0x09] = F_COMX8; // ! |
| 515 | m_fixed_decode[0x0b] = F_COMC; |
| 624 | 516 | |
| 625 | | /* emulator for the program counter increment on the tms0980/tmc0980 mcu; |
| 626 | | see patent 4064554 figure 19 (on page 13) for an explanation of feedback: |
| 517 | for (int i = 0x28; i < 0x30; i++) m_fixed_decode[i] = F_LDX; |
| 518 | for (int i = 0x3c; i < 0x40; i++) m_fixed_decode[i] = 0; |
| 519 | } |
| 627 | 520 | |
| 628 | | nand324 = NAND of PC0 through pc4, i.e. output is true if ((pc&0x1f) != 0x1f) |
| 629 | | nand323 = NAND of pc5, pc6 and nand324 |
| 630 | | i.e. output is true, if ((pc&0x1f)==0x1f) || pc5 is 0 || pc 6 is 0 |
| 631 | | or321 = OR of pc5 and pc6, i.e. output is true if ((pc&0x60) != 0) |
| 632 | | nand322 = NAND of pc0 through pc5 plus /pc6, |
| 633 | | i.e. output is true if (pc != 0x3f) |
| 634 | | nand325 = nand of nand323, or321 and nand322 |
| 635 | | This one is complex: |
| 636 | | / or321 means if pc&0x60 is zero, output MUST be true |
| 637 | | \ nand323 means if (pc&0x60=0x60) && (pc&0x1f != 0x1f), output MUST be true |
| 638 | | nand322 means if pc = 0x3f, output MUST be true |
| 639 | | hence, nand325 is if pc = 0x7f, false. if pc = 0x3f, true. if pc&0x60 is zero OR pc&0x60 is 0x60, true. otherwise, false. |
| 640 | 521 | |
| 641 | | tms0980_next_pc below implements an identical function to this in a somewhat more elegant way. |
| 642 | | */ |
| 643 | | void tms1xxx_cpu_device::next_pc() |
| 522 | void tms0970_cpu_device::device_reset() |
| 644 | 523 | { |
| 645 | | if ( m_byte_size > 8 ) |
| 524 | // common reset |
| 525 | tms1xxx_cpu_device::device_reset(); |
| 526 | |
| 527 | // pre-decode instructionset |
| 528 | m_fixed_decode.resize_and_clear(0x100); |
| 529 | m_micro_decode.resize_and_clear(0x100); |
| 530 | |
| 531 | for (int op = 0; op < 0x100; op++) |
| 646 | 532 | { |
| 647 | | UINT8 xorval = ( m_pc & 0x3F ) == 0x3F ? 1 : 0; |
| 648 | | UINT8 new_bit = ( ( m_pc ^ ( m_pc << 1 ) ) & 0x40 ) ? xorval : 1 - xorval; |
| 533 | // upper half of the opcodes is always branch/call |
| 534 | if (op & 0x80) |
| 535 | m_fixed_decode[op] = (op & 0x40) ? F_CALL: F_BR; |
| 536 | |
| 537 | // 5 output bits select a microinstruction index |
| 538 | UINT32 imask = m_ipla->read(op); |
| 539 | UINT8 msel = imask & 0x1f; |
| 540 | |
| 541 | // but if (from bottom to top) term 1 is active and output bit 5 is 0, R2,R4-R7 directly select a microinstruction index |
| 542 | if (imask & 0x40 && (imask & 0x20) == 0) |
| 543 | msel = (op & 0xf) | (op >> 1 & 0x10); |
| 544 | |
| 545 | msel = BITSWAP8(msel,7,6,5,0,1,2,3,4); // lines are reversed |
| 546 | UINT32 mmask = m_mpla->read(msel); |
| 547 | mmask ^= 0x09fe; // invert active-negative |
| 548 | |
| 549 | // _____ _____ _____ _____ ______ _____ ______ _____ _____ |
| 550 | const UINT32 md[15] = { M_CKM, M_CKP, M_YTP, M_MTP, M_ATN, M_NATN, M_MTN, M_15TN, M_CKN, M_NE, M_C8, M_CIN, M_AUTA, M_AUTY, M_STO }; |
| 649 | 551 | |
| 650 | | m_pc = ((m_pc << 1) | new_bit) & ((1 << m_pc_size) - 1); |
| 552 | for (int bit = 0; bit < 15; bit++) |
| 553 | if (mmask & (1 << bit)) |
| 554 | m_micro_decode[op] |= md[bit]; |
| 555 | |
| 556 | // the other ipla terms each select a fixed instruction |
| 557 | const UINT32 id[8] = { F_LDP, F_TDO, F_COMX, F_LDX, F_SBIT, F_RBIT, F_SETR, F_RETN }; |
| 558 | |
| 559 | for (int bit = 0; bit < 8; bit++) |
| 560 | if (imask & (0x80 << bit)) |
| 561 | m_fixed_decode[op] |= id[bit]; |
| 651 | 562 | } |
| 652 | | else |
| 653 | | { |
| 654 | | m_pc = tms1000_next_pc[ m_pc & 0x3f ]; |
| 655 | | } |
| 656 | 563 | } |
| 657 | 564 | |
| 658 | 565 | |
| 659 | | static const UINT8 tms1000_pc_decode[64] = |
| 566 | UINT32 tms0980_cpu_device::decode_micro(UINT8 sel) |
| 660 | 567 | { |
| 661 | | 0x03, 0x04, 0x0B, 0x0C, 0x13, 0x14, 0x1B, 0x1C, |
| 662 | | 0x23, 0x24, 0x2B, 0x2C, 0x33, 0x34, 0x3B, 0x3C, |
| 663 | | 0x00, 0x07, 0x08, 0x0F, 0x10, 0x17, 0x18, 0x1F, |
| 664 | | 0x20, 0x27, 0x28, 0x2F, 0x30, 0x37, 0x38, 0x3F, |
| 665 | | 0x02, 0x05, 0x0A, 0x0D, 0x12, 0x15, 0x1A, 0x1D, |
| 666 | | 0x22, 0x25, 0x2A, 0x2D, 0x32, 0x35, 0x3A, 0x3D, |
| 667 | | 0x01, 0x06, 0x09, 0x0E, 0x11, 0x16, 0x19, 0x1E, |
| 668 | | 0x21, 0x26, 0x29, 0x2E, 0x31, 0x36, 0x39, 0x3E |
| 669 | | }; |
| 568 | UINT32 decode = 0; |
| 569 | |
| 570 | sel = BITSWAP8(sel,7,6,0,1,2,3,4,5); // lines are reversed |
| 571 | UINT32 mask = m_mpla->read(sel); |
| 572 | mask ^= 0x43fc3; // invert active-negative |
| 670 | 573 | |
| 574 | // _______ ______ _____ _____ _____ _____ ______ _____ ______ _____ _____ |
| 575 | const UINT32 md[20] = { M_NDMTP, M_DMTP, M_AUTY, M_AUTA, M_CKM, M_SSE, M_CKP, M_YTP, M_MTP, M_ATN, M_NATN, M_MTN, M_15TN, M_CKN, M_NE, M_C8, M_SSS, M_CME, M_CIN, M_STO }; |
| 576 | |
| 577 | for (int bit = 0; bit < 20; bit++) |
| 578 | if (mask & (1 << bit)) |
| 579 | decode |= md[bit]; |
| 580 | |
| 581 | return decode; |
| 582 | } |
| 671 | 583 | |
| 672 | | void tms1xxx_cpu_device::set_cki_bus() |
| 584 | void tms0980_cpu_device::device_reset() |
| 673 | 585 | { |
| 674 | | switch( m_opcode & 0x1F8 ) |
| 586 | // common reset |
| 587 | tms1xxx_cpu_device::device_reset(); |
| 588 | |
| 589 | // pre-decode instructionset |
| 590 | m_fixed_decode.resize_and_clear(0x200); |
| 591 | m_micro_decode.resize_and_clear(0x200); |
| 592 | |
| 593 | for (int op = 0; op < 0x200; op++) |
| 675 | 594 | { |
| 676 | | case 0x008: |
| 677 | | m_cki_bus = m_read_k( 0, 0xff ); |
| 678 | | break; |
| 679 | | case 0x020: case 0x028: |
| 680 | | m_cki_bus = 0; |
| 681 | | break; |
| 682 | | case 0x030: case 0x038: |
| 683 | | m_cki_bus = tms0980_nbit_value[ m_opcode & 0x03 ]; |
| 684 | | break; |
| 685 | | case 0x000: |
| 686 | | case 0x040: case 0x048: |
| 687 | | case 0x050: case 0x058: |
| 688 | | case 0x060: case 0x068: |
| 689 | | case 0x070: case 0x078: |
| 690 | | case 0x080: case 0x088: |
| 691 | | case 0x090: case 0x098: |
| 692 | | case 0x0c0: case 0x0c8: |
| 693 | | case 0x0d0: case 0x0d8: |
| 694 | | case 0x0e0: case 0x0e8: |
| 695 | | case 0x0f0: case 0x0f8: |
| 696 | | m_cki_bus = tms0980_c4_value[ m_opcode & 0x0F ]; |
| 697 | | break; |
| 698 | | default: |
| 699 | | m_cki_bus = 0x0F; |
| 700 | | break; |
| 595 | // upper half of the opcodes is always branch/call |
| 596 | if (op & 0x100) |
| 597 | m_fixed_decode[op] = (op & 0x80) ? F_CALL: F_BR; |
| 598 | |
| 599 | UINT32 imask = m_ipla->read(op); |
| 600 | |
| 601 | // 6 output bits select a microinstruction index |
| 602 | m_micro_decode[op] = decode_micro(imask & 0x3f); |
| 603 | |
| 604 | // the other ipla terms each select a fixed instruction |
| 605 | const UINT32 id[15] = { F_LDP, F_SBL, F_OFF, F_RBIT, F_SAL, F_XDA, F_REAC, F_SETR, F_RETN, F_SBIT, F_TDO, F_COMX8, F_COMX, F_LDX, F_SEAC }; |
| 606 | |
| 607 | for (int bit = 0; bit < 15; bit++) |
| 608 | if (imask & (0x80 << bit)) |
| 609 | m_fixed_decode[op] |= id[bit]; |
| 701 | 610 | } |
| 611 | |
| 612 | // like on TMS0970, one of the terms directly select a microinstruction index (via R4-R8), |
| 613 | // but it can't be pre-determined when it's active |
| 614 | m_micro_direct.resize_and_clear(0x40); |
| 615 | |
| 616 | for (int op = 0; op < 0x40; op++) |
| 617 | m_micro_direct[op] = decode_micro(op); |
| 702 | 618 | } |
| 703 | 619 | |
| 704 | 620 | |
| 705 | | void tms1xxx_cpu_device::execute_run() |
| 621 | |
| 622 | |
| 623 | |
| 624 | void tms1xxx_cpu_device::next_pc() |
| 706 | 625 | { |
| 707 | | do |
| 708 | | { |
| 709 | | m_icount--; |
| 710 | | switch( m_subcycle ) |
| 711 | | { |
| 712 | | case 0: |
| 713 | | /* fetch: rom address 0 */ |
| 714 | | /* execute: read ram, alu input, execute br/call, k input valid */ |
| 715 | | set_cki_bus(); |
| 716 | | m_ram_data = m_data->read_byte( m_ram_address ); |
| 717 | | m_status = 1; |
| 718 | | m_p = 0; |
| 719 | | m_n = 0; |
| 720 | | m_carry_in = 0; |
| 721 | | break; |
| 722 | | case 1: |
| 723 | | /* fetch: rom address 1 */ |
| 724 | | m_rom_address = ( m_ca << ( m_pc_size + 4 ) ) | ( m_pa << m_pc_size ) | m_pc; |
| 725 | | /* execute: k input valid */ |
| 726 | | if ( m_decode & MICRO_MASK ) |
| 727 | | { |
| 728 | | /* Check N inputs */ |
| 729 | | if ( m_decode & ( M_15TN | M_ATN | M_CKN | M_MTN | M_NATN ) ) |
| 730 | | { |
| 731 | | m_n = 0; |
| 732 | | if ( m_decode & M_15TN ) |
| 733 | | { |
| 734 | | m_n |= 0x0F; |
| 735 | | } |
| 736 | | if ( m_decode & M_ATN ) |
| 737 | | { |
| 738 | | m_n |= m_a; |
| 739 | | } |
| 740 | | if ( m_decode & M_CKN ) |
| 741 | | { |
| 742 | | m_n |= m_cki_bus; |
| 743 | | } |
| 744 | | if ( m_decode & M_MTN ) |
| 745 | | { |
| 746 | | m_n |= m_ram_data; |
| 747 | | } |
| 748 | | if ( m_decode & M_NATN ) |
| 749 | | { |
| 750 | | m_n |= ( ( ~m_a ) & 0x0F ); |
| 751 | | } |
| 752 | | } |
| 626 | // The program counter is a LFSR. To put it simply, the feedback bit is a XOR of the two highest bits, |
| 627 | // but it makes an exception when all low bits are set (eg. in TMS1000 case, when PC is 0x1f or 0x3f). |
| 628 | int high = 1 << (m_pc_bits - 1); |
| 629 | int fb = (m_pc << 1 & high) == (m_pc & high); |
| 753 | 630 | |
| 631 | if (m_pc == (m_pc_mask >> 1)) |
| 632 | fb = 1; |
| 633 | else if (m_pc == m_pc_mask) |
| 634 | fb = 0; |
| 635 | |
| 636 | m_pc = (m_pc << 1 | fb) & m_pc_mask; |
| 637 | } |
| 754 | 638 | |
| 755 | | /* Check P inputs */ |
| 756 | | if ( m_decode & ( M_CKP | M_DMTP | M_MTP | M_NDMTP | M_YTP ) ) |
| 757 | | { |
| 758 | | m_p = 0; |
| 759 | | if ( m_decode & M_CKP ) |
| 760 | | { |
| 761 | | m_p |= m_cki_bus; |
| 762 | | } |
| 763 | | if ( m_decode & M_DMTP ) |
| 764 | | { |
| 765 | | m_p |= m_dam; |
| 766 | | } |
| 767 | | if ( m_decode & M_MTP ) |
| 768 | | { |
| 769 | | m_p |= m_ram_data; |
| 770 | | } |
| 771 | | if ( m_decode & M_NDMTP ) |
| 772 | | { |
| 773 | | m_p |= ( ( ~m_dam ) & 0x0F ); |
| 774 | | } |
| 775 | | if ( m_decode & M_YTP ) |
| 776 | | { |
| 777 | | m_p |= m_y; |
| 778 | | } |
| 779 | | } |
| 639 | void tms1xxx_cpu_device::read_opcode() |
| 640 | { |
| 641 | debugger_instruction_hook(this, m_rom_address); |
| 642 | m_opcode = m_program->read_byte(m_rom_address); |
| 643 | m_c4 = BITSWAP8(m_opcode,7,6,5,4,0,1,2,3) & 0xf; // opcode operand is bitswapped for most opcodes |
| 780 | 644 | |
| 781 | | /* Carry In input */ |
| 782 | | if ( m_decode & M_CIN ) |
| 783 | | { |
| 784 | | m_carry_in = 1; |
| 785 | | } |
| 786 | | } |
| 645 | m_fixed = m_fixed_decode[m_opcode]; |
| 646 | m_micro = m_micro_decode[m_opcode]; |
| 647 | |
| 648 | next_pc(); |
| 649 | } |
| 650 | |
| 651 | void tms0980_cpu_device::read_opcode() |
| 652 | { |
| 653 | debugger_instruction_hook(this, m_rom_address << 1); |
| 654 | m_opcode = m_program->read_word(m_rom_address << 1) & 0x1ff; |
| 655 | m_c4 = BITSWAP8(m_opcode,7,6,5,4,0,1,2,3) & 0xf; // opcode operand is bitswapped for most opcodes |
| 656 | |
| 657 | m_fixed = m_fixed_decode[m_opcode]; |
| 658 | |
| 659 | // if ipla term 0 is active, R4-R8 directly select a microinstruction index when R0 or R0^BL is 0 |
| 660 | int r0 = m_opcode >> 8 & 1; |
| 661 | if (m_ipla->read(m_opcode) & 0x40 && !((r0 & m_bl) ^ r0)) |
| 662 | m_micro = m_micro_direct[m_opcode & 0x3f]; |
| 663 | else |
| 664 | m_micro = m_micro_decode[m_opcode]; |
| 665 | |
| 666 | next_pc(); |
| 667 | } |
| 668 | |
| 669 | |
| 670 | void tms1xxx_cpu_device::write_o_output(UINT8 data) |
| 671 | { |
| 672 | // a hardcoded table is supported if the output pla is unknown |
| 673 | m_o = (c_output_pla == NULL) ? m_opla->read(data) : c_output_pla[data]; |
| 674 | |
| 675 | if ((m_o & 0xff00) == 0xff00) |
| 676 | logerror("unknown output pla mapping for index %02X\n", data); |
| 677 | |
| 678 | m_write_o(0, m_o & m_o_mask, 0xffff); |
| 679 | } |
| 680 | |
| 681 | void tms0970_cpu_device::write_o_output(UINT8 data) |
| 682 | { |
| 683 | m_o = m_spla->read(data); |
| 684 | m_write_o(0, m_o & m_o_mask, 0xffff); |
| 685 | } |
| 686 | |
| 687 | UINT8 tms1xxx_cpu_device::read_k_input() |
| 688 | { |
| 689 | // K1,2,4,8,3 (KC test pin is not emulated) |
| 690 | UINT8 k = m_read_k(0, 0xff) & m_k_mask; |
| 691 | UINT8 k3 = (k & 0x10) ? 3: 0; // the K3 line that is on some chips, is simply K1|K2 |
| 692 | return (k & 0xf) | k3; |
| 693 | } |
| 694 | |
| 695 | |
| 696 | void tms1xxx_cpu_device::set_cki_bus() |
| 697 | { |
| 698 | switch (m_opcode & 0xf8) |
| 699 | { |
| 700 | // 00001XXX: K-inputs |
| 701 | case 0x08: |
| 702 | m_cki_bus = read_k_input(); |
| 787 | 703 | break; |
| 788 | | case 2: |
| 789 | | /* fetch: nothing */ |
| 790 | | /* execute: write ram */ |
| 791 | | /* perform adder logic */ |
| 792 | | m_adder_result = m_p + m_n + m_carry_in; |
| 793 | | if ( m_decode & MICRO_MASK ) |
| 794 | | { |
| 795 | | if ( m_decode & M_NE ) |
| 796 | | { |
| 797 | | if ( m_n == m_p ) |
| 798 | | { |
| 799 | | m_status = 0; |
| 800 | | } |
| 801 | | } |
| 802 | | if ( m_decode & M_C8 ) |
| 803 | | { |
| 804 | | m_status = m_adder_result >> 4; |
| 805 | | } |
| 806 | | if ( m_decode & M_STO ) |
| 807 | | { |
| 808 | | m_data->write_byte( m_ram_address, m_a ); |
| 809 | | } |
| 810 | | if ( m_decode & M_CKM ) |
| 811 | | { |
| 812 | | m_data->write_byte( m_ram_address, m_cki_bus ); |
| 813 | | } |
| 814 | | } |
| 815 | | else |
| 816 | | { |
| 817 | | if ( m_decode & F_SBIT ) |
| 818 | | { |
| 819 | | m_data->write_byte( m_ram_address, m_ram_data | tms0980_bit_value[ m_opcode & 0x03 ] ); |
| 820 | | } |
| 821 | | if ( m_decode & F_RBIT ) |
| 822 | | { |
| 823 | | m_data->write_byte( m_ram_address, m_ram_data & tms0980_nbit_value[ m_opcode & 0x03 ] ); |
| 824 | | } |
| 825 | | if ( m_decode & F_SETR ) |
| 826 | | { |
| 827 | | m_r = m_r | ( 1 << m_y ); |
| 828 | | m_write_r( 0, m_r & m_r_mask, 0xffff ); |
| 829 | | } |
| 830 | | if ( m_decode & F_RSTR ) |
| 831 | | { |
| 832 | | m_r = m_r & ( ~( 1 << m_y ) ); |
| 833 | | m_write_r( 0, m_r & m_r_mask, 0xffff ); |
| 834 | | } |
| 835 | | if ( m_decode & F_TDO ) |
| 836 | | { |
| 837 | | /* Calculate O-outputs based on status latch, A, and the output PLA configuration */ |
| 838 | | m_o = c_output_pla[ ( m_status_latch << 4 ) | m_a ]; |
| 839 | | if ( ( c_output_pla[ ( m_status_latch << 4 ) | m_a ] & 0xFF00 ) == 0xFF00 ) |
| 840 | | { |
| 841 | | logerror("unknown output pla mapping for status latch = %d and a = %X\n", m_status_latch, m_a); |
| 842 | | } |
| 843 | 704 | |
| 844 | | m_write_o( 0, m_o & m_o_mask, 0xffff ); |
| 845 | | } |
| 846 | | if ( m_decode & F_CLO ) |
| 847 | | { |
| 848 | | m_o = 0; |
| 849 | | m_write_o( 0, m_o & m_o_mask, 0xffff ); |
| 850 | | } |
| 851 | | if ( m_decode & F_LDX ) |
| 852 | | { |
| 853 | | switch( m_x_bits ) |
| 854 | | { |
| 855 | | case 2: |
| 856 | | m_x = tms0980_c2_value[ m_opcode & 0x03 ]; |
| 857 | | break; |
| 858 | | case 3: |
| 859 | | m_x = tms0980_c3_value[ m_opcode & 0x07 ]; |
| 860 | | break; |
| 861 | | case 4: |
| 862 | | m_x = tms0980_c4_value[ m_opcode & 0x0f ]; |
| 863 | | break; |
| 864 | | } |
| 865 | | } |
| 866 | | if ( m_decode & F_COMX ) |
| 867 | | { |
| 868 | | switch ( m_x_bits ) |
| 869 | | { |
| 870 | | case 2: |
| 871 | | m_x = m_x ^ 0x03; |
| 872 | | break; |
| 873 | | case 3: |
| 874 | | m_x = m_x ^ 0x07; |
| 875 | | break; |
| 876 | | case 4: |
| 877 | | m_x = m_x ^ 0x0f; |
| 878 | | break; |
| 879 | | } |
| 880 | | } |
| 881 | | if ( m_decode & F_COMC ) |
| 882 | | { |
| 883 | | m_cb = m_cb ^ 0x01; |
| 884 | | } |
| 885 | | if ( m_decode & F_LDP ) |
| 886 | | { |
| 887 | | m_pb = tms0980_c4_value[ m_opcode & 0x0F ]; |
| 888 | | } |
| 889 | | if ( m_decode & F_REAC ) |
| 890 | | { |
| 891 | | m_special_status = 0; |
| 892 | | } |
| 893 | | if ( m_decode & F_SEAC ) |
| 894 | | { |
| 895 | | m_special_status = 1; |
| 896 | | } |
| 897 | | if ( m_decode == F_SAL ) |
| 898 | | { |
| 899 | | m_add_latch = 1; |
| 900 | | } |
| 901 | | if ( m_decode == F_SBL ) |
| 902 | | { |
| 903 | | m_branch_latch = 1; |
| 904 | | } |
| 905 | | } |
| 705 | // 0011XXXX: select bit |
| 706 | case 0x30: case 0x38: |
| 707 | m_cki_bus = 1 << (m_c4 >> 2) ^ 0xf; |
| 906 | 708 | break; |
| 907 | | case 3: |
| 908 | | /* fetch: fetch, update pc, ram address */ |
| 909 | | /* execute: register store */ |
| 709 | |
| 710 | // 01XXXXXX: constant |
| 711 | case 0x00: // R2,3,4 are NANDed with eachother, and then ORed with R1, making 00000XXX valid too |
| 712 | case 0x40: case 0x48: case 0x50: case 0x58: case 0x60: case 0x68: case 0x70: case 0x78: |
| 713 | m_cki_bus = m_c4; |
| 910 | 714 | break; |
| 911 | | case 4: |
| 912 | | /* execute: register store */ |
| 913 | | if ( m_decode & MICRO_MASK ) |
| 914 | | { |
| 915 | | if ( m_decode & M_AUTA ) |
| 916 | | { |
| 917 | | m_a = m_adder_result & 0x0F; |
| 918 | | } |
| 919 | | if ( m_decode & M_AUTY ) |
| 920 | | { |
| 921 | | m_y = m_adder_result & 0x0F; |
| 922 | | } |
| 923 | | if ( m_decode & M_STSL ) |
| 924 | | { |
| 925 | | m_status_latch = m_status; |
| 926 | | } |
| 927 | | } |
| 928 | | /* fetch: fetch, update pc, ram address */ |
| 929 | | if ( m_byte_size > 8 ) |
| 930 | | { |
| 931 | | debugger_instruction_hook( this, m_rom_address << 1 ); |
| 932 | | m_opcode = m_program->read_word( m_rom_address << 1 ) & 0x1FF; |
| 933 | | } |
| 934 | | else |
| 935 | | { |
| 936 | | debugger_instruction_hook( this, m_rom_address ); |
| 937 | | m_opcode = m_program->read_byte( m_rom_address ); |
| 938 | | } |
| 939 | | next_pc(); |
| 940 | 715 | |
| 941 | | /* ram address */ |
| 942 | | m_ram_address = ( m_x << 4 ) | m_y; |
| 716 | default: |
| 717 | m_cki_bus = 0; |
| 943 | 718 | break; |
| 944 | | case 5: |
| 945 | | /* fetch: instruction decode */ |
| 946 | | m_decode = m_decode_table[ m_opcode ]; |
| 947 | | /* execute: execute br/call */ |
| 948 | | if ( m_status ) |
| 949 | | { |
| 950 | | if ( m_decode == F_BR ) |
| 951 | | { |
| 952 | | m_ca = m_cb; |
| 953 | | if ( m_call_latch == 0 ) |
| 954 | | { |
| 955 | | m_pa = m_pb; |
| 956 | | } |
| 957 | | m_pc = m_opcode & ( ( 1 << m_pc_size ) - 1 ); |
| 958 | | } |
| 959 | | if ( m_decode == F_CALL ) |
| 960 | | { |
| 961 | | UINT8 t = m_pa; |
| 962 | | if ( m_call_latch == 0 ) |
| 963 | | { |
| 964 | | m_sr = m_pc; |
| 965 | | m_call_latch = 1; |
| 966 | | m_pa = m_pb; |
| 967 | | m_cs = m_ca; |
| 968 | | } |
| 969 | | m_ca = m_cb; |
| 970 | | m_pb = t; |
| 971 | | m_pc = m_opcode & ( ( 1 << m_pc_size ) - 1 ); |
| 972 | | } |
| 973 | | } |
| 974 | | if ( m_decode == F_RETN ) |
| 975 | | { |
| 976 | | if ( m_call_latch == 1 ) |
| 977 | | { |
| 978 | | m_pc = m_sr; |
| 979 | | m_call_latch = 0; |
| 980 | | m_ca = m_cs; |
| 981 | | } |
| 982 | | m_add_latch = 0; |
| 983 | | m_pa = m_pb; |
| 984 | | } else { |
| 985 | | m_branch_latch = 0; |
| 986 | | } |
| 987 | | break; |
| 988 | | } |
| 989 | | m_subcycle = ( m_subcycle + 1 ) % 6; |
| 990 | | } while( m_icount > 0 ); |
| 719 | } |
| 991 | 720 | } |
| 992 | 721 | |
| 993 | | |
| 994 | | void tms0980_cpu_device::state_string_export(const device_state_entry &entry, astring &string) |
| 722 | void tms0980_cpu_device::set_cki_bus() |
| 995 | 723 | { |
| 996 | | switch( entry.index() ) |
| 724 | switch (m_opcode & 0x1f8) |
| 997 | 725 | { |
| 998 | | case STATE_GENPC: |
| 999 | | string.printf( "%03X", ( ( m_pa << 7 ) | m_pc ) << 1 ); |
| 726 | // 000001XXX: K-inputs |
| 727 | case 0x008: |
| 728 | m_cki_bus = read_k_input(); |
| 1000 | 729 | break; |
| 730 | |
| 731 | // 0X0100XXX: select bit |
| 732 | case 0x020: case 0x0a0: |
| 733 | m_cki_bus = 1 << (m_c4 >> 2) ^ 0xf; |
| 734 | break; |
| 735 | |
| 736 | // 0X1XXXXXX: constant |
| 737 | case 0x040: case 0x048: case 0x050: case 0x058: case 0x060: case 0x068: case 0x070: case 0x078: |
| 738 | case 0x0c0: case 0x0c8: case 0x0d0: case 0x0d8: case 0x0e0: case 0x0e8: case 0x0f0: case 0x0f8: |
| 739 | m_cki_bus = m_c4; |
| 740 | break; |
| 741 | |
| 742 | default: |
| 743 | m_cki_bus = 0; |
| 744 | break; |
| 1001 | 745 | } |
| 1002 | 746 | } |
| 1003 | 747 | |
| 1004 | 748 | |
| 1005 | | void tms1000_cpu_device::state_string_export(const device_state_entry &entry, astring &string) |
| 749 | // fixed opcode set |
| 750 | |
| 751 | // TMS1000/common: |
| 752 | |
| 753 | void tms1xxx_cpu_device::op_sbit() |
| 1006 | 754 | { |
| 1007 | | switch( entry.index() ) |
| 1008 | | { |
| 1009 | | case STATE_GENPC: |
| 1010 | | string.printf( "%03X", ( m_pa << 6 ) | tms1000_pc_decode[ m_pc ] ); |
| 1011 | | break; |
| 1012 | | } |
| 755 | // SBIT: set memory bit |
| 756 | if (m_ram_out == -1) |
| 757 | m_ram_out = m_ram_in; |
| 758 | m_ram_out |= (m_cki_bus ^ 0xf); |
| 1013 | 759 | } |
| 1014 | 760 | |
| 761 | void tms1xxx_cpu_device::op_rbit() |
| 762 | { |
| 763 | // RBIT: reset memory bit |
| 764 | if (m_ram_out == -1) |
| 765 | m_ram_out = m_ram_in; |
| 766 | m_ram_out &= m_cki_bus; |
| 767 | } |
| 1015 | 768 | |
| 1016 | | void tms1100_cpu_device::state_string_export(const device_state_entry &entry, astring &string) |
| 769 | void tms1xxx_cpu_device::op_setr() |
| 1017 | 770 | { |
| 1018 | | switch( entry.index() ) |
| 1019 | | { |
| 1020 | | case STATE_GENPC: |
| 1021 | | string.printf( "%03X", ( m_ca << 10 ) | ( m_pa << 6 ) | m_pc ); |
| 1022 | | break; |
| 1023 | | } |
| 771 | // SETR: set one R-output line |
| 772 | m_r = m_r | (1 << m_y); |
| 773 | m_write_r(0, m_r & m_r_mask, 0xffff); |
| 1024 | 774 | } |
| 1025 | 775 | |
| 776 | void tms1xxx_cpu_device::op_rstr() |
| 777 | { |
| 778 | // RSTR: reset one R-output line |
| 779 | m_r = m_r & ~(1 << m_y); |
| 780 | m_write_r(0, m_r & m_r_mask, 0xffff); |
| 781 | } |
| 1026 | 782 | |
| 1027 | | tms0980_cpu_device::tms0980_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1028 | | : tms1xxx_cpu_device( mconfig, TMS0980, "TMS0980", tag, owner, clock, tms0980_decode, 0x00ff, 0x07ff, 7, 9, 4 |
| 1029 | | , 12, ADDRESS_MAP_NAME( program_11bit_9 ), 8, ADDRESS_MAP_NAME( data_64x9_as4 ), "tms0980", __FILE__) |
| 783 | void tms1xxx_cpu_device::op_tdo() |
| 1030 | 784 | { |
| 785 | // TDO: transfer accumulator and status latch to O-output |
| 786 | write_o_output(m_status_latch << 4 | m_a); |
| 1031 | 787 | } |
| 1032 | 788 | |
| 789 | void tms1xxx_cpu_device::op_clo() |
| 790 | { |
| 791 | // CLO: clear O-output |
| 792 | write_o_output(0); |
| 793 | } |
| 1033 | 794 | |
| 1034 | | offs_t tms0980_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 795 | void tms1xxx_cpu_device::op_ldx() |
| 1035 | 796 | { |
| 1036 | | extern CPU_DISASSEMBLE( tms0980 ); |
| 1037 | | return CPU_DISASSEMBLE_NAME(tms0980)(this, buffer, pc, oprom, opram, options); |
| 797 | // LDX: load X register with (x_bits) constant |
| 798 | m_x = m_c4 >> (4-m_x_bits); |
| 1038 | 799 | } |
| 1039 | 800 | |
| 801 | void tms1xxx_cpu_device::op_comx() |
| 802 | { |
| 803 | // COMX: complement X register |
| 804 | m_x ^= m_x_mask; |
| 805 | } |
| 1040 | 806 | |
| 1041 | | tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1042 | | : tms1xxx_cpu_device( mconfig, TMS1000, "TMS1000", tag, owner, clock, tms1000_default_decode, 0x00ff, 0x07ff, 6, 8, 2 |
| 1043 | | , 10, ADDRESS_MAP_NAME( program_10bit_8 ), 6, ADDRESS_MAP_NAME( data_64x4 ), "tms1000", __FILE__) |
| 807 | void tms1xxx_cpu_device::op_comx8() |
| 1044 | 808 | { |
| 809 | // COMX8: complement MSB of X register |
| 810 | // note: on TMS1100, the mnemonic is simply called "COMX" |
| 811 | m_x ^= 1 << (m_x_bits-1); |
| 1045 | 812 | } |
| 1046 | 813 | |
| 814 | void tms1xxx_cpu_device::op_ldp() |
| 815 | { |
| 816 | // LDP: load page buffer with constant |
| 817 | m_pb = m_c4; |
| 818 | } |
| 1047 | 819 | |
| 1048 | | tms1000_cpu_device::tms1000_cpu_device(const machine_config &mconfig, device_type type, const char*name, const char *tag, device_t *owner, UINT32 clock, UINT16 o_mask, UINT16 r_mask, const char *shortname, const char *source) |
| 1049 | | : tms1xxx_cpu_device( mconfig, type, name, tag, owner, clock, tms1000_default_decode, o_mask, r_mask, 6, 8, 2 |
| 1050 | | , 10, ADDRESS_MAP_NAME( program_10bit_8 ), 6, ADDRESS_MAP_NAME( data_64x4 ), shortname, source ) |
| 820 | |
| 821 | // TMS1100-specific |
| 822 | |
| 823 | void tms1100_cpu_device::op_setr() |
| 1051 | 824 | { |
| 825 | // SETR: same, but X register MSB must be clear |
| 826 | if (~m_x & (1 << (m_x_bits-1))) |
| 827 | tms1xxx_cpu_device::op_setr(); |
| 1052 | 828 | } |
| 1053 | 829 | |
| 830 | void tms1100_cpu_device::op_rstr() |
| 831 | { |
| 832 | // RSTR: same, but X register MSB must be clear |
| 833 | if (~m_x & (1 << (m_x_bits-1))) |
| 834 | tms1xxx_cpu_device::op_rstr(); |
| 835 | } |
| 1054 | 836 | |
| 1055 | | offs_t tms1000_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 837 | void tms1xxx_cpu_device::op_comc() |
| 1056 | 838 | { |
| 1057 | | extern CPU_DISASSEMBLE( tms1000 ); |
| 1058 | | return CPU_DISASSEMBLE_NAME(tms1000)(this, buffer, pc, oprom, opram, options); |
| 839 | // COMC: complement chapter buffer |
| 840 | m_cb ^= 1; |
| 1059 | 841 | } |
| 1060 | 842 | |
| 1061 | 843 | |
| 1062 | | tms0970_cpu_device::tms0970_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1063 | | : tms1000_cpu_device( mconfig, TMS0970, "TMS0970", tag, owner, clock, 0x00ff, 0x07ff, "tms0970", __FILE__) |
| 844 | // TMS09x0-specific |
| 845 | void tms0970_cpu_device::op_setr() |
| 1064 | 846 | { |
| 847 | // SETR: set output register |
| 848 | // DDIG line is a coincidence between the selected output pla row(s) and segment pla row(s) |
| 849 | int ddig = (m_opla->read(m_a) & m_o) ? 0 : 1; |
| 850 | m_r = (m_r & ~(1 << m_y)) | (ddig << m_y); |
| 1065 | 851 | } |
| 1066 | 852 | |
| 1067 | | tms1070_cpu_device::tms1070_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1068 | | : tms1000_cpu_device( mconfig, TMS1070, "TMS1070", tag, owner, clock, 0x00ff, 0x07ff, "tms1070", __FILE__) |
| 853 | void tms0970_cpu_device::op_tdo() |
| 1069 | 854 | { |
| 855 | // TDO: transfer digits to output |
| 856 | write_o_output(m_a & 0x7); |
| 857 | m_write_r(0, m_r & m_r_mask, 0xffff); |
| 1070 | 858 | } |
| 1071 | 859 | |
| 1072 | 860 | |
| 1073 | | tms1200_cpu_device::tms1200_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1074 | | : tms1000_cpu_device( mconfig, TMS1200, "TMS1200", tag, owner, clock, 0x00ff, 0x1fff, "tms1200", __FILE__) |
| 861 | // TMS0980-specific |
| 862 | void tms0980_cpu_device::op_comx() |
| 1075 | 863 | { |
| 864 | // COMX: complement X register, but not the MSB |
| 865 | m_x ^= (m_x_mask >> 1); |
| 1076 | 866 | } |
| 1077 | 867 | |
| 868 | void tms1xxx_cpu_device::op_xda() |
| 869 | { |
| 870 | // XDA: exchange DAM and A |
| 871 | // note: setting A to DAM is done with DMTP and AUTA during this instruction |
| 872 | m_ram_address |= (0x10 << (m_x_bits-1)); |
| 873 | } |
| 1078 | 874 | |
| 1079 | | tms1270_cpu_device::tms1270_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1080 | | : tms1000_cpu_device( mconfig, TMS1270, "TMS1270", tag, owner, clock, 0x03ff, 0x1fff, "tms1270", __FILE__) |
| 875 | void tms1xxx_cpu_device::op_off() |
| 1081 | 876 | { |
| 877 | // OFF: request power off |
| 878 | logerror("%s: power-off request\n", tag()); |
| 879 | m_power_off(1); |
| 1082 | 880 | } |
| 1083 | 881 | |
| 882 | void tms1xxx_cpu_device::op_seac() |
| 883 | { |
| 884 | // SEAC: set end around carry |
| 885 | m_eac = 1; |
| 886 | } |
| 1084 | 887 | |
| 1085 | | tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1086 | | : tms1xxx_cpu_device( mconfig, TMS1100, "TMS1100", tag, owner, clock, tms1100_default_decode, 0x00ff, 0x07ff, 6, 8, 3 |
| 1087 | | , 11, ADDRESS_MAP_NAME( program_11bit_8 ), 7, ADDRESS_MAP_NAME( data_128x4 ), "tms1100", __FILE__ ) |
| 888 | void tms1xxx_cpu_device::op_reac() |
| 1088 | 889 | { |
| 890 | // REAC: reset end around carry |
| 891 | m_eac = 0; |
| 1089 | 892 | } |
| 1090 | 893 | |
| 894 | void tms1xxx_cpu_device::op_sal() |
| 895 | { |
| 896 | // SAL: set add latch (reset is done with RETN) |
| 897 | m_add = 1; |
| 898 | } |
| 1091 | 899 | |
| 1092 | | tms1100_cpu_device::tms1100_cpu_device(const machine_config &mconfig, device_type type, const char*name, const char *tag, device_t *owner, UINT32 clock, UINT16 o_mask, UINT16 r_mask, const char *shortname, const char *source) |
| 1093 | | : tms1xxx_cpu_device( mconfig, type, name, tag, owner, clock, tms1100_default_decode, o_mask, r_mask, 6, 8, 3 |
| 1094 | | , 11, ADDRESS_MAP_NAME( program_11bit_8 ), 7, ADDRESS_MAP_NAME( data_128x4 ), shortname, source ) |
| 900 | void tms1xxx_cpu_device::op_sbl() |
| 1095 | 901 | { |
| 902 | // SBL: set branch latch (reset is done with RETN) |
| 903 | m_bl = 1; |
| 1096 | 904 | } |
| 1097 | 905 | |
| 1098 | 906 | |
| 1099 | | offs_t tms1100_cpu_device::disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options) |
| 907 | void tms1xxx_cpu_device::execute_fixed_opcode() |
| 1100 | 908 | { |
| 1101 | | extern CPU_DISASSEMBLE( tms1100 ); |
| 1102 | | return CPU_DISASSEMBLE_NAME(tms1100)(this, buffer, pc, oprom, opram, options); |
| 909 | switch (m_fixed) |
| 910 | { |
| 911 | case F_SBIT: op_sbit(); break; |
| 912 | case F_RBIT: op_rbit(); break; |
| 913 | case F_SETR: op_setr(); break; |
| 914 | case F_RSTR: op_rstr(); break; |
| 915 | case F_TDO: op_tdo(); break; |
| 916 | case F_CLO: op_clo(); break; |
| 917 | case F_LDX: op_ldx(); break; |
| 918 | case F_COMX: op_comx(); break; |
| 919 | case F_COMX8:op_comx8();break; |
| 920 | case F_LDP: op_ldp(); break; |
| 921 | case F_COMC: op_comc(); break; |
| 922 | case F_OFF: op_off(); break; |
| 923 | case F_SEAC: op_seac(); break; |
| 924 | case F_REAC: op_reac(); break; |
| 925 | case F_SAL: op_sal(); break; |
| 926 | case F_SBL: op_sbl(); break; |
| 927 | case F_XDA: op_xda(); break; |
| 928 | |
| 929 | default: |
| 930 | // BR, CALL, RETN are handled in execute_run |
| 931 | if (m_fixed & ~(F_BR | F_CALL | F_RETN)) |
| 932 | fatalerror("%s unsupported fixed opcode %03X %04X!\n", tag(), m_opcode, m_fixed); |
| 933 | break; |
| 934 | } |
| 1103 | 935 | } |
| 1104 | 936 | |
| 1105 | 937 | |
| 1106 | | tms1300_cpu_device::tms1300_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) |
| 1107 | | : tms1100_cpu_device( mconfig, TMS1300, "TMS1300", tag, owner, clock, 0x00ff, 0xffff, "tms1300", __FILE__ ) |
| 938 | |
| 939 | void tms1xxx_cpu_device::execute_run() |
| 1108 | 940 | { |
| 941 | do |
| 942 | { |
| 943 | m_icount--; |
| 944 | switch (m_subcycle) |
| 945 | { |
| 946 | case 0: |
| 947 | // fetch: rom address 1/2 |
| 948 | |
| 949 | // execute: br/call 2/2 |
| 950 | // note: add(latch) and bl(branch latch) are specific to 0980 series, |
| 951 | // c(chapter) bits are specific to 1100 series |
| 952 | if (m_status) |
| 953 | { |
| 954 | UINT8 new_pc = m_opcode & m_pc_mask; |
| 955 | |
| 956 | // BR: conditional branch |
| 957 | if (m_fixed & F_BR) |
| 958 | { |
| 959 | if (m_clatch == 0) |
| 960 | m_pa = m_pb; |
| 961 | m_ca = m_cb; |
| 962 | m_pc = new_pc; |
| 963 | } |
| 964 | |
| 965 | // CALL: conditional call |
| 966 | if (m_fixed & F_CALL) |
| 967 | { |
| 968 | UINT8 prev_pa = m_pa; |
| 969 | if (m_clatch == 0) |
| 970 | { |
| 971 | m_sr = m_pc; |
| 972 | m_clatch = 1; |
| 973 | m_pa = m_pb; |
| 974 | m_cs = m_ca; |
| 975 | } |
| 976 | m_ca = m_cb; |
| 977 | m_pb = prev_pa; |
| 978 | m_pc = new_pc; |
| 979 | } |
| 980 | } |
| 981 | |
| 982 | // RETN: return from subroutine |
| 983 | if (m_fixed & F_RETN) |
| 984 | { |
| 985 | if (m_clatch == 1) |
| 986 | { |
| 987 | m_pc = m_sr; |
| 988 | m_clatch = 0; |
| 989 | m_ca = m_cs; |
| 990 | } |
| 991 | m_add = 0; |
| 992 | m_bl = 0; |
| 993 | m_pa = m_pb; |
| 994 | } |
| 995 | |
| 996 | // execute: k input valid, read ram, clear alu inputs |
| 997 | set_cki_bus(); |
| 998 | m_ram_in = m_data->read_byte(m_ram_address) & 0xf; |
| 999 | m_dam_in = m_data->read_byte(m_ram_address | (0x10 << (m_x_bits-1))) & 0xf; |
| 1000 | m_ram_out = -1; |
| 1001 | m_status = 1; |
| 1002 | m_p = 0; |
| 1003 | m_n = 0; |
| 1004 | m_carry_in = 0; |
| 1005 | |
| 1006 | break; |
| 1007 | |
| 1008 | case 1: |
| 1009 | // fetch: rom address 2/2 |
| 1010 | m_rom_address = (m_ca << (m_pc_bits+4)) | (m_pa << m_pc_bits) | m_pc; |
| 1011 | |
| 1012 | // execute: update alu inputs |
| 1013 | // N inputs |
| 1014 | if (m_micro & M_15TN) m_n |= 0xf; |
| 1015 | if (m_micro & M_ATN) m_n |= m_a; |
| 1016 | if (m_micro & M_NATN) m_n |= (~m_a & 0xf); |
| 1017 | if (m_micro & M_CKN) m_n |= m_cki_bus; |
| 1018 | if (m_micro & M_MTN) m_n |= m_ram_in; |
| 1019 | |
| 1020 | // P inputs |
| 1021 | if (m_micro & M_CKP) m_p |= m_cki_bus; |
| 1022 | if (m_micro & M_MTP) m_p |= m_ram_in; |
| 1023 | if (m_micro & M_YTP) m_p |= m_y; |
| 1024 | if (m_micro & M_DMTP) m_p |= m_dam_in; |
| 1025 | if (m_micro & M_NDMTP) m_p |= (~m_dam_in & 0xf); |
| 1026 | |
| 1027 | // carry input |
| 1028 | if (m_micro & M_CIN) m_carry_in |= 1; |
| 1029 | if (m_micro & M_SSS) m_carry_in |= m_eac; |
| 1030 | |
| 1031 | break; |
| 1032 | |
| 1033 | case 2: |
| 1034 | { |
| 1035 | // fetch: nothing |
| 1036 | |
| 1037 | // execute: perform alu logic |
| 1038 | // note: officially, only 1 alu operation is allowed per opcode |
| 1039 | m_adder_out = m_p + m_n + m_carry_in; |
| 1040 | int carry_out = m_adder_out >> 4 & 1; |
| 1041 | |
| 1042 | if (m_micro & M_C8) m_status &= carry_out; |
| 1043 | if (m_micro & M_NE) m_status &= (m_n != m_p); // COMP |
| 1044 | |
| 1045 | if (m_micro & M_CKM) m_ram_out = m_cki_bus; |
| 1046 | |
| 1047 | // special status circuit |
| 1048 | if (m_micro & M_SSE) |
| 1049 | { |
| 1050 | m_eac = m_carry_out; |
| 1051 | if (m_add) |
| 1052 | m_eac |= carry_out; |
| 1053 | } |
| 1054 | m_carry_out = carry_out; |
| 1055 | |
| 1056 | if (m_micro & M_STO || (m_micro & M_CME && m_eac == m_add)) |
| 1057 | m_ram_out = m_a; |
| 1058 | |
| 1059 | // handle the fixed opcodes here |
| 1060 | execute_fixed_opcode(); |
| 1061 | |
| 1062 | // execute: write ram |
| 1063 | if (m_ram_out != -1) |
| 1064 | m_data->write_byte(m_ram_address, m_ram_out); |
| 1065 | |
| 1066 | break; |
| 1067 | } |
| 1068 | |
| 1069 | case 3: |
| 1070 | // fetch: update pc, ram address 1/2 |
| 1071 | // execute: register store 1/2 |
| 1072 | break; |
| 1073 | |
| 1074 | case 4: |
| 1075 | // execute: register store 2/2 |
| 1076 | if (m_micro & M_AUTA) m_a = m_adder_out & 0xf; |
| 1077 | if (m_micro & M_AUTY) m_y = m_adder_out & 0xf; |
| 1078 | if (m_micro & M_STSL) m_status_latch = m_status; |
| 1079 | |
| 1080 | // fetch: update pc, ram address 2/2 |
| 1081 | read_opcode(); |
| 1082 | m_ram_address = m_x << 4 | m_y; |
| 1083 | break; |
| 1084 | |
| 1085 | case 5: |
| 1086 | // fetch: instruction decode (handled above, before next_pc) |
| 1087 | // execute: br/call 1/2 |
| 1088 | break; |
| 1089 | } |
| 1090 | m_subcycle = (m_subcycle + 1) % 6; |
| 1091 | } while (m_icount > 0); |
| 1109 | 1092 | } |
trunk/src/mame/drivers/chihiro.c
| r242231 | r242232 | |
| 370 | 370 | #include "debug/debugcmd.h" |
| 371 | 371 | #include "debug/debugcpu.h" |
| 372 | 372 | #include "osdcore.h" |
| 373 | #include "includes/chihiro.h" |
| 373 | 374 | |
| 374 | 375 | #define LOG_PCI |
| 375 | 376 | //#define LOG_OHCI |
| 376 | | //#define LOG_NV2A |
| 377 | 377 | //#define LOG_BASEBOARD |
| 378 | 378 | |
| 379 | | class nv2a_renderer; // forw. dec. |
| 380 | | struct nvidia_object_data |
| 381 | | { |
| 382 | | nv2a_renderer *data; |
| 383 | | }; |
| 384 | | |
| 385 | 379 | class chihiro_state : public driver_device |
| 386 | 380 | { |
| 387 | 381 | public: |
| r242231 | r242232 | |
| 391 | 385 | debug_irq_active(false), |
| 392 | 386 | m_maincpu(*this, "maincpu") { } |
| 393 | 387 | |
| 394 | | DECLARE_READ32_MEMBER( geforce_r ); |
| 395 | | DECLARE_WRITE32_MEMBER( geforce_w ); |
| 396 | | DECLARE_READ32_MEMBER( usbctrl_r ); |
| 397 | | DECLARE_WRITE32_MEMBER( usbctrl_w ); |
| 398 | | DECLARE_READ32_MEMBER( smbus_r ); |
| 399 | | DECLARE_WRITE32_MEMBER( smbus_w ); |
| 400 | | DECLARE_READ32_MEMBER( mediaboard_r ); |
| 401 | | DECLARE_WRITE32_MEMBER( mediaboard_w ); |
| 402 | | DECLARE_READ32_MEMBER( audio_apu_r ); |
| 403 | | DECLARE_WRITE32_MEMBER( audio_apu_w ); |
| 404 | | DECLARE_READ32_MEMBER( audio_ac93_r ); |
| 405 | | DECLARE_WRITE32_MEMBER( audio_ac93_w ); |
| 406 | | DECLARE_READ32_MEMBER( dummy_r ); |
| 407 | | DECLARE_WRITE32_MEMBER( dummy_w ); |
| 388 | DECLARE_READ32_MEMBER(geforce_r); |
| 389 | DECLARE_WRITE32_MEMBER(geforce_w); |
| 390 | DECLARE_READ32_MEMBER(usbctrl_r); |
| 391 | DECLARE_WRITE32_MEMBER(usbctrl_w); |
| 392 | DECLARE_READ32_MEMBER(smbus_r); |
| 393 | DECLARE_WRITE32_MEMBER(smbus_w); |
| 394 | DECLARE_READ32_MEMBER(mediaboard_r); |
| 395 | DECLARE_WRITE32_MEMBER(mediaboard_w); |
| 396 | DECLARE_READ32_MEMBER(audio_apu_r); |
| 397 | DECLARE_WRITE32_MEMBER(audio_apu_w); |
| 398 | DECLARE_READ32_MEMBER(audio_ac93_r); |
| 399 | DECLARE_WRITE32_MEMBER(audio_ac93_w); |
| 400 | DECLARE_READ32_MEMBER(dummy_r); |
| 401 | DECLARE_WRITE32_MEMBER(dummy_w); |
| 408 | 402 | |
| 409 | | void smbus_register_device(int address,int (*handler)(chihiro_state &chs,int command,int rw,int data)); |
| 410 | | int smbus_pic16lc(int command,int rw,int data); |
| 411 | | int smbus_cx25871(int command,int rw,int data); |
| 412 | | int smbus_eeprom(int command,int rw,int data); |
| 413 | | void baseboard_ide_event(int type,UINT8 *read,UINT8 *write); |
| 403 | void smbus_register_device(int address, int(*handler)(chihiro_state &chs, int command, int rw, int data)); |
| 404 | int smbus_pic16lc(int command, int rw, int data); |
| 405 | int smbus_cx25871(int command, int rw, int data); |
| 406 | int smbus_eeprom(int command, int rw, int data); |
| 407 | void baseboard_ide_event(int type, UINT8 *read, UINT8 *write); |
| 414 | 408 | UINT8 *baseboard_ide_dimmboard(UINT32 lba); |
| 415 | | void dword_write_le(UINT8 *addr,UINT32 d); |
| 416 | | void word_write_le(UINT8 *addr,UINT16 d); |
| 417 | | void debug_generate_irq(int irq,bool active); |
| 409 | void dword_write_le(UINT8 *addr, UINT32 d); |
| 410 | void word_write_le(UINT8 *addr, UINT16 d); |
| 411 | void debug_generate_irq(int irq, bool active); |
| 418 | 412 | |
| 419 | 413 | void vblank_callback(screen_device &screen, bool state); |
| 420 | 414 | UINT32 screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| r242231 | r242232 | |
| 440 | 434 | int data; |
| 441 | 435 | int command; |
| 442 | 436 | int rw; |
| 443 | | int (*devices[128])(chihiro_state &chs,int command,int rw,int data); |
| 444 | | UINT32 words[256/4]; |
| 437 | int(*devices[128])(chihiro_state &chs, int command, int rw, int data); |
| 438 | UINT32 words[256 / 4]; |
| 445 | 439 | } smbusst; |
| 446 | 440 | struct apu_state { |
| 447 | | UINT32 memory[0x60000/4]; |
| 441 | UINT32 memory[0x60000 / 4]; |
| 448 | 442 | UINT32 gpdsp_sgaddress; // global processor scatter-gather |
| 449 | 443 | UINT32 gpdsp_sgblocks; |
| 450 | 444 | UINT32 gpdsp_address; |
| r242231 | r242232 | |
| 465 | 459 | address_space *space; |
| 466 | 460 | } apust; |
| 467 | 461 | struct ac97_state { |
| 468 | | UINT32 mixer_regs[0x80/4]; |
| 469 | | UINT32 controller_regs[0x38/4]; |
| 462 | UINT32 mixer_regs[0x80 / 4]; |
| 463 | UINT32 controller_regs[0x38 / 4]; |
| 470 | 464 | } ac97st; |
| 471 | 465 | UINT8 pic16lc_buffer[0xff]; |
| 472 | 466 | nv2a_renderer *nvidia_nv2a; |
| r242231 | r242232 | |
| 478 | 472 | required_device<cpu_device> m_maincpu; |
| 479 | 473 | }; |
| 480 | 474 | |
| 481 | | /* |
| 482 | | * geforce 3d (NV2A) vertex program disassembler |
| 483 | | */ |
| 484 | | class vertex_program_disassembler { |
| 485 | | static const char *srctypes[]; |
| 486 | | static const char *scaops[]; |
| 487 | | static const int scapar2[]; |
| 488 | | static const char *vecops[]; |
| 489 | | static const int vecpar2[]; |
| 490 | | static const char *vecouts[]; |
| 491 | | static const char compchar[]; |
| 492 | | int o[6]; |
| 493 | | int state; |
| 494 | | |
| 495 | | struct sourcefields |
| 496 | | { |
| 497 | | int Sign; |
| 498 | | int SwizzleX; |
| 499 | | int SwizzleY; |
| 500 | | int SwizzleZ; |
| 501 | | int SwizzleW; |
| 502 | | int TempIndex; |
| 503 | | int ParameterType; |
| 504 | | }; |
| 505 | | |
| 506 | | struct fields |
| 507 | | { |
| 508 | | int ScaOperation; |
| 509 | | int VecOperation; |
| 510 | | int SourceConstantIndex; |
| 511 | | int InputIndex; |
| 512 | | sourcefields src[3]; |
| 513 | | int VecTempWriteMask; |
| 514 | | int VecTempIndex; |
| 515 | | int ScaTempWriteMask; |
| 516 | | int OutputWriteMask; |
| 517 | | int OutputSelect; |
| 518 | | int OutputIndex; |
| 519 | | int MultiplexerControl; |
| 520 | | int Usea0x; |
| 521 | | int EndOfProgram; |
| 522 | | }; |
| 523 | | fields f; |
| 524 | | |
| 525 | | void decodefields(unsigned int *dwords, int offset, fields &decoded); |
| 526 | | int disassemble_mask(int mask, char *s); |
| 527 | | int disassemble_swizzle(sourcefields f, char *s); |
| 528 | | int disassemble_source(sourcefields f, fields fi, char *s); |
| 529 | | int disassemble_output(fields f, char *s); |
| 530 | | int output_types(fields f, int *o); |
| 531 | | public: |
| 532 | | vertex_program_disassembler() { state = 0; } |
| 533 | | int disassemble(unsigned int *instruction, char *line); |
| 534 | | }; |
| 535 | | |
| 536 | | const char *vertex_program_disassembler::srctypes[] = { "??", "Rn", "Vn", "Cn" }; |
| 537 | | const char *vertex_program_disassembler::scaops[] = { "NOP", "IMV", "RCP", "RCC", "RSQ", "EXP", "LOG", "LIT", "???", "???", "???", "???", "???", "???", "???", "???", "???" }; |
| 538 | | const int vertex_program_disassembler::scapar2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
| 539 | | const char *vertex_program_disassembler::vecops[] = { "NOP", "MOV", "MUL", "ADD", "MAD", "DP3", "DPH", "DP4", "DST", "MIN", "MAX", "SLT", "SGE", "ARL", "???", "???", "???" }; |
| 540 | | const int vertex_program_disassembler::vecpar2[] = { 0, 4, 6, 5, 7, 6, 6, 6, 6, 6, 6, 6, 6, 4, 0, 0, 0 }; |
| 541 | | const char *vertex_program_disassembler::vecouts[] = { "oPos", "???", "???", "oD0", "oD1", "oFog", "oPts", "oB0", "oB1", "oT0", "oT1", "oT2", "oT3" }; |
| 542 | | const char vertex_program_disassembler::compchar[] = { 'x', 'y', 'z', 'w' }; |
| 543 | | |
| 544 | | /* |
| 545 | | Each vertex program instruction is a 128 bit word made of the fields: |
| 546 | | d f |
| 547 | | w b i |
| 548 | | o i e |
| 549 | | r t l |
| 550 | | d s d |
| 551 | | +-+-----+------- |
| 552 | | |0|31-0 |not used |
| 553 | | +-+-----+------- |
| 554 | | | |31-29|not used |
| 555 | | | +-----+------- |
| 556 | | | |28-25|scalar operation |
| 557 | | | +-----+------- |
| 558 | | | |24-21|vectorial operation |
| 559 | | | +-----+------- |
| 560 | | | |20-13|index for source constant C[] |
| 561 | | | +-----+------- |
| 562 | | | |12-9 |input vector index |
| 563 | | | +-----+------- |
| 564 | | |1| 8 |parameter A:sign |
| 565 | | | +-----+------- |
| 566 | | | | 7-6 |parameter A:swizzle x |
| 567 | | | +-----+------- |
| 568 | | | | 5-4 |parameter A:swizzle y |
| 569 | | | +-----+------- |
| 570 | | | | 3-2 |parameter A:swizzle z |
| 571 | | | +-----+------- |
| 572 | | | | 1-0 |parameter A:swizzle w |
| 573 | | |-+-----+------- |
| 574 | | | |31-28|parameter A:parameter Rn index |
| 575 | | | +-----+------- |
| 576 | | | |27-26|parameter A:input type 1:Rn 2:Vn 3:C[n] |
| 577 | | | +-----+------- |
| 578 | | | | 25 |parameter B:sign |
| 579 | | | +-----+------- |
| 580 | | | |24-23|parameter B:swizzle x |
| 581 | | | +-----+------- |
| 582 | | | |22-21|parameter B:swizzle y |
| 583 | | | +-----+------- |
| 584 | | | |20-19|parameter B:swizzle z |
| 585 | | | +-----+------- |
| 586 | | |2|18-17|parameter B:swizzle w |
| 587 | | | +-----+------- |
| 588 | | | |16-13|parameter B:parameter Rn index |
| 589 | | | +-----+------- |
| 590 | | | |12-11|parameter B:input type 1:Rn 2:Vn 3:C[n] |
| 591 | | | +-----+------- |
| 592 | | | | 10 |parameter C:sign |
| 593 | | | +-----+------- |
| 594 | | | | 9-8 |parameter C:swizzle x |
| 595 | | | +-----+------- |
| 596 | | | | 7-6 |parameter C:swizzle y |
| 597 | | | +-----+------- |
| 598 | | | | 5-4 |parameter C:swizzle z |
| 599 | | | +-----+------- |
| 600 | | | | 3-2 |parameter C:swizzle w |
| 601 | | | +-----+------- |
| 602 | | | | 1-0 | |
| 603 | | |-+ |parameter C:parameter Rn index |
| 604 | | | |31-30| |
| 605 | | | +-----+------- |
| 606 | | | |29-28|parameter C:input type 1:Rn 2:Vn 3:C[n] |
| 607 | | | +-----+------- |
| 608 | | | |27-24|output Rn mask from vectorial operation |
| 609 | | | +-----+------- |
| 610 | | | |23-20|output Rn index from vectorial operation |
| 611 | | | +-----+------- |
| 612 | | | |19-16|output Rn mask from scalar operation |
| 613 | | | +-----+------- |
| 614 | | |3|15-12|output vector write mask |
| 615 | | | +-----+------- |
| 616 | | | | 11 |1:output is output vector 0:output is constant C[] |
| 617 | | | +-----+------- |
| 618 | | | |10-3 |output vector/constant index |
| 619 | | | +-----+------- |
| 620 | | | | 2 |0:output Rn from vectorial operation 1:output Rn from scalar operation |
| 621 | | | +-----+------- |
| 622 | | | | 1 |1:add a0x to index for source constant C[] |
| 623 | | | +-----+------- |
| 624 | | | | 0 |1:end of program |
| 625 | | +-+-----+------- |
| 626 | | Each vertex program instruction can generate up to three destination values using up to three source values. |
| 627 | | The first possible destination is to Rn from a vectorial operation. |
| 628 | | The second possible destination is to a vertex shader output or C[n] from a vectorial or scalar operation. |
| 629 | | The third possible destination is to Rn from a scalar operation. |
| 630 | | */ |
| 631 | | void vertex_program_disassembler::decodefields(unsigned int *dwords, int offset, fields &decoded) |
| 632 | | { |
| 633 | | unsigned int srcbits[3]; |
| 634 | | int a; |
| 635 | | |
| 636 | | srcbits[0] = ((dwords[1 + offset] & 0x1ff) << 6) | (dwords[2 + offset] >> 26); |
| 637 | | srcbits[1] = (dwords[2 + offset] >> 11) & 0x7fff; |
| 638 | | srcbits[2] = ((dwords[2 + offset] & 0x7ff) << 4) | (dwords[3 + offset] >> 28); |
| 639 | | decoded.ScaOperation = (int)(dwords[1 + offset] >> 25) & 0xf; |
| 640 | | decoded.VecOperation = (int)(dwords[1 + offset] >> 21) & 0xf; |
| 641 | | decoded.SourceConstantIndex = (int)(dwords[1 + offset] >> 13) & 0xff; |
| 642 | | decoded.InputIndex = (int)(dwords[1 + offset] >> 9) & 0xf; |
| 643 | | for (a = 0; a < 3; a++) |
| 644 | | { |
| 645 | | decoded.src[a].Sign = (int)(srcbits[a] >> 14) & 1; |
| 646 | | decoded.src[a].SwizzleX = (int)(srcbits[a] >> 12) & 3; |
| 647 | | decoded.src[a].SwizzleY = (int)(srcbits[a] >> 10) & 3; |
| 648 | | decoded.src[a].SwizzleZ = (int)(srcbits[a] >> 8) & 3; |
| 649 | | decoded.src[a].SwizzleW = (int)(srcbits[a] >> 6) & 3; |
| 650 | | decoded.src[a].TempIndex = (int)(srcbits[a] >> 2) & 0xf; |
| 651 | | decoded.src[a].ParameterType = (int)(srcbits[a] >> 0) & 3; |
| 652 | | } |
| 653 | | |
| 654 | | decoded.VecTempWriteMask = (int)(dwords[3 + offset] >> 24) & 0xf; |
| 655 | | decoded.VecTempIndex = (int)(dwords[3 + offset] >> 20) & 0xf; |
| 656 | | decoded.ScaTempWriteMask = (int)(dwords[3 + offset] >> 16) & 0xf; |
| 657 | | decoded.OutputWriteMask = (int)(dwords[3 + offset] >> 12) & 0xf; |
| 658 | | decoded.OutputSelect = (int)(dwords[3 + offset] >> 11) & 0x1; |
| 659 | | decoded.OutputIndex = (int)(dwords[3 + offset] >> 3) & 0xff; |
| 660 | | decoded.MultiplexerControl = (int)(dwords[3 + offset] >> 2) & 0x1; |
| 661 | | decoded.Usea0x = (int)(dwords[3 + offset] >> 1) & 0x1; |
| 662 | | decoded.EndOfProgram = (int)(dwords[3 + offset] >> 0) & 0x1; |
| 663 | | } |
| 664 | | |
| 665 | | int vertex_program_disassembler::disassemble_mask(int mask, char *s) |
| 666 | | { |
| 667 | | int l; |
| 668 | | |
| 669 | | *s = 0; |
| 670 | | if (mask == 15) |
| 671 | | return 0; |
| 672 | | s[0] = '.'; |
| 673 | | l = 1; |
| 674 | | if ((mask & 8) != 0) { |
| 675 | | s[l] = 'x'; |
| 676 | | l++; |
| 677 | | } |
| 678 | | if ((mask & 4) != 0){ |
| 679 | | s[l] = 'y'; |
| 680 | | l++; |
| 681 | | } |
| 682 | | if ((mask & 2) != 0){ |
| 683 | | s[l] = 'z'; |
| 684 | | l++; |
| 685 | | } |
| 686 | | if ((mask & 1) != 0){ |
| 687 | | s[l] = 'w'; |
| 688 | | l++; |
| 689 | | } |
| 690 | | s[l] = 0; |
| 691 | | return l; |
| 692 | | } |
| 693 | | |
| 694 | | int vertex_program_disassembler::disassemble_swizzle(sourcefields f, char *s) |
| 695 | | { |
| 696 | | int t, l; |
| 697 | | |
| 698 | | t = 4; |
| 699 | | if (f.SwizzleW == 3) |
| 700 | | { |
| 701 | | t = t - 1; |
| 702 | | if (f.SwizzleZ == 2) |
| 703 | | { |
| 704 | | t = t - 1; |
| 705 | | if (f.SwizzleY == 1) |
| 706 | | { |
| 707 | | t = t - 1; |
| 708 | | if (f.SwizzleX == 0) |
| 709 | | { |
| 710 | | t = t - 1; |
| 711 | | } |
| 712 | | } |
| 713 | | } |
| 714 | | } |
| 715 | | *s = 0; |
| 716 | | if (t == 0) |
| 717 | | return 0; |
| 718 | | s[0] = '.'; |
| 719 | | l = 1; |
| 720 | | if (t > 0) |
| 721 | | { |
| 722 | | s[l] = compchar[f.SwizzleX]; |
| 723 | | l++; |
| 724 | | } |
| 725 | | if (t > 1) |
| 726 | | { |
| 727 | | s[l] = compchar[f.SwizzleY]; |
| 728 | | l++; |
| 729 | | } |
| 730 | | if (t > 2) |
| 731 | | { |
| 732 | | s[l] = compchar[f.SwizzleZ]; |
| 733 | | l++; |
| 734 | | } |
| 735 | | if (t > 3) |
| 736 | | { |
| 737 | | s[l] = compchar[f.SwizzleW]; |
| 738 | | l++; |
| 739 | | } |
| 740 | | s[l] = 0; |
| 741 | | return l; |
| 742 | | } |
| 743 | | |
| 744 | | int vertex_program_disassembler::disassemble_source(sourcefields f, fields fi, char *s) |
| 745 | | { |
| 746 | | int l; |
| 747 | | |
| 748 | | if (f.ParameterType == 0) { |
| 749 | | strcpy(s, ",???"); |
| 750 | | return 4; |
| 751 | | } |
| 752 | | l = 0; |
| 753 | | if (f.Sign != 0) { |
| 754 | | s[l] = '-'; |
| 755 | | l++; |
| 756 | | } |
| 757 | | if (f.ParameterType == 1) { |
| 758 | | s[l] = 'r'; |
| 759 | | l = l + 1 + sprintf(s + l + 1, "%d", f.TempIndex); |
| 760 | | } |
| 761 | | else if (f.ParameterType == 2){ |
| 762 | | s[l] = 'v'; |
| 763 | | l = l + 1 + sprintf(s + l + 1, "%d", fi.InputIndex); |
| 764 | | } |
| 765 | | else |
| 766 | | { |
| 767 | | if (fi.Usea0x != 0) |
| 768 | | { |
| 769 | | if (fi.SourceConstantIndex >= 96) { |
| 770 | | strcpy(s + l, "c["); |
| 771 | | l = l + 2; |
| 772 | | l = l + sprintf(s + l, "%d", fi.SourceConstantIndex - 96); |
| 773 | | strcpy(s + l, "+a0.x]"); |
| 774 | | l = l + 6; |
| 775 | | } |
| 776 | | else { |
| 777 | | strcpy(s + l, "c[a0.x"); |
| 778 | | l = l + 6; |
| 779 | | l = l + sprintf(s + l, "%d", fi.SourceConstantIndex - 96); |
| 780 | | s[l] = ']'; |
| 781 | | l++; |
| 782 | | } |
| 783 | | } |
| 784 | | else { |
| 785 | | strcpy(s + l, "c["); |
| 786 | | l = l + 2; |
| 787 | | l = l + sprintf(s + l, "%d", fi.SourceConstantIndex - 96); |
| 788 | | s[l] = ']'; |
| 789 | | l++; |
| 790 | | } |
| 791 | | } |
| 792 | | l = l + disassemble_swizzle(f, s + l); |
| 793 | | s[l] = 0; |
| 794 | | return l; |
| 795 | | } |
| 796 | | |
| 797 | | int vertex_program_disassembler::disassemble_output(fields f, char *s) |
| 798 | | { |
| 799 | | int l; |
| 800 | | |
| 801 | | if (f.OutputSelect == 1) { |
| 802 | | strcpy(s, vecouts[f.OutputIndex]); |
| 803 | | return strlen(s); |
| 804 | | } |
| 805 | | else { |
| 806 | | strcpy(s, "c["); |
| 807 | | l = 2; |
| 808 | | l = l + sprintf(s + l, "%d", f.OutputIndex - 96); |
| 809 | | s[l] = ']'; |
| 810 | | l++; |
| 811 | | } |
| 812 | | s[l] = 0; |
| 813 | | return l; |
| 814 | | } |
| 815 | | |
| 816 | | int vertex_program_disassembler::output_types(fields f, int *o) |
| 817 | | { |
| 818 | | o[0] = o[1] = o[2] = o[3] = o[4] = o[5] = 0; |
| 819 | | if ((f.VecOperation > 0) && (f.VecTempWriteMask != 0)) |
| 820 | | o[0] = 1; |
| 821 | | if ((f.VecOperation > 0) && (f.OutputWriteMask != 0) && (f.MultiplexerControl == 0)) |
| 822 | | o[1] = 1; |
| 823 | | if ((f.ScaOperation > 0) && (f.OutputWriteMask != 0) && (f.MultiplexerControl == 1)) |
| 824 | | o[2] = 1; |
| 825 | | if ((f.ScaOperation > 0) && (f.ScaTempWriteMask != 0)) |
| 826 | | o[3] = 1; |
| 827 | | if (f.VecOperation == 13) |
| 828 | | o[4] = 1; |
| 829 | | if (f.EndOfProgram == 1) |
| 830 | | o[5] = 1; |
| 831 | | return o[0] + o[1] + o[2] + o[3] + o[4] + o[5]; |
| 832 | | } |
| 833 | | |
| 834 | | int vertex_program_disassembler::disassemble(unsigned int *instruction, char *line) |
| 835 | | { |
| 836 | | int b, p; |
| 837 | | char *c; |
| 838 | | |
| 839 | | if (state == 0) { |
| 840 | | decodefields(instruction, 0, f); |
| 841 | | output_types(f, o); |
| 842 | | state = 1; |
| 843 | | } |
| 844 | | if (o[0] != 0) |
| 845 | | { |
| 846 | | o[0] = 0; |
| 847 | | c = line; |
| 848 | | strcpy(c, vecops[f.VecOperation]); |
| 849 | | c = c + strlen(c); |
| 850 | | strcpy(c, " r"); |
| 851 | | c = c + 2; |
| 852 | | c = c + sprintf(c, "%d", f.VecTempIndex); |
| 853 | | c = c + disassemble_mask(f.VecTempWriteMask, c); |
| 854 | | b = 0; |
| 855 | | for (p = 4; p != 0; p = p >> 1) |
| 856 | | { |
| 857 | | if ((vecpar2[f.VecOperation] & p) != 0) { |
| 858 | | c[0] = ','; |
| 859 | | c++; |
| 860 | | c = c + disassemble_source(f.src[b], f, c); |
| 861 | | } |
| 862 | | b++; |
| 863 | | } |
| 864 | | *c = 0; |
| 865 | | return 1; |
| 866 | | } |
| 867 | | if (o[1] != 0) |
| 868 | | { |
| 869 | | o[1] = 0; |
| 870 | | c = line; |
| 871 | | strcpy(c, vecops[f.VecOperation]); |
| 872 | | c = c + strlen(c); |
| 873 | | *c = ' '; |
| 874 | | c++; |
| 875 | | c = c + disassemble_output(f, c); |
| 876 | | c = c + disassemble_mask(f.OutputWriteMask, c); |
| 877 | | b = 0; |
| 878 | | for (p = 4; p != 0; p = p >> 1) |
| 879 | | { |
| 880 | | if ((vecpar2[f.VecOperation] & p) != 0) { |
| 881 | | *c = ','; |
| 882 | | c++; |
| 883 | | c = c + disassemble_source(f.src[b], f, c); |
| 884 | | } |
| 885 | | b++; |
| 886 | | } |
| 887 | | *c = 0; |
| 888 | | return 1; |
| 889 | | } |
| 890 | | if (o[2] != 0) |
| 891 | | { |
| 892 | | o[2] = 0; |
| 893 | | c = line; |
| 894 | | strcpy(c, scaops[f.ScaOperation]); |
| 895 | | c = c + strlen(c); |
| 896 | | *c = ' '; |
| 897 | | c++; |
| 898 | | c = c + disassemble_output(f, c); |
| 899 | | c = c + disassemble_mask(f.OutputWriteMask, c); |
| 900 | | b = 0; |
| 901 | | for (p = 4; p != 0; p = p >> 1) |
| 902 | | { |
| 903 | | if ((scapar2[f.ScaOperation] & p) != 0) { |
| 904 | | *c = ','; |
| 905 | | c++; |
| 906 | | c = c + disassemble_source(f.src[b], f, c); |
| 907 | | } |
| 908 | | b++; |
| 909 | | } |
| 910 | | *c = 0; |
| 911 | | return 1; |
| 912 | | } |
| 913 | | if (o[3] != 0) |
| 914 | | { |
| 915 | | if (f.VecOperation > 0) |
| 916 | | b = 1; |
| 917 | | else |
| 918 | | b = f.VecTempIndex; |
| 919 | | o[3] = 0; |
| 920 | | c = line; |
| 921 | | strcpy(c, scaops[f.ScaOperation]); |
| 922 | | c = c + strlen(c); |
| 923 | | strcpy(c, " r"); |
| 924 | | c = c + 2; |
| 925 | | c = c + sprintf(c, "%d", b); |
| 926 | | c = c + disassemble_mask(f.ScaTempWriteMask, c); |
| 927 | | b = 0; |
| 928 | | for (p = 4; p != 0; p = p >> 1) |
| 929 | | { |
| 930 | | if ((scapar2[f.ScaOperation] & p) != 0) { |
| 931 | | *c = ','; |
| 932 | | c++; |
| 933 | | c = c + disassemble_source(f.src[b], f, c); |
| 934 | | } |
| 935 | | b++; |
| 936 | | } |
| 937 | | *c = 0; |
| 938 | | return 1; |
| 939 | | } |
| 940 | | if (o[4] != 0) |
| 941 | | { |
| 942 | | o[4] = 0; |
| 943 | | c = line; |
| 944 | | c = c + sprintf(c, "MOV a0.x,"); |
| 945 | | c = c + disassemble_source(f.src[0], f, c); |
| 946 | | *c = 0; |
| 947 | | return 1; |
| 948 | | } |
| 949 | | if (o[5] != 0) |
| 950 | | { |
| 951 | | o[5] = 0; |
| 952 | | strcpy(line, "END"); |
| 953 | | return 1; |
| 954 | | } |
| 955 | | state = 0; |
| 956 | | return 0; |
| 957 | | } |
| 958 | | |
| 959 | | /* |
| 960 | | * geforce 3d (NV2A) accellerator |
| 961 | | */ |
| 962 | | /* very simplified view |
| 963 | | there is a set of context objects |
| 964 | | |
| 965 | | context objects are stored in RAMIN |
| 966 | | each context object is identified by an handle stored in RAMHT |
| 967 | | |
| 968 | | each context object can be assigned to a channel |
| 969 | | to assign you give to the channel an handle for the object |
| 970 | | |
| 971 | | offset in ramht=(((((handle >> 11) xor handle) >> 11) xor handle) & 0x7ff)*8 |
| 972 | | offset in ramht contains the handle itself |
| 973 | | offset in ramht+4 contains in the lower 16 bits the offset in RAMIN divided by 16 |
| 974 | | |
| 975 | | objects have methods used to do drawing |
| 976 | | most methods set parameters, others actually draw |
| 977 | | */ |
| 978 | | class nv2a_renderer : public poly_manager<float, nvidia_object_data, 12, 8192> |
| 979 | | { |
| 980 | | public: |
| 981 | | nv2a_renderer(running_machine &machine) : poly_manager<float, nvidia_object_data, 12, 8192>(machine) |
| 982 | | { |
| 983 | | memset(channel,0,sizeof(channel)); |
| 984 | | memset(pfifo,0,sizeof(pfifo)); |
| 985 | | memset(pcrtc,0,sizeof(pcrtc)); |
| 986 | | memset(pmc,0,sizeof(pmc)); |
| 987 | | memset(ramin,0,sizeof(ramin)); |
| 988 | | computedilated(); |
| 989 | | fb.allocate(640,480); |
| 990 | | objectdata=&(object_data_alloc()); |
| 991 | | objectdata->data=this; |
| 992 | | combiner.used=0; |
| 993 | | combiner.lock=osd_lock_alloc(); |
| 994 | | enabled_vertex_attributes=0; |
| 995 | | indexesleft_count = 0; |
| 996 | | vertex_pipeline = 4; |
| 997 | | alpha_test_enabled = false; |
| 998 | | alpha_reference = 0; |
| 999 | | alpha_func = nv2a_renderer::ALWAYS; |
| 1000 | | blending_enabled = false; |
| 1001 | | blend_equation = nv2a_renderer::FUNC_ADD; |
| 1002 | | blend_color = 0; |
| 1003 | | blend_function_destination = nv2a_renderer::ZERO; |
| 1004 | | blend_function_source = nv2a_renderer::ONE; |
| 1005 | | logical_operation_enabled = false; |
| 1006 | | logical_operation = nv2a_renderer::COPY; |
| 1007 | | debug_grab_texttype = -1; |
| 1008 | | debug_grab_textfile = NULL; |
| 1009 | | memset(vertex_attribute_words, 0, sizeof(vertex_attribute_words)); |
| 1010 | | memset(vertex_attribute_offset, 0, sizeof(vertex_attribute_offset)); |
| 1011 | | } |
| 1012 | | DECLARE_READ32_MEMBER( geforce_r ); |
| 1013 | | DECLARE_WRITE32_MEMBER( geforce_w ); |
| 1014 | | void vblank_callback(screen_device &screen, bool state); |
| 1015 | | UINT32 screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); |
| 1016 | | |
| 1017 | | void render_texture_simple(INT32 scanline, const extent_t &extent, const nvidia_object_data &extradata, int threadid); |
| 1018 | | void render_color(INT32 scanline, const extent_t &extent, const nvidia_object_data &extradata, int threadid); |
| 1019 | | void render_register_combiners(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid); |
| 1020 | | |
| 1021 | | int geforce_commandkind(UINT32 word); |
| 1022 | | UINT32 geforce_object_offset(UINT32 handle); |
| 1023 | | void geforce_read_dma_object(UINT32 handle,UINT32 &offset,UINT32 &size); |
| 1024 | | void geforce_exec_method(address_space &space,UINT32 channel,UINT32 subchannel,UINT32 method,UINT32 address,int &countlen); |
| 1025 | | UINT32 texture_get_texel(int number,int x,int y); |
| 1026 | | void write_pixel(int x, int y, UINT32 color); |
| 1027 | | void combiner_initialize_registers(UINT32 argb8[6]); |
| 1028 | | void combiner_initialize_stage(int stage_number); |
| 1029 | | void combiner_initialize_final(); |
| 1030 | | void combiner_map_input(int stage_number); // map combiner registers to variables A..D |
| 1031 | | void combiner_map_output(int stage_number); // map combiner calculation results to combiner registers |
| 1032 | | void combiner_map_final_input(); // map final combiner registers to variables A..F |
| 1033 | | void combiner_final_output(); // generate final combiner output |
| 1034 | | float combiner_map_input_select(int code,int index); // get component index in register code |
| 1035 | | float *combiner_map_input_select3(int code); // get pointer to register code |
| 1036 | | float *combiner_map_output_select3(int code); // get pointer to register code for output |
| 1037 | | float combiner_map_input_function(int code,float value); // apply input mapping function code to value |
| 1038 | | void combiner_map_input_function3(int code,float *data); // apply input mapping function code to data |
| 1039 | | void combiner_function_AB(float result[4]); |
| 1040 | | void combiner_function_AdotB(float result[4]); |
| 1041 | | void combiner_function_CD(float result[4]); |
| 1042 | | void combiner_function_CdotD(float result[4]); |
| 1043 | | void combiner_function_ABmuxCD(float result[4]); |
| 1044 | | void combiner_function_ABsumCD(float result[4]); |
| 1045 | | void combiner_compute_rgb_outputs(int index); |
| 1046 | | void combiner_compute_a_outputs(int index); |
| 1047 | | void combiner_argb8_float(UINT32 color,float reg[4]); |
| 1048 | | UINT32 combiner_float_argb8(float reg[4]); |
| 1049 | | UINT32 dilate0(UINT32 value,int bits); |
| 1050 | | UINT32 dilate1(UINT32 value,int bits); |
| 1051 | | void computedilated(void); |
| 1052 | | void putpixtex(int xp,int yp,int up,int vp); |
| 1053 | | int toggle_register_combiners_usage(); |
| 1054 | | void debug_grab_texture(int type, const char *filename); |
| 1055 | | void debug_grab_vertex_program_slot(int slot, UINT32 *instruction); |
| 1056 | | void savestate_items(); |
| 1057 | | |
| 1058 | | struct vertex { |
| 1059 | | union { |
| 1060 | | float fv[4]; |
| 1061 | | UINT32 iv[4]; |
| 1062 | | } attribute[16]; |
| 1063 | | }; |
| 1064 | | int read_vertices_0x1810(address_space & space, vertex *destination, int offset, int limit); |
| 1065 | | int read_vertices_0x1800(address_space & space, vertex *destination, UINT32 address, int limit); |
| 1066 | | int read_vertices_0x1818(address_space & space, vertex *destination, UINT32 address, int limit); |
| 1067 | | void convert_vertices_poly(vertex *source, vertex_t *destination, int count); |
| 1068 | | |
| 1069 | | struct { |
| 1070 | | UINT32 regs[0x80/4]; |
| 1071 | | struct { |
| 1072 | | UINT32 objhandle; |
| 1073 | | UINT32 objclass; |
| 1074 | | UINT32 method[0x2000/4]; |
| 1075 | | } object; |
| 1076 | | } channel[32][8]; |
| 1077 | | UINT32 pfifo[0x2000/4]; |
| 1078 | | UINT32 pcrtc[0x1000/4]; |
| 1079 | | UINT32 pmc[0x1000/4]; |
| 1080 | | UINT32 ramin[0x100000/4]; |
| 1081 | | UINT32 dma_offset[2]; |
| 1082 | | UINT32 dma_size[2]; |
| 1083 | | UINT32 vertexbuffer_address[16]; |
| 1084 | | int vertexbuffer_stride[16]; |
| 1085 | | struct { |
| 1086 | | int enabled; |
| 1087 | | int sizeu; |
| 1088 | | int sizev; |
| 1089 | | int sizew; |
| 1090 | | int dilate; |
| 1091 | | int format; |
| 1092 | | int rectangle_pitch; |
| 1093 | | void *buffer; |
| 1094 | | } texture[4]; |
| 1095 | | int primitives_count; |
| 1096 | | int indexesleft_count; |
| 1097 | | int indexesleft_first; |
| 1098 | | UINT32 indexesleft[8]; |
| 1099 | | struct { |
| 1100 | | float variable_A[4]; // 0=R 1=G 2=B 3=A |
| 1101 | | float variable_B[4]; |
| 1102 | | float variable_C[4]; |
| 1103 | | float variable_D[4]; |
| 1104 | | float variable_E[4]; |
| 1105 | | float variable_F[4]; |
| 1106 | | float variable_G; |
| 1107 | | float variable_EF[4]; |
| 1108 | | float variable_sumclamp[4]; |
| 1109 | | float function_RGBop1[4]; // 0=R 1=G 2=B |
| 1110 | | float function_RGBop2[4]; |
| 1111 | | float function_RGBop3[4]; |
| 1112 | | float function_Aop1; |
| 1113 | | float function_Aop2; |
| 1114 | | float function_Aop3; |
| 1115 | | float register_primarycolor[4]; // rw |
| 1116 | | float register_secondarycolor[4]; |
| 1117 | | float register_texture0color[4]; |
| 1118 | | float register_texture1color[4]; |
| 1119 | | float register_texture2color[4]; |
| 1120 | | float register_texture3color[4]; |
| 1121 | | float register_color0[4]; |
| 1122 | | float register_color1[4]; |
| 1123 | | float register_spare0[4]; |
| 1124 | | float register_spare1[4]; |
| 1125 | | float register_fogcolor[4]; // ro |
| 1126 | | float register_zero[4]; |
| 1127 | | float output[4]; |
| 1128 | | struct { |
| 1129 | | float register_constantcolor0[4]; |
| 1130 | | float register_constantcolor1[4]; |
| 1131 | | int mapin_aA_input; |
| 1132 | | int mapin_aA_component; |
| 1133 | | int mapin_aA_mapping; |
| 1134 | | int mapin_aB_input; |
| 1135 | | int mapin_aB_component; |
| 1136 | | int mapin_aB_mapping; |
| 1137 | | int mapin_aC_input; |
| 1138 | | int mapin_aC_component; |
| 1139 | | int mapin_aC_mapping; |
| 1140 | | int mapin_aD_input; |
| 1141 | | int mapin_aD_component; |
| 1142 | | int mapin_aD_mapping; |
| 1143 | | int mapin_rgbA_input; |
| 1144 | | int mapin_rgbA_component; |
| 1145 | | int mapin_rgbA_mapping; |
| 1146 | | int mapin_rgbB_input; |
| 1147 | | int mapin_rgbB_component; |
| 1148 | | int mapin_rgbB_mapping; |
| 1149 | | int mapin_rgbC_input; |
| 1150 | | int mapin_rgbC_component; |
| 1151 | | int mapin_rgbC_mapping; |
| 1152 | | int mapin_rgbD_input; |
| 1153 | | int mapin_rgbD_component; |
| 1154 | | int mapin_rgbD_mapping; |
| 1155 | | int mapout_aCD_output; |
| 1156 | | int mapout_aAB_output; |
| 1157 | | int mapout_aSUM_output; |
| 1158 | | int mapout_aCD_dotproduct; |
| 1159 | | int mapout_aAB_dotproduct; |
| 1160 | | int mapout_a_muxsum; |
| 1161 | | int mapout_a_bias; |
| 1162 | | int mapout_a_scale; |
| 1163 | | int mapout_rgbCD_output; |
| 1164 | | int mapout_rgbAB_output; |
| 1165 | | int mapout_rgbSUM_output; |
| 1166 | | int mapout_rgbCD_dotproduct; |
| 1167 | | int mapout_rgbAB_dotproduct; |
| 1168 | | int mapout_rgb_muxsum; |
| 1169 | | int mapout_rgb_bias; |
| 1170 | | int mapout_rgb_scale; |
| 1171 | | } stage[8]; |
| 1172 | | struct { |
| 1173 | | float register_constantcolor0[4]; |
| 1174 | | float register_constantcolor1[4]; |
| 1175 | | int color_sum_clamp; |
| 1176 | | int mapin_rgbA_input; |
| 1177 | | int mapin_rgbA_component; |
| 1178 | | int mapin_rgbA_mapping; |
| 1179 | | int mapin_rgbB_input; |
| 1180 | | int mapin_rgbB_component; |
| 1181 | | int mapin_rgbB_mapping; |
| 1182 | | int mapin_rgbC_input; |
| 1183 | | int mapin_rgbC_component; |
| 1184 | | int mapin_rgbC_mapping; |
| 1185 | | int mapin_rgbD_input; |
| 1186 | | int mapin_rgbD_component; |
| 1187 | | int mapin_rgbD_mapping; |
| 1188 | | int mapin_rgbE_input; |
| 1189 | | int mapin_rgbE_component; |
| 1190 | | int mapin_rgbE_mapping; |
| 1191 | | int mapin_rgbF_input; |
| 1192 | | int mapin_rgbF_component; |
| 1193 | | int mapin_rgbF_mapping; |
| 1194 | | int mapin_aG_input; |
| 1195 | | int mapin_aG_component; |
| 1196 | | int mapin_aG_mapping; |
| 1197 | | } final; |
| 1198 | | int stages; |
| 1199 | | int used; |
| 1200 | | osd_lock *lock; |
| 1201 | | } combiner; |
| 1202 | | bool alpha_test_enabled; |
| 1203 | | int alpha_func; |
| 1204 | | int alpha_reference; |
| 1205 | | bool blending_enabled; |
| 1206 | | int blend_equation; |
| 1207 | | int blend_function_source; |
| 1208 | | int blend_function_destination; |
| 1209 | | UINT32 blend_color; |
| 1210 | | bool logical_operation_enabled; |
| 1211 | | int logical_operation; |
| 1212 | | struct { |
| 1213 | | float modelview[16]; |
| 1214 | | float modelview_inverse[16]; |
| 1215 | | float projection[16]; |
| 1216 | | float translate[4]; |
| 1217 | | float scale[4]; |
| 1218 | | } matrix; |
| 1219 | | struct { |
| 1220 | | UINT32 instruction[1024]; |
| 1221 | | int instructions; |
| 1222 | | int upload_instruction; |
| 1223 | | int start_instruction; |
| 1224 | | float parameter[1024]; |
| 1225 | | int upload_parameter; |
| 1226 | | } vertexprogram; |
| 1227 | | int vertex_pipeline; |
| 1228 | | int enabled_vertex_attributes; |
| 1229 | | int vertex_attribute_words[16]; |
| 1230 | | int vertex_attribute_offset[16]; |
| 1231 | | bitmap_rgb32 fb; |
| 1232 | | UINT32 dilated0[16][2048]; |
| 1233 | | UINT32 dilated1[16][2048]; |
| 1234 | | int dilatechose[256]; |
| 1235 | | nvidia_object_data *objectdata; |
| 1236 | | int debug_grab_texttype; |
| 1237 | | char *debug_grab_textfile; |
| 1238 | | |
| 1239 | | enum NV2A_BEGIN_END { |
| 1240 | | STOP=0, |
| 1241 | | POINTS=1, |
| 1242 | | LINES=2, |
| 1243 | | LINE_LOOP=3, |
| 1244 | | LINE_STRIP=4, |
| 1245 | | TRIANGLES=5, |
| 1246 | | TRIANGLE_STRIP=6, |
| 1247 | | TRIANGLE_FAN=7, |
| 1248 | | QUADS=8, |
| 1249 | | QUAD_STRIP=9, |
| 1250 | | POLYGON=10 |
| 1251 | | }; |
| 1252 | | enum NV2A_VERTEX_ATTR { |
| 1253 | | POS=0, |
| 1254 | | WEIGHT=1, |
| 1255 | | NORMAL=2, |
| 1256 | | COLOR0=3, |
| 1257 | | COLOR1=4, |
| 1258 | | FOG=5, |
| 1259 | | TEX0=9, |
| 1260 | | TEX1=10, |
| 1261 | | TEX2=11, |
| 1262 | | TEX3=12 |
| 1263 | | }; |
| 1264 | | enum NV2A_VTXBUF_TYPE { |
| 1265 | | FLOAT=2, |
| 1266 | | UBYTE=4, |
| 1267 | | USHORT=5 |
| 1268 | | }; |
| 1269 | | enum NV2A_TEX_FORMAT { |
| 1270 | | L8=0x0, |
| 1271 | | I8=0x1, |
| 1272 | | A1R5G5B5=0x2, |
| 1273 | | A4R4G4B4=0x4, |
| 1274 | | R5G6B5=0x5, |
| 1275 | | A8R8G8B8=0x6, |
| 1276 | | X8R8G8B8=0x7, |
| 1277 | | INDEX8=0xb, |
| 1278 | | DXT1=0xc, |
| 1279 | | DXT3=0xe, |
| 1280 | | DXT5=0xf, |
| 1281 | | A1R5G5B5_RECT=0x10, |
| 1282 | | R5G6B5_RECT=0x11, |
| 1283 | | A8R8G8B8_RECT=0x12, |
| 1284 | | L8_RECT=0x13, |
| 1285 | | DSDT8_RECT=0x17, |
| 1286 | | A8L8=0x1a, |
| 1287 | | I8_RECT=0x1b, |
| 1288 | | A4R4G4B4_RECT=0x1d, |
| 1289 | | R8G8B8_RECT=0x1e, |
| 1290 | | A8L8_RECT=0x20, |
| 1291 | | Z24=0x2a, |
| 1292 | | Z24_RECT=0x2b, |
| 1293 | | Z16=0x2c, |
| 1294 | | Z16_RECT=0x2d, |
| 1295 | | DSDT8=0x28, |
| 1296 | | HILO16=0x33, |
| 1297 | | HILO16_RECT=0x36, |
| 1298 | | HILO8=0x44, |
| 1299 | | SIGNED_HILO8=0x45, |
| 1300 | | HILO8_RECT=0x46, |
| 1301 | | SIGNED_HILO8_RECT=0x47 |
| 1302 | | }; |
| 1303 | | enum NV2A_LOGIC_OP { |
| 1304 | | CLEAR=0x1500, |
| 1305 | | AND=0x1501, |
| 1306 | | AND_REVERSE=0x1502, |
| 1307 | | COPY=0x1503, |
| 1308 | | AND_INVERTED=0x1504, |
| 1309 | | NOOP=0x1505, |
| 1310 | | XOR=0x1506, |
| 1311 | | OR=0x1507, |
| 1312 | | NOR=0x1508, |
| 1313 | | EQUIV=0x1509, |
| 1314 | | INVERT=0x150a, |
| 1315 | | OR_REVERSE=0x150b, |
| 1316 | | COPY_INVERTED=0x150c, |
| 1317 | | OR_INVERTED=0x150d, |
| 1318 | | NAND=0x150e, |
| 1319 | | SET=0x150f |
| 1320 | | }; |
| 1321 | | enum NV2A_BLEND_EQUATION { |
| 1322 | | FUNC_ADD=0x8006, |
| 1323 | | MIN=0x8007, |
| 1324 | | MAX=0x8008, |
| 1325 | | FUNC_SUBTRACT=0x800a, |
| 1326 | | FUNC_REVERSE_SUBTRACT=0x80b |
| 1327 | | }; |
| 1328 | | enum NV2A_BLEND_FACTOR { |
| 1329 | | ZERO=0x0000, |
| 1330 | | ONE=0x0001, |
| 1331 | | SRC_COLOR=0x0300, |
| 1332 | | ONE_MINUS_SRC_COLOR=0x0301, |
| 1333 | | SRC_ALPHA=0x0302, |
| 1334 | | ONE_MINUS_SRC_ALPHA=0x0303, |
| 1335 | | DST_ALPHA=0x0304, |
| 1336 | | ONE_MINUS_DST_ALPHA=0x0305, |
| 1337 | | DST_COLOR=0x0306, |
| 1338 | | ONE_MINUS_DST_COLOR=0x0307, |
| 1339 | | SRC_ALPHA_SATURATE=0x0308, |
| 1340 | | CONSTANT_COLOR=0x8001, |
| 1341 | | ONE_MINUS_CONSTANT_COLOR=0x8002, |
| 1342 | | CONSTANT_ALPHA=0x8003, |
| 1343 | | ONE_MINUS_CONSTANT_ALPHA=0x8004 |
| 1344 | | }; |
| 1345 | | enum NV2A_COMPARISON_OP { |
| 1346 | | NEVER=0x0200, |
| 1347 | | LESS=0x0201, |
| 1348 | | EQUAL=0x0202, |
| 1349 | | LEQUAL=0x0203, |
| 1350 | | GREATER=0x0204, |
| 1351 | | NOTEQUAL=0x0205, |
| 1352 | | GEQUAL=0x0206, |
| 1353 | | ALWAYS=0x0207 |
| 1354 | | }; |
| 1355 | | enum NV2A_STENCIL_OP { |
| 1356 | | ZEROOP=0x0000, |
| 1357 | | INVERTOP=0x150a, |
| 1358 | | KEEP=0x1e00, |
| 1359 | | REPLACE=0x1e01, |
| 1360 | | INCR=0x1e02, |
| 1361 | | DECR=0x1e03, |
| 1362 | | INCR_WRAP=0x8507, |
| 1363 | | DECR_WRAP=0x8508 |
| 1364 | | }; |
| 1365 | | }; |
| 1366 | | |
| 1367 | 475 | /* jamtable instructions for Chihiro (different from console) |
| 1368 | 476 | St. Instr. Comment |
| 1369 | 477 | 0x01 POKEPCI PCICONF[OP2] := OP1 |
| r242231 | r242232 | |
| 1380 | 488 | */ |
| 1381 | 489 | |
| 1382 | 490 | /* jamtable disassembler */ |
| 1383 | | static void jamtable_disasm(running_machine &machine, address_space &space,UINT32 address,UINT32 size) // 0xff000080 == fff00080 |
| 491 | static void jamtable_disasm(running_machine &machine, address_space &space, UINT32 address, UINT32 size) // 0xff000080 == fff00080 |
| 1384 | 492 | { |
| 1385 | | offs_t base,addr; |
| 1386 | | UINT32 opcode,op1,op2; |
| 493 | offs_t base, addr; |
| 494 | UINT32 opcode, op1, op2; |
| 1387 | 495 | char sop1[16]; |
| 1388 | 496 | char sop2[16]; |
| 1389 | 497 | char pcrel[16]; |
| 1390 | 498 | |
| 1391 | | addr=(offs_t)address; |
| 1392 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&addr)) |
| 499 | addr = (offs_t)address; |
| 500 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &addr)) |
| 1393 | 501 | { |
| 1394 | | debug_console_printf(machine,"Address is unmapped.\n"); |
| 502 | debug_console_printf(machine, "Address is unmapped.\n"); |
| 1395 | 503 | return; |
| 1396 | 504 | } |
| 1397 | 505 | while (1) |
| 1398 | 506 | { |
| 1399 | | base=addr; |
| 1400 | | opcode=space.read_byte(addr); |
| 507 | base = addr; |
| 508 | opcode = space.read_byte(addr); |
| 1401 | 509 | addr++; |
| 1402 | | op1=space.read_dword_unaligned(addr); |
| 1403 | | addr+=4; |
| 1404 | | op2=space.read_dword_unaligned(addr); |
| 1405 | | addr+=4; |
| 510 | op1 = space.read_dword_unaligned(addr); |
| 511 | addr += 4; |
| 512 | op2 = space.read_dword_unaligned(addr); |
| 513 | addr += 4; |
| 1406 | 514 | if (opcode == 0xe1) |
| 1407 | 515 | { |
| 1408 | | opcode=op2 & 255; |
| 1409 | | op2=op1; |
| 516 | opcode = op2 & 255; |
| 517 | op2 = op1; |
| 1410 | 518 | //op1=edi; |
| 1411 | | sprintf(sop2,"%08X",op2); |
| 1412 | | sprintf(sop1,"ACC"); |
| 1413 | | sprintf(pcrel,"PC+ACC"); |
| 519 | sprintf(sop2, "%08X", op2); |
| 520 | sprintf(sop1, "ACC"); |
| 521 | sprintf(pcrel, "PC+ACC"); |
| 1414 | 522 | } |
| 1415 | 523 | else |
| 1416 | 524 | { |
| 1417 | | sprintf(sop2,"%08X",op2); |
| 1418 | | sprintf(sop1,"%08X",op1); |
| 1419 | | sprintf(pcrel,"%08X",base+9+op1); |
| 525 | sprintf(sop2, "%08X", op2); |
| 526 | sprintf(sop1, "%08X", op1); |
| 527 | sprintf(pcrel, "%08X", base + 9 + op1); |
| 1420 | 528 | } |
| 1421 | | debug_console_printf(machine,"%08X ",base); |
| 529 | debug_console_printf(machine, "%08X ", base); |
| 1422 | 530 | // dl=instr ebx=par1 eax=par2 |
| 1423 | 531 | switch (opcode) |
| 1424 | 532 | { |
| 1425 | | case 0x01: |
| 1426 | | // if ((op2 & 0xff) == 0x880) op1=op1 & 0xfffffffd |
| 1427 | | // out cf8,op2 |
| 1428 | | // out cfc,op1 |
| 1429 | | // out cf8,0 |
| 1430 | | // cf8 (CONFIG_ADDRESS) format: |
| 1431 | | // 31 30 24 23 16 15 11 10 8 7 2 1 0 |
| 1432 | | // +-+----------+------------+---------------+-----------------+-----------------+-+-+ |
| 1433 | | // | | Reserved | Bus Number | Device Number | Function Number | Register Number |0|0| |
| 1434 | | // +-+----------+------------+---------------+-----------------+-----------------+-+-+ |
| 1435 | | // 31 - Enable bit |
| 1436 | | debug_console_printf(machine,"POKEPCI PCICONF[%s]=%s\n",sop2,sop1); |
| 1437 | | break; |
| 1438 | | case 0x02: |
| 1439 | | debug_console_printf(machine,"OUTB PORT[%s]=%s\n",sop2,sop1); |
| 1440 | | break; |
| 1441 | | case 0x03: |
| 1442 | | debug_console_printf(machine,"POKE MEM[%s]=%s\n",sop2,sop1); |
| 1443 | | break; |
| 1444 | | case 0x04: |
| 1445 | | debug_console_printf(machine,"BNE IF ACC != %s THEN PC=%s\n",sop2,pcrel); |
| 1446 | | break; |
| 1447 | | case 0x05: |
| 1448 | | // out cf8,op2 |
| 1449 | | // in acc,cfc |
| 1450 | | debug_console_printf(machine,"PEEKPCI ACC=PCICONF[%s]\n",sop2); |
| 1451 | | break; |
| 1452 | | case 0x06: |
| 1453 | | debug_console_printf(machine,"AND/OR ACC=(ACC & %s) | %s\n",sop2,sop1); |
| 1454 | | break; |
| 1455 | | case 0x07: |
| 1456 | | debug_console_printf(machine,"BRA PC=%s\n",pcrel); |
| 1457 | | break; |
| 1458 | | case 0x08: |
| 1459 | | debug_console_printf(machine,"INB ACC=PORT[%s]\n",sop2); |
| 1460 | | break; |
| 1461 | | case 0x09: |
| 1462 | | debug_console_printf(machine,"PEEK ACC=MEM[%s]\n",sop2); |
| 1463 | | break; |
| 1464 | | case 0xee: |
| 1465 | | debug_console_printf(machine,"END\n"); |
| 1466 | | break; |
| 1467 | | default: |
| 1468 | | debug_console_printf(machine,"NOP ????\n"); |
| 1469 | | break; |
| 533 | case 0x01: |
| 534 | // if ((op2 & 0xff) == 0x880) op1=op1 & 0xfffffffd |
| 535 | // out cf8,op2 |
| 536 | // out cfc,op1 |
| 537 | // out cf8,0 |
| 538 | // cf8 (CONFIG_ADDRESS) format: |
| 539 | // 31 30 24 23 16 15 11 10 8 7 2 1 0 |
| 540 | // +-+----------+------------+---------------+-----------------+-----------------+-+-+ |
| 541 | // | | Reserved | Bus Number | Device Number | Function Number | Register Number |0|0| |
| 542 | // +-+----------+------------+---------------+-----------------+-----------------+-+-+ |
| 543 | // 31 - Enable bit |
| 544 | debug_console_printf(machine, "POKEPCI PCICONF[%s]=%s\n", sop2, sop1); |
| 545 | break; |
| 546 | case 0x02: |
| 547 | debug_console_printf(machine, "OUTB PORT[%s]=%s\n", sop2, sop1); |
| 548 | break; |
| 549 | case 0x03: |
| 550 | debug_console_printf(machine, "POKE MEM[%s]=%s\n", sop2, sop1); |
| 551 | break; |
| 552 | case 0x04: |
| 553 | debug_console_printf(machine, "BNE IF ACC != %s THEN PC=%s\n", sop2, pcrel); |
| 554 | break; |
| 555 | case 0x05: |
| 556 | // out cf8,op2 |
| 557 | // in acc,cfc |
| 558 | debug_console_printf(machine, "PEEKPCI ACC=PCICONF[%s]\n", sop2); |
| 559 | break; |
| 560 | case 0x06: |
| 561 | debug_console_printf(machine, "AND/OR ACC=(ACC & %s) | %s\n", sop2, sop1); |
| 562 | break; |
| 563 | case 0x07: |
| 564 | debug_console_printf(machine, "BRA PC=%s\n", pcrel); |
| 565 | break; |
| 566 | case 0x08: |
| 567 | debug_console_printf(machine, "INB ACC=PORT[%s]\n", sop2); |
| 568 | break; |
| 569 | case 0x09: |
| 570 | debug_console_printf(machine, "PEEK ACC=MEM[%s]\n", sop2); |
| 571 | break; |
| 572 | case 0xee: |
| 573 | debug_console_printf(machine, "END\n"); |
| 574 | break; |
| 575 | default: |
| 576 | debug_console_printf(machine, "NOP ????\n"); |
| 577 | break; |
| 1470 | 578 | } |
| 1471 | 579 | if (opcode == 0xee) |
| 1472 | 580 | break; |
| 1473 | 581 | if (size <= 9) |
| 1474 | 582 | break; |
| 1475 | | size-=9; |
| 583 | size -= 9; |
| 1476 | 584 | } |
| 1477 | 585 | } |
| 1478 | 586 | |
| 1479 | 587 | static void jamtable_disasm_command(running_machine &machine, int ref, int params, const char **param) |
| 1480 | 588 | { |
| 1481 | 589 | chihiro_state *state = machine.driver_data<chihiro_state>(); |
| 1482 | | address_space &space=state->m_maincpu->space(); |
| 1483 | | UINT64 addr,size; |
| 590 | address_space &space = state->m_maincpu->space(); |
| 591 | UINT64 addr, size; |
| 1484 | 592 | |
| 1485 | 593 | if (params < 2) |
| 1486 | 594 | return; |
| r242231 | r242232 | |
| 1494 | 602 | static void dump_string_command(running_machine &machine, int ref, int params, const char **param) |
| 1495 | 603 | { |
| 1496 | 604 | chihiro_state *state = machine.driver_data<chihiro_state>(); |
| 1497 | | address_space &space=state->m_maincpu->space(); |
| 605 | address_space &space = state->m_maincpu->space(); |
| 1498 | 606 | UINT64 addr; |
| 1499 | 607 | offs_t address; |
| 1500 | | UINT32 length,maximumlength; |
| 608 | UINT32 length, maximumlength; |
| 1501 | 609 | offs_t buffer; |
| 1502 | 610 | |
| 1503 | 611 | if (params < 1) |
| 1504 | 612 | return; |
| 1505 | 613 | if (!debug_command_parameter_number(machine, param[0], &addr)) |
| 1506 | 614 | return; |
| 1507 | | address=(offs_t)addr; |
| 1508 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 615 | address = (offs_t)addr; |
| 616 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1509 | 617 | { |
| 1510 | | debug_console_printf(machine,"Address is unmapped.\n"); |
| 618 | debug_console_printf(machine, "Address is unmapped.\n"); |
| 1511 | 619 | return; |
| 1512 | 620 | } |
| 1513 | | length=space.read_word_unaligned(address); |
| 1514 | | maximumlength=space.read_word_unaligned(address+2); |
| 1515 | | buffer=space.read_dword_unaligned(address+4); |
| 1516 | | debug_console_printf(machine,"Length %d word\n",length); |
| 1517 | | debug_console_printf(machine,"MaximumLength %d word\n",maximumlength); |
| 1518 | | debug_console_printf(machine,"Buffer %08X byte* ",buffer); |
| 1519 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&buffer)) |
| 621 | length = space.read_word_unaligned(address); |
| 622 | maximumlength = space.read_word_unaligned(address + 2); |
| 623 | buffer = space.read_dword_unaligned(address + 4); |
| 624 | debug_console_printf(machine, "Length %d word\n", length); |
| 625 | debug_console_printf(machine, "MaximumLength %d word\n", maximumlength); |
| 626 | debug_console_printf(machine, "Buffer %08X byte* ", buffer); |
| 627 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &buffer)) |
| 1520 | 628 | { |
| 1521 | | debug_console_printf(machine,"\nBuffer is unmapped.\n"); |
| 629 | debug_console_printf(machine, "\nBuffer is unmapped.\n"); |
| 1522 | 630 | return; |
| 1523 | 631 | } |
| 1524 | 632 | if (length > 256) |
| 1525 | | length=256; |
| 1526 | | for (int a=0;a < length;a++) |
| 633 | length = 256; |
| 634 | for (int a = 0; a < length; a++) |
| 1527 | 635 | { |
| 1528 | | UINT8 c=space.read_byte(buffer+a); |
| 1529 | | debug_console_printf(machine,"%c",c); |
| 636 | UINT8 c = space.read_byte(buffer + a); |
| 637 | debug_console_printf(machine, "%c", c); |
| 1530 | 638 | } |
| 1531 | | debug_console_printf(machine,"\n"); |
| 639 | debug_console_printf(machine, "\n"); |
| 1532 | 640 | } |
| 1533 | 641 | |
| 1534 | 642 | static void dump_process_command(running_machine &machine, int ref, int params, const char **param) |
| 1535 | 643 | { |
| 1536 | 644 | chihiro_state *state = machine.driver_data<chihiro_state>(); |
| 1537 | | address_space &space=state->m_maincpu->space(); |
| 645 | address_space &space = state->m_maincpu->space(); |
| 1538 | 646 | UINT64 addr; |
| 1539 | 647 | offs_t address; |
| 1540 | 648 | |
| r242231 | r242232 | |
| 1542 | 650 | return; |
| 1543 | 651 | if (!debug_command_parameter_number(machine, param[0], &addr)) |
| 1544 | 652 | return; |
| 1545 | | address=(offs_t)addr; |
| 1546 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 653 | address = (offs_t)addr; |
| 654 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1547 | 655 | { |
| 1548 | | debug_console_printf(machine,"Address is unmapped.\n"); |
| 656 | debug_console_printf(machine, "Address is unmapped.\n"); |
| 1549 | 657 | return; |
| 1550 | 658 | } |
| 1551 | | debug_console_printf(machine,"ReadyListHead {%08X,%08X} _LIST_ENTRY\n",space.read_dword_unaligned(address),space.read_dword_unaligned(address+4)); |
| 1552 | | debug_console_printf(machine,"ThreadListHead {%08X,%08X} _LIST_ENTRY\n",space.read_dword_unaligned(address+8),space.read_dword_unaligned(address+12)); |
| 1553 | | debug_console_printf(machine,"StackCount %d dword\n",space.read_dword_unaligned(address+16)); |
| 1554 | | debug_console_printf(machine,"ThreadQuantum %d dword\n",space.read_dword_unaligned(address+20)); |
| 1555 | | debug_console_printf(machine,"BasePriority %d byte\n",space.read_byte(address+24)); |
| 1556 | | debug_console_printf(machine,"DisableBoost %d byte\n",space.read_byte(address+25)); |
| 1557 | | debug_console_printf(machine,"DisableQuantum %d byte\n",space.read_byte(address+26)); |
| 1558 | | debug_console_printf(machine,"_padding %d byte\n",space.read_byte(address+27)); |
| 659 | debug_console_printf(machine, "ReadyListHead {%08X,%08X} _LIST_ENTRY\n", space.read_dword_unaligned(address), space.read_dword_unaligned(address + 4)); |
| 660 | debug_console_printf(machine, "ThreadListHead {%08X,%08X} _LIST_ENTRY\n", space.read_dword_unaligned(address + 8), space.read_dword_unaligned(address + 12)); |
| 661 | debug_console_printf(machine, "StackCount %d dword\n", space.read_dword_unaligned(address + 16)); |
| 662 | debug_console_printf(machine, "ThreadQuantum %d dword\n", space.read_dword_unaligned(address + 20)); |
| 663 | debug_console_printf(machine, "BasePriority %d byte\n", space.read_byte(address + 24)); |
| 664 | debug_console_printf(machine, "DisableBoost %d byte\n", space.read_byte(address + 25)); |
| 665 | debug_console_printf(machine, "DisableQuantum %d byte\n", space.read_byte(address + 26)); |
| 666 | debug_console_printf(machine, "_padding %d byte\n", space.read_byte(address + 27)); |
| 1559 | 667 | } |
| 1560 | 668 | |
| 1561 | 669 | static void dump_list_command(running_machine &machine, int ref, int params, const char **param) |
| 1562 | 670 | { |
| 1563 | 671 | chihiro_state *state = machine.driver_data<chihiro_state>(); |
| 1564 | | address_space &space=state->m_maincpu->space(); |
| 1565 | | UINT64 addr,offs,start,old; |
| 1566 | | offs_t address,offset; |
| 672 | address_space &space = state->m_maincpu->space(); |
| 673 | UINT64 addr, offs, start, old; |
| 674 | offs_t address, offset; |
| 1567 | 675 | |
| 1568 | 676 | if (params < 1) |
| 1569 | 677 | return; |
| 1570 | 678 | if (!debug_command_parameter_number(machine, param[0], &addr)) |
| 1571 | 679 | return; |
| 1572 | | offs=0; |
| 1573 | | offset=0; |
| 680 | offs = 0; |
| 681 | offset = 0; |
| 1574 | 682 | if (params >= 2) |
| 1575 | 683 | { |
| 1576 | 684 | if (!debug_command_parameter_number(machine, param[1], &offs)) |
| 1577 | 685 | return; |
| 1578 | | offset=(offs_t)offs; |
| 686 | offset = (offs_t)offs; |
| 1579 | 687 | } |
| 1580 | | start=addr; |
| 1581 | | address=(offs_t)addr; |
| 1582 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 688 | start = addr; |
| 689 | address = (offs_t)addr; |
| 690 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1583 | 691 | { |
| 1584 | | debug_console_printf(machine,"Address is unmapped.\n"); |
| 692 | debug_console_printf(machine, "Address is unmapped.\n"); |
| 1585 | 693 | return; |
| 1586 | 694 | } |
| 1587 | 695 | if (params >= 2) |
| 1588 | | debug_console_printf(machine,"Entry Object\n"); |
| 696 | debug_console_printf(machine, "Entry Object\n"); |
| 1589 | 697 | else |
| 1590 | | debug_console_printf(machine,"Entry\n"); |
| 1591 | | for (int num=0;num < 32;num++) |
| 698 | debug_console_printf(machine, "Entry\n"); |
| 699 | for (int num = 0; num < 32; num++) |
| 1592 | 700 | { |
| 1593 | 701 | if (params >= 2) |
| 1594 | | debug_console_printf(machine,"%08X %08X\n",(UINT32)addr,(offs_t)addr-offset); |
| 702 | debug_console_printf(machine, "%08X %08X\n", (UINT32)addr, (offs_t)addr - offset); |
| 1595 | 703 | else |
| 1596 | | debug_console_printf(machine,"%08X\n",(UINT32)addr); |
| 1597 | | old=addr; |
| 1598 | | addr=space.read_dword_unaligned(address); |
| 704 | debug_console_printf(machine, "%08X\n", (UINT32)addr); |
| 705 | old = addr; |
| 706 | addr = space.read_dword_unaligned(address); |
| 1599 | 707 | if (addr == start) |
| 1600 | 708 | break; |
| 1601 | 709 | if (addr == old) |
| 1602 | 710 | break; |
| 1603 | | address=(offs_t)addr; |
| 1604 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 711 | address = (offs_t)addr; |
| 712 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1605 | 713 | break; |
| 1606 | 714 | } |
| 1607 | 715 | } |
| r242231 | r242232 | |
| 1609 | 717 | static void curthread_command(running_machine &machine, int ref, int params, const char **param) |
| 1610 | 718 | { |
| 1611 | 719 | chihiro_state *state = machine.driver_data<chihiro_state>(); |
| 1612 | | address_space &space=state->m_maincpu->space(); |
| 720 | address_space &space = state->m_maincpu->space(); |
| 1613 | 721 | UINT64 fsbase; |
| 1614 | | UINT32 kthrd,topstack,tlsdata; |
| 722 | UINT32 kthrd, topstack, tlsdata; |
| 1615 | 723 | offs_t address; |
| 1616 | 724 | |
| 1617 | 725 | fsbase = state->m_maincpu->state_int(44); |
| 1618 | | address=(offs_t)fsbase+0x28; |
| 1619 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 726 | address = (offs_t)fsbase + 0x28; |
| 727 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1620 | 728 | { |
| 1621 | | debug_console_printf(machine,"Address is unmapped.\n"); |
| 729 | debug_console_printf(machine, "Address is unmapped.\n"); |
| 1622 | 730 | return; |
| 1623 | 731 | } |
| 1624 | | kthrd=space.read_dword_unaligned(address); |
| 1625 | | debug_console_printf(machine,"Current thread is %08X\n",kthrd); |
| 1626 | | address=(offs_t)kthrd+0x1c; |
| 1627 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 732 | kthrd = space.read_dword_unaligned(address); |
| 733 | debug_console_printf(machine, "Current thread is %08X\n", kthrd); |
| 734 | address = (offs_t)kthrd + 0x1c; |
| 735 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1628 | 736 | return; |
| 1629 | | topstack=space.read_dword_unaligned(address); |
| 1630 | | debug_console_printf(machine,"Current thread stack top is %08X\n",topstack); |
| 1631 | | address=(offs_t)kthrd+0x28; |
| 1632 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 737 | topstack = space.read_dword_unaligned(address); |
| 738 | debug_console_printf(machine, "Current thread stack top is %08X\n", topstack); |
| 739 | address = (offs_t)kthrd + 0x28; |
| 740 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1633 | 741 | return; |
| 1634 | | tlsdata=space.read_dword_unaligned(address); |
| 742 | tlsdata = space.read_dword_unaligned(address); |
| 1635 | 743 | if (tlsdata == 0) |
| 1636 | | address=(offs_t)topstack-0x210-8; |
| 744 | address = (offs_t)topstack - 0x210 - 8; |
| 1637 | 745 | else |
| 1638 | | address=(offs_t)tlsdata-8; |
| 1639 | | if (!debug_cpu_translate(space,TRANSLATE_READ_DEBUG,&address)) |
| 746 | address = (offs_t)tlsdata - 8; |
| 747 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &address)) |
| 1640 | 748 | return; |
| 1641 | | debug_console_printf(machine,"Current thread function is %08X\n",space.read_dword_unaligned(address)); |
| 749 | debug_console_printf(machine, "Current thread function is %08X\n", space.read_dword_unaligned(address)); |
| 1642 | 750 | } |
| 1643 | 751 | |
| 1644 | 752 | static void generate_irq_command(running_machine &machine, int ref, int params, const char **param) |
| 1645 | 753 | { |
| 1646 | 754 | UINT64 irq; |
| 1647 | | chihiro_state *chst=machine.driver_data<chihiro_state>(); |
| 755 | chihiro_state *chst = machine.driver_data<chihiro_state>(); |
| 1648 | 756 | |
| 1649 | 757 | if (params < 1) |
| 1650 | 758 | return; |
| r242231 | r242232 | |
| 1654 | 762 | return; |
| 1655 | 763 | if (irq == 2) |
| 1656 | 764 | return; |
| 1657 | | chst->debug_generate_irq((int)irq,true); |
| 765 | chst->debug_generate_irq((int)irq, true); |
| 1658 | 766 | } |
| 1659 | 767 | |
| 1660 | 768 | static void nv2a_combiners_command(running_machine &machine, int ref, int params, const char **param) |
| 1661 | 769 | { |
| 1662 | 770 | int en; |
| 1663 | 771 | |
| 1664 | | chihiro_state *chst=machine.driver_data<chihiro_state>(); |
| 1665 | | en=chst->nvidia_nv2a->toggle_register_combiners_usage(); |
| 772 | chihiro_state *chst = machine.driver_data<chihiro_state>(); |
| 773 | en = chst->nvidia_nv2a->toggle_register_combiners_usage(); |
| 1666 | 774 | if (en != 0) |
| 1667 | | debug_console_printf(machine,"Register combiners enabled\n"); |
| 775 | debug_console_printf(machine, "Register combiners enabled\n"); |
| 1668 | 776 | else |
| 1669 | | debug_console_printf(machine,"Register combiners disabled\n"); |
| 777 | debug_console_printf(machine, "Register combiners disabled\n"); |
| 1670 | 778 | } |
| 1671 | 779 | |
| 1672 | 780 | static void grab_texture_command(running_machine &machine, int ref, int params, const char **param) |
| r242231 | r242232 | |
| 1680 | 788 | return; |
| 1681 | 789 | if ((param[1][0] == 0) || (strlen(param[1]) > 127)) |
| 1682 | 790 | return; |
| 1683 | | chst->nvidia_nv2a->debug_grab_texture((int)type,param[1]); |
| 791 | chst->nvidia_nv2a->debug_grab_texture((int)type, param[1]); |
| 1684 | 792 | } |
| 1685 | 793 | |
| 1686 | 794 | static void grab_vprog_command(running_machine &machine, int ref, int params, const char **param) |
| r242231 | r242232 | |
| 1728 | 836 | if (!debug_cpu_translate(space, TRANSLATE_READ_DEBUG, &addr)) |
| 1729 | 837 | return; |
| 1730 | 838 | instruction[0] = space.read_dword_unaligned(address); |
| 1731 | | instruction[1] = space.read_dword_unaligned(address+4); |
| 1732 | | instruction[2] = space.read_dword_unaligned(address+8); |
| 1733 | | instruction[3] = space.read_dword_unaligned(address+12); |
| 1734 | | } else |
| 839 | instruction[1] = space.read_dword_unaligned(address + 4); |
| 840 | instruction[2] = space.read_dword_unaligned(address + 8); |
| 841 | instruction[3] = space.read_dword_unaligned(address + 12); |
| 842 | } |
| 843 | else |
| 1735 | 844 | chst->nvidia_nv2a->debug_grab_vertex_program_slot((int)address, instruction); |
| 1736 | 845 | while (vd.disassemble(instruction, line) != 0) |
| 1737 | 846 | debug_console_printf(machine, "%s\n", line); |
| r242231 | r242232 | |
| 1745 | 854 | |
| 1746 | 855 | static void help_command(running_machine &machine, int ref, int params, const char **param) |
| 1747 | 856 | { |
| 1748 | | debug_console_printf(machine,"Available Chihiro commands:\n"); |
| 1749 | | debug_console_printf(machine," chihiro jamdis,<start>,<size> -- Disassemble <size> bytes of JamTable instructions starting at <start>\n"); |
| 1750 | | debug_console_printf(machine," chihiro dump_string,<address> -- Dump _STRING object at <address>\n"); |
| 1751 | | debug_console_printf(machine," chihiro dump_process,<address> -- Dump _PROCESS object at <address>\n"); |
| 1752 | | debug_console_printf(machine," chihiro dump_list,<address>[,<offset>] -- Dump _LIST_ENTRY chain starting at <address>\n"); |
| 1753 | | debug_console_printf(machine," chihiro curthread -- Print information about current thread\n"); |
| 1754 | | debug_console_printf(machine," chihiro irq,<number> -- Generate interrupt with irq number 0-15\n"); |
| 1755 | | debug_console_printf(machine," chihiro nv2a_combiners -- Toggle use of register combiners\n"); |
| 1756 | | debug_console_printf(machine," chihiro grab_texture,<type>,<filename> -- Save to <filename> the next used texture of type <type>\n"); |
| 1757 | | debug_console_printf(machine," chihiro grab_vprog,<filename> -- save current vertex program instruction slots to <filename>\n"); |
| 1758 | | debug_console_printf(machine," chihiro vprogdis,<address>,<length>[,<type>] -- disassemble <lenght> vertex program instructions at <address> of <type>\n"); |
| 1759 | | debug_console_printf(machine," chihiro help -- this list\n"); |
| 857 | debug_console_printf(machine, "Available Chihiro commands:\n"); |
| 858 | debug_console_printf(machine, " chihiro jamdis,<start>,<size> -- Disassemble <size> bytes of JamTable instructions starting at <start>\n"); |
| 859 | debug_console_printf(machine, " chihiro dump_string,<address> -- Dump _STRING object at <address>\n"); |
| 860 | debug_console_printf(machine, " chihiro dump_process,<address> -- Dump _PROCESS object at <address>\n"); |
| 861 | debug_console_printf(machine, " chihiro dump_list,<address>[,<offset>] -- Dump _LIST_ENTRY chain starting at <address>\n"); |
| 862 | debug_console_printf(machine, " chihiro curthread -- Print information about current thread\n"); |
| 863 | debug_console_printf(machine, " chihiro irq,<number> -- Generate interrupt with irq number 0-15\n"); |
| 864 | debug_console_printf(machine, " chihiro nv2a_combiners -- Toggle use of register combiners\n"); |
| 865 | debug_console_printf(machine, " chihiro grab_texture,<type>,<filename> -- Save to <filename> the next used texture of type <type>\n"); |
| 866 | debug_console_printf(machine, " chihiro grab_vprog,<filename> -- save current vertex program instruction slots to <filename>\n"); |
| 867 | debug_console_printf(machine, " chihiro vprogdis,<address>,<length>[,<type>] -- disassemble <lenght> vertex program instructions at <address> of <type>\n"); |
| 868 | debug_console_printf(machine, " chihiro help -- this list\n"); |
| 1760 | 869 | } |
| 1761 | 870 | |
| 1762 | 871 | static void chihiro_debug_commands(running_machine &machine, int ref, int params, const char **param) |
| 1763 | 872 | { |
| 1764 | 873 | if (params < 1) |
| 1765 | 874 | return; |
| 1766 | | if (strcmp("jamdis",param[0]) == 0) |
| 1767 | | jamtable_disasm_command(machine,ref,params-1,param+1); |
| 1768 | | else if (strcmp("dump_string",param[0]) == 0) |
| 1769 | | dump_string_command(machine,ref,params-1,param+1); |
| 1770 | | else if (strcmp("dump_process",param[0]) == 0) |
| 1771 | | dump_process_command(machine,ref,params-1,param+1); |
| 1772 | | else if (strcmp("dump_list",param[0]) == 0) |
| 1773 | | dump_list_command(machine,ref,params-1,param+1); |
| 1774 | | else if (strcmp("curthread",param[0]) == 0) |
| 1775 | | curthread_command(machine,ref,params-1,param+1); |
| 1776 | | else if (strcmp("irq",param[0]) == 0) |
| 1777 | | generate_irq_command(machine,ref,params-1,param+1); |
| 1778 | | else if (strcmp("nv2a_combiners",param[0]) == 0) |
| 1779 | | nv2a_combiners_command(machine,ref,params-1,param+1); |
| 875 | if (strcmp("jamdis", param[0]) == 0) |
| 876 | jamtable_disasm_command(machine, ref, params - 1, param + 1); |
| 877 | else if (strcmp("dump_string", param[0]) == 0) |
| 878 | dump_string_command(machine, ref, params - 1, param + 1); |
| 879 | else if (strcmp("dump_process", param[0]) == 0) |
| 880 | dump_process_command(machine, ref, params - 1, param + 1); |
| 881 | else if (strcmp("dump_list", param[0]) == 0) |
| 882 | dump_list_command(machine, ref, params - 1, param + 1); |
| 883 | else if (strcmp("curthread", param[0]) == 0) |
| 884 | curthread_command(machine, ref, params - 1, param + 1); |
| 885 | else if (strcmp("irq", param[0]) == 0) |
| 886 | generate_irq_command(machine, ref, params - 1, param + 1); |
| 887 | else if (strcmp("nv2a_combiners", param[0]) == 0) |
| 888 | nv2a_combiners_command(machine, ref, params - 1, param + 1); |
| 1780 | 889 | else if (strcmp("grab_texture", param[0]) == 0) |
| 1781 | 890 | grab_texture_command(machine, ref, params - 1, param + 1); |
| 1782 | 891 | else if (strcmp("grab_vprog", param[0]) == 0) |
| r242231 | r242232 | |
| 1784 | 893 | else if (strcmp("vprogdis", param[0]) == 0) |
| 1785 | 894 | vprogdis_command(machine, ref, params - 1, param + 1); |
| 1786 | 895 | else |
| 1787 | | help_command(machine,ref,params-1,param+1); |
| 896 | help_command(machine, ref, params - 1, param + 1); |
| 1788 | 897 | } |
| 1789 | 898 | |
| 1790 | | /* |
| 1791 | | * Graphics |
| 1792 | | */ |
| 1793 | | |
| 1794 | | UINT32 nv2a_renderer::dilate0(UINT32 value,int bits) // dilate first "bits" bits in "value" |
| 899 | void chihiro_state::debug_generate_irq(int irq, bool active) |
| 1795 | 900 | { |
| 1796 | | UINT32 x,m1,m2,m3; |
| 1797 | | int a; |
| 1798 | | |
| 1799 | | x = value; |
| 1800 | | for (a=0;a < bits;a++) |
| 1801 | | { |
| 1802 | | m2 = 1 << (a << 1); |
| 1803 | | m1 = m2 - 1; |
| 1804 | | m3 = (~m1) << 1; |
| 1805 | | x = (x & m1) + (x & m2) + ((x & m3) << 1); |
| 1806 | | } |
| 1807 | | return x; |
| 1808 | | } |
| 1809 | | |
| 1810 | | UINT32 nv2a_renderer::dilate1(UINT32 value,int bits) // dilate first "bits" bits in "value" |
| 1811 | | { |
| 1812 | | UINT32 x,m1,m2,m3; |
| 1813 | | int a; |
| 1814 | | |
| 1815 | | x = value; |
| 1816 | | for (a=0;a < bits;a++) |
| 1817 | | { |
| 1818 | | m2 = 1 << (a << 1); |
| 1819 | | m1 = m2 - 1; |
| 1820 | | m3 = (~m1) << 1; |
| 1821 | | x = (x & m1) + ((x & m2) << 1) + ((x & m3) << 1); |
| 1822 | | } |
| 1823 | | return x; |
| 1824 | | } |
| 1825 | | |
| 1826 | | void nv2a_renderer::computedilated(void) |
| 1827 | | { |
| 1828 | | int a,b; |
| 1829 | | |
| 1830 | | for (b=0;b < 16;b++) |
| 1831 | | for (a=0;a < 2048;a++) { |
| 1832 | | dilated0[b][a]=dilate0(a,b); |
| 1833 | | dilated1[b][a]=dilate1(a,b); |
| 1834 | | } |
| 1835 | | for (b=0;b < 16;b++) |
| 1836 | | for (a=0;a < 16;a++) |
| 1837 | | dilatechose[(b << 4) + a]=(a < b ? a : b); |
| 1838 | | } |
| 1839 | | |
| 1840 | | int nv2a_renderer::geforce_commandkind(UINT32 word) |
| 1841 | | { |
| 1842 | | if ((word & 0x00000003) == 0x00000002) |
| 1843 | | return 7; // call |
| 1844 | | if ((word & 0x00000003) == 0x00000001) |
| 1845 | | return 6; // jump |
| 1846 | | if ((word & 0xE0030003) == 0x40000000) |
| 1847 | | return 5; // non increasing |
| 1848 | | if ((word & 0xE0000003) == 0x20000000) |
| 1849 | | return 4; // old jump |
| 1850 | | if ((word & 0xFFFF0003) == 0x00030000) |
| 1851 | | return 3; // long non icreasing |
| 1852 | | if ((word & 0xFFFFFFFF) == 0x00020000) |
| 1853 | | return 2; // return |
| 1854 | | if ((word & 0xFFFF0003) == 0x00010000) |
| 1855 | | return 1; // sli conditional |
| 1856 | | if ((word & 0xE0030003) == 0x00000000) |
| 1857 | | return 0; // increasing |
| 1858 | | return -1; |
| 1859 | | } |
| 1860 | | |
| 1861 | | UINT32 nv2a_renderer::geforce_object_offset(UINT32 handle) |
| 1862 | | { |
| 1863 | | UINT32 h=((((handle >> 11) ^ handle) >> 11) ^ handle) & 0x7ff; |
| 1864 | | UINT32 o=(pfifo[0x210/4] & 0x1f) << 8; // or 12 ? |
| 1865 | | UINT32 e=o+h*8; // at 0xfd000000+0x00700000 |
| 1866 | | UINT32 w; |
| 1867 | | |
| 1868 | | if (ramin[e/4] != handle) |
| 1869 | | e=0; |
| 1870 | | w=ramin[e/4+1]; |
| 1871 | | return (w & 0xffff)*0x10; |
| 1872 | | } |
| 1873 | | |
| 1874 | | void nv2a_renderer::geforce_read_dma_object(UINT32 handle,UINT32 &offset,UINT32 &size) |
| 1875 | | { |
| 1876 | | //UINT32 objclass,pt_present,pt_linear,access,target,rorw; |
| 1877 | | UINT32 dma_adjust,dma_frame; |
| 1878 | | UINT32 o=geforce_object_offset(handle); |
| 1879 | | |
| 1880 | | o=o/4; |
| 1881 | | //objclass=ramin[o] & 0xfff; |
| 1882 | | //pt_present=(ramin[o] >> 12) & 1; |
| 1883 | | //pt_linear=(ramin[o] >> 13) & 1; |
| 1884 | | //access=(ramin[o] >> 14) & 3; |
| 1885 | | //target=(ramin[o] >> 16) & 3; |
| 1886 | | dma_adjust=(ramin[o] >> 20) & 0xfff; |
| 1887 | | size=ramin[o+1]; |
| 1888 | | //rorw=ramin[o+2] & 1; |
| 1889 | | dma_frame=ramin[o+2] & 0xfffff000; |
| 1890 | | offset=dma_frame+dma_adjust; |
| 1891 | | } |
| 1892 | | |
| 1893 | | /*void myline(bitmap_rgb32 &bmp,float x1,float y1,float x2,float y2) |
| 1894 | | { |
| 1895 | | int xx1,yy1,xx2,yy2; |
| 1896 | | |
| 1897 | | xx1=x1; |
| 1898 | | xx2=x2; |
| 1899 | | yy1=y1; |
| 1900 | | yy2=y2; |
| 1901 | | if (xx1 == xx2) { |
| 1902 | | if (yy1 > yy2) { |
| 1903 | | int t=yy1; |
| 1904 | | yy1=yy2; |
| 1905 | | yy2=t; |
| 1906 | | } |
| 1907 | | for (int y=yy1;y <= yy2;y++) |
| 1908 | | *((UINT32 *)bmp.raw_pixptr(y,xx1))= -1; |
| 1909 | | } else if (yy1 == yy2) { |
| 1910 | | if (xx1 > xx2) { |
| 1911 | | int t=xx1; |
| 1912 | | xx1=xx2; |
| 1913 | | xx2=t; |
| 1914 | | } |
| 1915 | | for (int x=xx1;x <= xx2;x++) |
| 1916 | | *((UINT32 *)bmp.raw_pixptr(yy1,x))= -1; |
| 1917 | | } |
| 1918 | | }*/ |
| 1919 | | |
| 1920 | | inline UINT32 convert_a4r4g4b4_a8r8g8b8(UINT32 a4r4g4b4) |
| 1921 | | { |
| 1922 | | UINT32 a8r8g8b8; |
| 1923 | | int ca,cr,cg,cb; |
| 1924 | | |
| 1925 | | cb=pal4bit(a4r4g4b4 & 0x000f); |
| 1926 | | cg=pal4bit((a4r4g4b4 & 0x00f0) >> 4); |
| 1927 | | cr=pal4bit((a4r4g4b4 & 0x0f00) >> 8); |
| 1928 | | ca=pal4bit((a4r4g4b4 & 0xf000) >> 12); |
| 1929 | | a8r8g8b8=(ca<<24)|(cr<<16)|(cg<<8)|(cb); // color converted to 8 bits per component |
| 1930 | | return a8r8g8b8; |
| 1931 | | } |
| 1932 | | |
| 1933 | | inline UINT32 convert_a1r5g5b5_a8r8g8b8(UINT32 a1r5g5b5) |
| 1934 | | { |
| 1935 | | UINT32 a8r8g8b8; |
| 1936 | | int ca,cr,cg,cb; |
| 1937 | | |
| 1938 | | cb=pal5bit(a1r5g5b5 & 0x001f); |
| 1939 | | cg=pal5bit((a1r5g5b5 & 0x03e0) >> 5); |
| 1940 | | cr=pal5bit((a1r5g5b5 & 0x7c00) >> 10); |
| 1941 | | ca=a1r5g5b5 & 0x8000 ? 0xff : 0; |
| 1942 | | a8r8g8b8=(ca<<24)|(cr<<16)|(cg<<8)|(cb); // color converted to 8 bits per component |
| 1943 | | return a8r8g8b8; |
| 1944 | | } |
| 1945 | | |
| 1946 | | inline UINT32 convert_r5g6b5_r8g8b8(UINT32 r5g6b5) |
| 1947 | | { |
| 1948 | | UINT32 r8g8b8; |
| 1949 | | int cr,cg,cb; |
| 1950 | | |
| 1951 | | cb=pal5bit(r5g6b5 & 0x001f); |
| 1952 | | cg=pal6bit((r5g6b5 & 0x07e0) >> 5); |
| 1953 | | cr=pal5bit((r5g6b5 & 0xf800) >> 11); |
| 1954 | | r8g8b8=(cr<<16)|(cg<<8)|(cb); // color converted to 8 bits per component |
| 1955 | | return r8g8b8; |
| 1956 | | } |
| 1957 | | |
| 1958 | | UINT32 nv2a_renderer::texture_get_texel(int number,int x,int y) |
| 1959 | | { |
| 1960 | | UINT32 to, s, c, sa, ca; |
| 1961 | | UINT32 a4r4g4b4, a1r5g5b5, r5g6b5; |
| 1962 | | int bx, by; |
| 1963 | | int color0, color1, color0m2, color1m2, alpha0, alpha1; |
| 1964 | | UINT32 codes; |
| 1965 | | UINT64 alphas; |
| 1966 | | int cr, cg, cb; |
| 1967 | | |
| 1968 | | // force to [0,size-1] |
| 1969 | | x = (unsigned int)x & (texture[number].sizeu - 1); |
| 1970 | | y = (unsigned int)y & (texture[number].sizev - 1); |
| 1971 | | switch (texture[number].format) { |
| 1972 | | case A8R8G8B8: |
| 1973 | | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 1974 | | return *(((UINT32 *)texture[number].buffer) + to); // get texel color |
| 1975 | | case DXT1: |
| 1976 | | bx = x >> 2; |
| 1977 | | by = y >> 2; |
| 1978 | | x = x & 3; |
| 1979 | | y = y & 3; |
| 1980 | | to = bx + by*(texture[number].sizeu >> 2); |
| 1981 | | color0 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 0); |
| 1982 | | color1 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 1); |
| 1983 | | codes = *((UINT32 *)(((UINT64 *)texture[number].buffer) + to) + 1); |
| 1984 | | s = (y << 3) + (x << 1); |
| 1985 | | c = (codes >> s) & 3; |
| 1986 | | c = c + (color0 > color1 ? 0 : 4); |
| 1987 | | color0m2 = color0 << 1; |
| 1988 | | color1m2 = color1 << 1; |
| 1989 | | switch (c) { |
| 1990 | | case 0: |
| 1991 | | return 0xff000000 + convert_r5g6b5_r8g8b8(color0); |
| 1992 | | case 1: |
| 1993 | | return 0xff000000 + convert_r5g6b5_r8g8b8(color1); |
| 1994 | | case 2: |
| 1995 | | cb = pal5bit(((color0m2 & 0x003e) + (color1 & 0x001f)) / 3); |
| 1996 | | cg = pal6bit(((color0m2 & 0x0fc0) + (color1 & 0x07e0)) / 3 >> 5); |
| 1997 | | cr = pal5bit(((color0m2 & 0x1f000) + color1) / 3 >> 11); |
| 1998 | | return 0xff000000 | (cr << 16) | (cg << 8) | (cb); |
| 1999 | | case 3: |
| 2000 | | cb = pal5bit(((color1m2 & 0x003e) + (color0 & 0x001f)) / 3); |
| 2001 | | cg = pal6bit(((color1m2 & 0x0fc0) + (color0 & 0x07e0)) / 3 >> 5); |
| 2002 | | cr = pal5bit(((color1m2 & 0x1f000) + color0) / 3 >> 11); |
| 2003 | | return 0xff000000 | (cr << 16) | (cg << 8) | (cb); |
| 2004 | | case 4: |
| 2005 | | return 0xff000000 + convert_r5g6b5_r8g8b8(color0); |
| 2006 | | case 5: |
| 2007 | | return 0xff000000 + convert_r5g6b5_r8g8b8(color1); |
| 2008 | | case 6: |
| 2009 | | cb = pal5bit(((color0 & 0x001f) + (color1 & 0x001f)) / 2); |
| 2010 | | cg = pal6bit(((color0 & 0x07e0) + (color1 & 0x07e0)) / 2 >> 5); |
| 2011 | | cr = pal5bit(((color0 & 0xf800) + (color1 & 0xf800)) / 2 >> 11); |
| 2012 | | return 0xff000000 | (cr << 16) | (cg << 8) | (cb); |
| 2013 | | default: |
| 2014 | | return 0xff000000; |
| 2015 | | } |
| 2016 | | case DXT3: |
| 2017 | | bx = x >> 2; |
| 2018 | | by = y >> 2; |
| 2019 | | x = x & 3; |
| 2020 | | y = y & 3; |
| 2021 | | to = (bx + by*(texture[number].sizeu >> 2)) << 1; |
| 2022 | | color0 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 4); |
| 2023 | | color1 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 5); |
| 2024 | | codes = *((UINT32 *)(((UINT64 *)texture[number].buffer) + to) + 3); |
| 2025 | | alphas = *(((UINT64 *)texture[number].buffer) + to); |
| 2026 | | s = (y << 3) + (x << 1); |
| 2027 | | sa = ((y << 2) + x) << 2; |
| 2028 | | c = (codes >> s) & 3; |
| 2029 | | ca = (alphas >> sa) & 15; |
| 2030 | | switch (c) { |
| 2031 | | case 0: |
| 2032 | | return ((ca + (ca << 4)) << 24) + convert_r5g6b5_r8g8b8(color0); |
| 2033 | | case 1: |
| 2034 | | return ((ca + (ca << 4)) << 24) + convert_r5g6b5_r8g8b8(color1); |
| 2035 | | case 2: |
| 2036 | | cb = pal5bit((2 * (color0 & 0x001f) + (color1 & 0x001f)) / 3); |
| 2037 | | cg = pal6bit((2 * (color0 & 0x07e0) + (color1 & 0x07e0)) / 3 >> 5); |
| 2038 | | cr = pal5bit((2 * (color0 & 0xf800) + (color1 & 0xf800)) / 3 >> 11); |
| 2039 | | return ((ca + (ca << 4)) << 24) | (cr << 16) | (cg << 8) | (cb); |
| 2040 | | default: |
| 2041 | | cb = pal5bit(((color0 & 0x001f) + 2 * (color1 & 0x001f)) / 3); |
| 2042 | | cg = pal6bit(((color0 & 0x07e0) + 2 * (color1 & 0x07e0)) / 3 >> 5); |
| 2043 | | cr = pal5bit(((color0 & 0xf800) + 2 * (color1 & 0xf800)) / 3 >> 11); |
| 2044 | | return ((ca + (ca << 4)) << 24) | (cr << 16) | (cg << 8) | (cb); |
| 2045 | | } |
| 2046 | | case A4R4G4B4: |
| 2047 | | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 2048 | | a4r4g4b4 = *(((UINT16 *)texture[number].buffer) + to); // get texel color |
| 2049 | | return convert_a4r4g4b4_a8r8g8b8(a4r4g4b4); |
| 2050 | | case A1R5G5B5: |
| 2051 | | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 2052 | | a1r5g5b5 = *(((UINT16 *)texture[number].buffer) + to); // get texel color |
| 2053 | | return convert_a1r5g5b5_a8r8g8b8(a1r5g5b5); |
| 2054 | | case R5G6B5: |
| 2055 | | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 2056 | | r5g6b5 = *(((UINT16 *)texture[number].buffer) + to); // get texel color |
| 2057 | | return 0xff000000 + convert_r5g6b5_r8g8b8(r5g6b5); |
| 2058 | | case R8G8B8_RECT: |
| 2059 | | to = texture[number].rectangle_pitch*y + (x << 2); |
| 2060 | | return *((UINT32 *)(((UINT8 *)texture[number].buffer) + to)); |
| 2061 | | case A8R8G8B8_RECT: |
| 2062 | | to = texture[number].rectangle_pitch*y + (x << 2); |
| 2063 | | return *((UINT32 *)(((UINT8 *)texture[number].buffer) + to)); |
| 2064 | | case DXT5: |
| 2065 | | bx = x >> 2; |
| 2066 | | by = y >> 2; |
| 2067 | | x = x & 3; |
| 2068 | | y = y & 3; |
| 2069 | | to = (bx + by*(texture[number].sizeu >> 2)) << 1; |
| 2070 | | color0 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 4); |
| 2071 | | color1 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 5); |
| 2072 | | codes = *((UINT32 *)(((UINT64 *)texture[number].buffer) + to) + 3); |
| 2073 | | alpha0 = *((UINT8 *)(((UINT64 *)texture[number].buffer) + to) + 0); |
| 2074 | | alpha1 = *((UINT8 *)(((UINT64 *)texture[number].buffer) + to) + 1); |
| 2075 | | alphas = *(((UINT64 *)texture[number].buffer) + to); |
| 2076 | | s = (y << 3) + (x << 1); |
| 2077 | | sa = ((y << 2) + x) * 3; |
| 2078 | | c = (codes >> s) & 3; |
| 2079 | | ca = (alphas >> sa) & 7; |
| 2080 | | ca = ca + (alpha0 > alpha1 ? 0 : 8); |
| 2081 | | switch (ca) { |
| 2082 | | case 0: |
| 2083 | | ca = alpha0; |
| 2084 | | break; |
| 2085 | | case 1: |
| 2086 | | ca = alpha1; |
| 2087 | | break; |
| 2088 | | case 2: |
| 2089 | | ca = (6 * alpha0 + 1 * alpha1) / 7; |
| 2090 | | break; |
| 2091 | | case 3: |
| 2092 | | ca = (5 * alpha0 + 2 * alpha1) / 7; |
| 2093 | | break; |
| 2094 | | case 4: |
| 2095 | | ca = (4 * alpha0 + 3 * alpha1) / 7; |
| 2096 | | break; |
| 2097 | | case 5: |
| 2098 | | ca = (3 * alpha0 + 4 * alpha1) / 7; |
| 2099 | | break; |
| 2100 | | case 6: |
| 2101 | | ca = (2 * alpha0 + 5 * alpha1) / 7; |
| 2102 | | break; |
| 2103 | | case 7: |
| 2104 | | ca = (1 * alpha0 + 6 * alpha1) / 7; |
| 2105 | | break; |
| 2106 | | case 8: |
| 2107 | | ca = alpha0; |
| 2108 | | break; |
| 2109 | | case 9: |
| 2110 | | ca = alpha1; |
| 2111 | | break; |
| 2112 | | case 10: |
| 2113 | | ca = (4 * alpha0 + 1 * alpha1) / 5; |
| 2114 | | break; |
| 2115 | | case 11: |
| 2116 | | ca = (3 * alpha0 + 2 * alpha1) / 5; |
| 2117 | | break; |
| 2118 | | case 12: |
| 2119 | | ca = (2 * alpha0 + 3 * alpha1) / 5; |
| 2120 | | break; |
| 2121 | | case 13: |
| 2122 | | ca = (1 * alpha0 + 4 * alpha1) / 5; |
| 2123 | | break; |
| 2124 | | case 14: |
| 2125 | | ca = 0; |
| 2126 | | break; |
| 2127 | | case 15: |
| 2128 | | ca = 255; |
| 2129 | | break; |
| 2130 | | } |
| 2131 | | switch (c) { |
| 2132 | | case 0: |
| 2133 | | return (ca << 24) + convert_r5g6b5_r8g8b8(color0); |
| 2134 | | case 1: |
| 2135 | | return (ca << 24) + convert_r5g6b5_r8g8b8(color1); |
| 2136 | | case 2: |
| 2137 | | cb = pal5bit((2 * (color0 & 0x001f) + (color1 & 0x001f)) / 3); |
| 2138 | | cg = pal6bit((2 * (color0 & 0x07e0) + (color1 & 0x07e0)) / 3 >> 5); |
| 2139 | | cr = pal5bit((2 * (color0 & 0xf800) + (color1 & 0xf800)) / 3 >> 11); |
| 2140 | | return (ca << 24) | (cr << 16) | (cg << 8) | (cb); |
| 2141 | | default: |
| 2142 | | cb = pal5bit(((color0 & 0x001f) + 2 * (color1 & 0x001f)) / 3); |
| 2143 | | cg = pal6bit(((color0 & 0x07e0) + 2 * (color1 & 0x07e0)) / 3 >> 5); |
| 2144 | | cr = pal5bit(((color0 & 0xf800) + 2 * (color1 & 0xf800)) / 3 >> 11); |
| 2145 | | return (ca << 24) | (cr << 16) | (cg << 8) | (cb); |
| 2146 | | } |
| 2147 | | default: |
| 2148 | | return 0xff00ff00; |
| 2149 | | } |
| 2150 | | } |
| 2151 | | |
| 2152 | | void nv2a_renderer::write_pixel(int x, int y, UINT32 color) |
| 2153 | | { |
| 2154 | | void *addr; |
| 2155 | | UINT32 fbcolor; |
| 2156 | | UINT32 c[4], fb[4], s[4], d[4], cc[4]; |
| 2157 | | |
| 2158 | | addr = this->fb.raw_pixptr(y, x); |
| 2159 | | fbcolor = *((UINT32 *)addr); |
| 2160 | | c[3] = color >> 24; |
| 2161 | | c[2] = (color >> 16) & 255; |
| 2162 | | c[1] = (color >> 8) & 255; |
| 2163 | | c[0] = color & 255; |
| 2164 | | fb[3] = fbcolor >> 24; |
| 2165 | | fb[2] = (fbcolor >> 16) & 255; |
| 2166 | | fb[1] = (fbcolor >> 8) & 255; |
| 2167 | | fb[0] = fbcolor & 255; |
| 2168 | | cc[3] = blend_color >> 24; |
| 2169 | | cc[2] = (blend_color >> 16) & 255; |
| 2170 | | cc[1] = (blend_color >> 8) & 255; |
| 2171 | | cc[0] = blend_color & 255; |
| 2172 | | // ownership test and scissor test not done |
| 2173 | | // alpha test |
| 2174 | | if (alpha_test_enabled) { |
| 2175 | | switch (alpha_func) { |
| 2176 | | case nv2a_renderer::NEVER: |
| 2177 | | return; |
| 2178 | | case nv2a_renderer::ALWAYS: |
| 2179 | | default: |
| 2180 | | break; |
| 2181 | | case nv2a_renderer::LESS: |
| 2182 | | if (c[3] >= alpha_reference) |
| 2183 | | return; |
| 2184 | | break; |
| 2185 | | case nv2a_renderer::LEQUAL: |
| 2186 | | if (c[3] > alpha_reference) |
| 2187 | | return; |
| 2188 | | break; |
| 2189 | | case nv2a_renderer::EQUAL: |
| 2190 | | if (c[3] != alpha_reference) |
| 2191 | | return; |
| 2192 | | break; |
| 2193 | | case nv2a_renderer::GEQUAL: |
| 2194 | | if (c[3] < alpha_reference) |
| 2195 | | return; |
| 2196 | | break; |
| 2197 | | case nv2a_renderer::GREATER: |
| 2198 | | if (c[3] <= alpha_reference) |
| 2199 | | return; |
| 2200 | | break; |
| 2201 | | case nv2a_renderer::NOTEQUAL: |
| 2202 | | if (c[3] == alpha_reference) |
| 2203 | | return; |
| 2204 | | break; |
| 2205 | | } |
| 2206 | | } |
| 2207 | | // stencil test not done |
| 2208 | | // depth buffer test not done |
| 2209 | | // blending |
| 2210 | | if (blending_enabled) { |
| 2211 | | switch (blend_function_source) { |
| 2212 | | case nv2a_renderer::ZERO: |
| 2213 | | s[3] = s[2] = s[1] = s[0] = 0; |
| 2214 | | break; |
| 2215 | | case nv2a_renderer::ONE: |
| 2216 | | default: |
| 2217 | | s[3] = s[2] = s[1] = s[0] = 255; |
| 2218 | | break; |
| 2219 | | case nv2a_renderer::DST_COLOR: |
| 2220 | | s[3] = fb[3]; |
| 2221 | | s[2] = fb[2]; |
| 2222 | | s[1] = fb[1]; |
| 2223 | | s[0] = fb[0]; |
| 2224 | | break; |
| 2225 | | case nv2a_renderer::ONE_MINUS_DST_COLOR: |
| 2226 | | s[3] = fb[3] ^ 255; |
| 2227 | | s[2] = fb[2] ^ 255; |
| 2228 | | s[1] = fb[1] ^ 255; |
| 2229 | | s[0] = fb[0] ^ 255; |
| 2230 | | break; |
| 2231 | | case nv2a_renderer::SRC_ALPHA: |
| 2232 | | s[3] = s[2] = s[1] = s[0] = c[3]; |
| 2233 | | break; |
| 2234 | | case nv2a_renderer::ONE_MINUS_SRC_ALPHA: |
| 2235 | | s[3] = s[2] = s[1] = s[0] = c[3] ^ 255; |
| 2236 | | break; |
| 2237 | | case nv2a_renderer::DST_ALPHA: |
| 2238 | | s[3] = s[2] = s[1] = s[0] = fb[3]; |
| 2239 | | break; |
| 2240 | | case nv2a_renderer::ONE_MINUS_DST_ALPHA: |
| 2241 | | s[3] = s[2] = s[1] = s[0] = fb[3] ^ 255; |
| 2242 | | break; |
| 2243 | | case nv2a_renderer::CONSTANT_COLOR: |
| 2244 | | s[3] = cc[3]; |
| 2245 | | s[2] = cc[2]; |
| 2246 | | s[1] = cc[1]; |
| 2247 | | s[0] = cc[0]; |
| 2248 | | break; |
| 2249 | | case nv2a_renderer::ONE_MINUS_CONSTANT_COLOR: |
| 2250 | | s[3] = cc[3] ^ 255; |
| 2251 | | s[2] = cc[2] ^ 255; |
| 2252 | | s[1] = cc[1] ^ 255; |
| 2253 | | s[0] = cc[0] ^ 255; |
| 2254 | | break; |
| 2255 | | case nv2a_renderer::CONSTANT_ALPHA: |
| 2256 | | s[3] = s[2] = s[1] = s[0] = cc[3]; |
| 2257 | | break; |
| 2258 | | case nv2a_renderer::ONE_MINUS_CONSTANT_ALPHA: |
| 2259 | | s[3] = s[2] = s[1] = s[0] = cc[3] ^ 255; |
| 2260 | | break; |
| 2261 | | case nv2a_renderer::SRC_ALPHA_SATURATE: |
| 2262 | | s[3] = 255; |
| 2263 | | if (c[3] < (fb[3] ^ 255)) |
| 2264 | | s[2] = c[3]; |
| 2265 | | else |
| 2266 | | s[2] = fb[3]; |
| 2267 | | s[1] = s[0] = s[2]; |
| 2268 | | break; |
| 2269 | | } |
| 2270 | | switch (blend_function_destination) { |
| 2271 | | case nv2a_renderer::ZERO: |
| 2272 | | default: |
| 2273 | | d[3] = d[2] = d[1] = d[0] = 0; |
| 2274 | | break; |
| 2275 | | case nv2a_renderer::ONE: |
| 2276 | | d[3] = d[2] = d[1] = d[0] = 255; |
| 2277 | | break; |
| 2278 | | case nv2a_renderer::SRC_COLOR: |
| 2279 | | d[3] = c[3]; |
| 2280 | | d[2] = c[2]; |
| 2281 | | d[1] = c[1]; |
| 2282 | | d[0] = c[0]; |
| 2283 | | break; |
| 2284 | | case nv2a_renderer::ONE_MINUS_SRC_COLOR: |
| 2285 | | d[3] = c[3] ^ 255; |
| 2286 | | d[2] = c[2] ^ 255; |
| 2287 | | d[1] = c[1] ^ 255; |
| 2288 | | d[0] = c[0] ^ 255; |
| 2289 | | break; |
| 2290 | | case nv2a_renderer::SRC_ALPHA: |
| 2291 | | d[3] = d[2] = d[1] = d[0] = c[3]; |
| 2292 | | break; |
| 2293 | | case nv2a_renderer::ONE_MINUS_SRC_ALPHA: |
| 2294 | | d[3] = d[2] = d[1] = d[0] = c[3] ^ 255; |
| 2295 | | break; |
| 2296 | | case nv2a_renderer::DST_ALPHA: |
| 2297 | | d[3] = d[2] = d[1] = d[0] = fb[3]; |
| 2298 | | break; |
| 2299 | | case nv2a_renderer::ONE_MINUS_DST_ALPHA: |
| 2300 | | d[3] = d[2] = d[1] = d[0] = fb[3] ^ 255; |
| 2301 | | break; |
| 2302 | | case nv2a_renderer::CONSTANT_COLOR: |
| 2303 | | d[3] = cc[3]; |
| 2304 | | d[2] = cc[2]; |
| 2305 | | d[1] = cc[1]; |
| 2306 | | d[0] = cc[0]; |
| 2307 | | break; |
| 2308 | | case nv2a_renderer::ONE_MINUS_CONSTANT_COLOR: |
| 2309 | | d[3] = cc[3] ^ 255; |
| 2310 | | d[2] = cc[2] ^ 255; |
| 2311 | | d[1] = cc[1] ^ 255; |
| 2312 | | d[0] = cc[0] ^ 255; |
| 2313 | | break; |
| 2314 | | case nv2a_renderer::CONSTANT_ALPHA: |
| 2315 | | d[3] = d[2] = d[1] = d[0] = cc[3]; |
| 2316 | | break; |
| 2317 | | case nv2a_renderer::ONE_MINUS_CONSTANT_ALPHA: |
| 2318 | | d[3] = d[2] = d[1] = d[0] = cc[3] ^ 255; |
| 2319 | | break; |
| 2320 | | } |
| 2321 | | switch (blend_equation) { |
| 2322 | | case nv2a_renderer::FUNC_ADD: |
| 2323 | | c[3] = (c[3]*s[3] + fb[3]*d[3]) / 255; |
| 2324 | | if (c[3] > 255) |
| 2325 | | c[3] = 255; |
| 2326 | | c[2] = (c[2]*s[2] + fb[2]*d[2]) / 255; |
| 2327 | | if (c[2] > 255) |
| 2328 | | c[2] = 255; |
| 2329 | | c[1] = (c[1]*s[1] + fb[1]*d[1]) / 255; |
| 2330 | | if (c[1] > 255) |
| 2331 | | c[1] = 255; |
| 2332 | | c[0] = (c[0]*s[0] + fb[0]*d[0]) / 255; |
| 2333 | | if (c[0] > 255) |
| 2334 | | c[0] = 255; |
| 2335 | | break; |
| 2336 | | case nv2a_renderer::FUNC_SUBTRACT: |
| 2337 | | c[3] = (c[3]*s[3] - fb[3]*d[3]) / 255; |
| 2338 | | if (c[3] < 0) |
| 2339 | | c[3] = 255; |
| 2340 | | c[2] = (c[2]*s[2] - fb[2]*d[2]) / 255; |
| 2341 | | if (c[2] < 0) |
| 2342 | | c[2] = 255; |
| 2343 | | c[1] = (c[1]*s[1] - fb[1]*d[1]) / 255; |
| 2344 | | if (c[1] < 0) |
| 2345 | | c[1] = 255; |
| 2346 | | c[0] = (c[0]*s[0] - fb[0]*d[0]) / 255; |
| 2347 | | if (c[0] < 0) |
| 2348 | | c[0] = 255; |
| 2349 | | break; |
| 2350 | | case nv2a_renderer::FUNC_REVERSE_SUBTRACT: |
| 2351 | | c[3] = (fb[3] * d[3] - c[3] * s[3]) / 255; |
| 2352 | | if (c[3] < 0) |
| 2353 | | c[3] = 255; |
| 2354 | | c[2] = (fb[2] * d[2] - c[2] * s[2]) / 255; |
| 2355 | | if (c[2] < 0) |
| 2356 | | c[2] = 255; |
| 2357 | | c[1] = (fb[1] * d[1] - c[1] * s[1]) / 255; |
| 2358 | | if (c[1] < 0) |
| 2359 | | c[1] = 255; |
| 2360 | | c[0] = (fb[0] * d[0] - c[0] * s[0]) / 255; |
| 2361 | | if (c[0] < 0) |
| 2362 | | c[0] = 255; |
| 2363 | | break; |
| 2364 | | case nv2a_renderer::MIN: |
| 2365 | | c[3] = s[3]; |
| 2366 | | if (d[3] < c[3]) |
| 2367 | | c[3] = d[3]; |
| 2368 | | c[2] = s[2]; |
| 2369 | | if (d[2] < c[2]) |
| 2370 | | c[2] = d[2]; |
| 2371 | | c[1] = s[1]; |
| 2372 | | if (d[1] < c[1]) |
| 2373 | | c[1] = d[1]; |
| 2374 | | c[0] = s[0]; |
| 2375 | | if (d[0] < c[0]) |
| 2376 | | c[0] = d[0]; |
| 2377 | | break; |
| 2378 | | case nv2a_renderer::MAX: |
| 2379 | | c[3] = s[3]; |
| 2380 | | if (d[3] > c[3]) |
| 2381 | | c[3] = d[3]; |
| 2382 | | c[2] = s[2]; |
| 2383 | | if (d[2] > c[2]) |
| 2384 | | c[2] = d[2]; |
| 2385 | | c[1] = s[1]; |
| 2386 | | if (d[1] > c[1]) |
| 2387 | | c[1] = d[1]; |
| 2388 | | c[0] = s[0]; |
| 2389 | | if (d[0] > c[0]) |
| 2390 | | c[0] = d[0]; |
| 2391 | | break; |
| 2392 | | } |
| 2393 | | } |
| 2394 | | // dithering not done |
| 2395 | | // logical operation |
| 2396 | | if (logical_operation_enabled) { |
| 2397 | | switch (logical_operation) { |
| 2398 | | case nv2a_renderer::CLEAR: |
| 2399 | | c[3] = 0; |
| 2400 | | c[2] = 0; |
| 2401 | | c[1] = 0; |
| 2402 | | c[0] = 0; |
| 2403 | | break; |
| 2404 | | case nv2a_renderer::AND: |
| 2405 | | c[3] = c[3] & fb[3]; |
| 2406 | | c[2] = c[2] & fb[2]; |
| 2407 | | c[1] = c[1] & fb[1]; |
| 2408 | | c[0] = c[0] & fb[0]; |
| 2409 | | break; |
| 2410 | | case nv2a_renderer::AND_REVERSE: |
| 2411 | | c[3] = c[3] & (fb[3] ^ 255); |
| 2412 | | c[2] = c[2] & (fb[2] ^ 255); |
| 2413 | | c[1] = c[1] & (fb[1] ^ 255); |
| 2414 | | c[0] = c[0] & (fb[0] ^ 255); |
| 2415 | | break; |
| 2416 | | case nv2a_renderer::COPY: |
| 2417 | | default: |
| 2418 | | break; |
| 2419 | | case nv2a_renderer::AND_INVERTED: |
| 2420 | | c[3] = (c[3] ^ 255) & fb[3]; |
| 2421 | | c[2] = (c[2] ^ 255) & fb[2]; |
| 2422 | | c[1] = (c[1] ^ 255) & fb[1]; |
| 2423 | | c[0] = (c[0] ^ 255) & fb[0]; |
| 2424 | | break; |
| 2425 | | case nv2a_renderer::NOOP: |
| 2426 | | c[3] = fb[3]; |
| 2427 | | c[2] = fb[2]; |
| 2428 | | c[1] = fb[1]; |
| 2429 | | c[0] = fb[0]; |
| 2430 | | break; |
| 2431 | | case nv2a_renderer::XOR: |
| 2432 | | c[3] = c[3] ^ fb[3]; |
| 2433 | | c[2] = c[2] ^ fb[2]; |
| 2434 | | c[1] = c[1] ^ fb[1]; |
| 2435 | | c[0] = c[0] ^ fb[0]; |
| 2436 | | break; |
| 2437 | | case nv2a_renderer::OR: |
| 2438 | | c[3] = c[3] | fb[3]; |
| 2439 | | c[2] = c[2] | fb[2]; |
| 2440 | | c[1] = c[1] | fb[1]; |
| 2441 | | c[0] = c[0] | fb[0]; |
| 2442 | | break; |
| 2443 | | case nv2a_renderer::NOR: |
| 2444 | | c[3] = (c[3] | fb[3]) ^ 255; |
| 2445 | | c[2] = (c[2] | fb[2]) ^ 255; |
| 2446 | | c[1] = (c[1] | fb[1]) ^ 255; |
| 2447 | | c[0] = (c[0] | fb[0]) ^ 255; |
| 2448 | | break; |
| 2449 | | case nv2a_renderer::EQUIV: |
| 2450 | | c[3] = (c[3] ^ fb[3]) ^ 255; |
| 2451 | | c[2] = (c[2] ^ fb[2]) ^ 255; |
| 2452 | | c[1] = (c[1] ^ fb[1]) ^ 255; |
| 2453 | | c[0] = (c[0] ^ fb[0]) ^ 255; |
| 2454 | | break; |
| 2455 | | case nv2a_renderer::INVERT: |
| 2456 | | c[3] = fb[3] ^ 255; |
| 2457 | | c[2] = fb[2] ^ 255; |
| 2458 | | c[1] = fb[1] ^ 255; |
| 2459 | | c[0] = fb[0] ^ 255; |
| 2460 | | break; |
| 2461 | | case nv2a_renderer::OR_REVERSE: |
| 2462 | | c[3] = c[3] | (fb[3] ^ 255); |
| 2463 | | c[2] = c[2] | (fb[2] ^ 255); |
| 2464 | | c[1] = c[1] | (fb[1] ^ 255); |
| 2465 | | c[0] = c[0] | (fb[0] ^ 255); |
| 2466 | | break; |
| 2467 | | case nv2a_renderer::COPY_INVERTED: |
| 2468 | | c[3] = c[3] ^ 255; |
| 2469 | | c[2] = c[2] ^ 255; |
| 2470 | | c[1] = c[1] ^ 255; |
| 2471 | | c[0] = c[0] ^ 255; |
| 2472 | | break; |
| 2473 | | case nv2a_renderer::OR_INVERTED: |
| 2474 | | c[3] = (c[3] ^ 255) | fb[3]; |
| 2475 | | c[2] = (c[2] ^ 255) | fb[2]; |
| 2476 | | c[1] = (c[1] ^ 255) | fb[1]; |
| 2477 | | c[0] = (c[0] ^ 255) | fb[0]; |
| 2478 | | break; |
| 2479 | | case nv2a_renderer::NAND: |
| 2480 | | c[3] = (c[3] & fb[3]) ^ 255; |
| 2481 | | c[2] = (c[2] & fb[2]) ^ 255; |
| 2482 | | c[1] = (c[1] & fb[1]) ^ 255; |
| 2483 | | c[0] = (c[0] & fb[0]) ^ 255; |
| 2484 | | break; |
| 2485 | | case nv2a_renderer::SET: |
| 2486 | | c[3] = 255; |
| 2487 | | c[2] = 255; |
| 2488 | | c[1] = 255; |
| 2489 | | c[0] = 255; |
| 2490 | | break; |
| 2491 | | } |
| 2492 | | } |
| 2493 | | fbcolor = (c[3] << 24) | (c[2] << 16) | (c[1] << 8) | c[0]; |
| 2494 | | *((UINT32 *)addr) = fbcolor; |
| 2495 | | } |
| 2496 | | |
| 2497 | | void nv2a_renderer::render_color(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid) |
| 2498 | | { |
| 2499 | | int x; |
| 2500 | | |
| 2501 | | x=extent.stopx-extent.startx-1; // number of pixels to draw |
| 2502 | | while (x >= 0) { |
| 2503 | | UINT32 a8r8g8b8; |
| 2504 | | int ca,cr,cg,cb; |
| 2505 | | int xp=extent.startx+x; // x coordinate of current pixel |
| 2506 | | |
| 2507 | | cb=(extent.param[0].start+(float)x*extent.param[0].dpdx); |
| 2508 | | cg=(extent.param[1].start+(float)x*extent.param[1].dpdx); |
| 2509 | | cr=(extent.param[2].start+(float)x*extent.param[2].dpdx); |
| 2510 | | ca=(extent.param[3].start+(float)x*extent.param[3].dpdx); |
| 2511 | | a8r8g8b8=(ca << 24)+(cr << 16)+(cg << 8)+cb; // pixel color obtained by interpolating the colors of the vertices |
| 2512 | | write_pixel(xp, scanline, a8r8g8b8); |
| 2513 | | x--; |
| 2514 | | } |
| 2515 | | } |
| 2516 | | |
| 2517 | | void nv2a_renderer::render_texture_simple(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid) |
| 2518 | | { |
| 2519 | | int x; |
| 2520 | | UINT32 a8r8g8b8; |
| 2521 | | |
| 2522 | | if (!objectdata.data->texture[0].enabled) { |
| 2523 | | return; |
| 2524 | | } |
| 2525 | | x=extent.stopx-extent.startx-1; |
| 2526 | | while (x >= 0) { |
| 2527 | | int up,vp; |
| 2528 | | int xp=extent.startx+x; // x coordinate of current pixel |
| 2529 | | |
| 2530 | | up=(extent.param[4].start+(float)x*extent.param[4].dpdx)*(float)(objectdata.data->texture[0].sizeu-1); // x coordinate of texel in texture |
| 2531 | | vp=extent.param[5].start*(float)(objectdata.data->texture[0].sizev-1); // y coordinate of texel in texture |
| 2532 | | a8r8g8b8=texture_get_texel(0, up, vp); |
| 2533 | | write_pixel(xp, scanline, a8r8g8b8); |
| 2534 | | x--; |
| 2535 | | } |
| 2536 | | } |
| 2537 | | |
| 2538 | | void nv2a_renderer::render_register_combiners(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid) |
| 2539 | | { |
| 2540 | | int x,xp; |
| 2541 | | int up,vp; |
| 2542 | | int ca,cr,cg,cb; |
| 2543 | | UINT32 color[6]; |
| 2544 | | UINT32 a8r8g8b8; |
| 2545 | | int n;//,m,i,j,k; |
| 2546 | | |
| 2547 | | color[0] = color[1] = color[2] = color[3] = color[4] = color[5] = 0; |
| 2548 | | |
| 2549 | | osd_lock_acquire(combiner.lock); // needed since multithreading is not supported yet |
| 2550 | | x=extent.stopx-extent.startx-1; // number of pixels to draw |
| 2551 | | while (x >= 0) { |
| 2552 | | xp=extent.startx+x; |
| 2553 | | // 1: fetch data |
| 2554 | | // 1.1: interpolated color from vertices |
| 2555 | | cb=(extent.param[0].start+(float)x*extent.param[0].dpdx); |
| 2556 | | cg=(extent.param[1].start+(float)x*extent.param[1].dpdx); |
| 2557 | | cr=(extent.param[2].start+(float)x*extent.param[2].dpdx); |
| 2558 | | ca=(extent.param[3].start+(float)x*extent.param[3].dpdx); |
| 2559 | | color[0]=(ca << 24)+(cr << 16)+(cg << 8)+cb; // pixel color obtained by interpolating the colors of the vertices |
| 2560 | | color[1]=0; // lighting not yet |
| 2561 | | // 1.2: color for each of the 4 possible textures |
| 2562 | | for (n=0;n < 4;n++) { |
| 2563 | | if (texture[n].enabled) { |
| 2564 | | up=(extent.param[4+n*2].start+(float)x*extent.param[4+n*2].dpdx)*(float)(objectdata.data->texture[n].sizeu-1); |
| 2565 | | vp=extent.param[5+n*2].start*(float)(objectdata.data->texture[n].sizev-1); |
| 2566 | | color[n+2]=texture_get_texel(n, up, vp); |
| 2567 | | } |
| 2568 | | } |
| 2569 | | // 2: compute |
| 2570 | | // 2.1: initialize |
| 2571 | | combiner_initialize_registers(color); |
| 2572 | | // 2.2: general cmbiner stages |
| 2573 | | for (n=0;n < combiner.stages;n++) { |
| 2574 | | // 2.2.1 initialize |
| 2575 | | combiner_initialize_stage(n); |
| 2576 | | // 2.2.2 map inputs |
| 2577 | | combiner_map_input(n); |
| 2578 | | // 2.2.3 compute possible outputs |
| 2579 | | combiner_compute_rgb_outputs(n); |
| 2580 | | combiner_compute_a_outputs(n); |
| 2581 | | // 2.2.4 map outputs to registers |
| 2582 | | combiner_map_output(n); |
| 2583 | | } |
| 2584 | | // 2.3: final cmbiner stage |
| 2585 | | combiner_initialize_final(); |
| 2586 | | combiner_map_final_input(); |
| 2587 | | combiner_final_output(); |
| 2588 | | a8r8g8b8=combiner_float_argb8(combiner.output); |
| 2589 | | // 3: write pixel |
| 2590 | | write_pixel(xp, scanline, a8r8g8b8); |
| 2591 | | x--; |
| 2592 | | } |
| 2593 | | osd_lock_release(combiner.lock); |
| 2594 | | } |
| 2595 | | |
| 2596 | | #if 0 |
| 2597 | | const char *rc_mapping_str[]={ |
| 2598 | | "UNSIGNED_IDENTITY", |
| 2599 | | "UNSIGNED_INVERT", |
| 2600 | | "EXPAND_NORMAL", |
| 2601 | | "EXPAND_NEGATE", |
| 2602 | | "HALF_BIAS_NORMAL", |
| 2603 | | "HALF_BIAS_NEGATE", |
| 2604 | | "SIGNED_IDENTITY", |
| 2605 | | "SIGNED_NEGATE" |
| 2606 | | }; |
| 2607 | | |
| 2608 | | const char *rc_usage_rgb_str[]={ |
| 2609 | | "RGB", |
| 2610 | | "ALPHA" |
| 2611 | | }; |
| 2612 | | |
| 2613 | | const char *rc_usage_alpha_str[]={ |
| 2614 | | "BLUE", |
| 2615 | | "ALPHA" |
| 2616 | | }; |
| 2617 | | |
| 2618 | | const char *rc_variable_str[]={ |
| 2619 | | "ZERO", |
| 2620 | | "CONSTANT_COLOR0", |
| 2621 | | "CONSTANT_COLOR1", |
| 2622 | | "FOG", |
| 2623 | | "PRIMARY_COLOR", |
| 2624 | | "SECONDARY_COLOR", |
| 2625 | | "???", |
| 2626 | | "???", |
| 2627 | | "TEXTURE0", |
| 2628 | | "TEXTURE1", |
| 2629 | | "TEXTURE2", |
| 2630 | | "TEXTURE3", |
| 2631 | | "SPARE0", |
| 2632 | | "SPARE1", |
| 2633 | | "SPARE0_PLUS_SECONDARY_COLOR", |
| 2634 | | "E_TIMES_F" |
| 2635 | | }; |
| 2636 | | |
| 2637 | | const char *rc_bias_str[]={ |
| 2638 | | "NONE", |
| 2639 | | "BIAS_BY_NEGATIVE_ONE_HALF" |
| 2640 | | }; |
| 2641 | | |
| 2642 | | const char *rc_scale_str[]={ |
| 2643 | | "NONE", |
| 2644 | | "SCALE_BY_TWO", |
| 2645 | | "SCALE_BY_FOUR", |
| 2646 | | "SCALE_BY_ONE_HALF" |
| 2647 | | }; |
| 2648 | | |
| 2649 | | /* Dump the current setup of the register combiners */ |
| 2650 | | void dumpcombiners(UINT32 *m) |
| 2651 | | { |
| 2652 | | int a,b,n,v; |
| 2653 | | |
| 2654 | | n=m[0x1e60/4] & 0xf; |
| 2655 | | printf("Combiners active: %d\n\r",n); |
| 2656 | | for (a=0;a < n;a++) { |
| 2657 | | printf("Combiner %d\n\r",a+1); |
| 2658 | | printf(" RC_IN_ALPHA %08X\n\r",m[0x0260/4+a]); |
| 2659 | | for (b=24;b >= 0;b=b-8) { |
| 2660 | | v=(m[0x0260/4+a] >> b) & 0xf; |
| 2661 | | printf(" %c_INPUT %s\n\r",'A'+3-b/8,rc_variable_str[v]); |
| 2662 | | v=(m[0x0260/4+a] >> (b+4)) & 1; |
| 2663 | | printf(" %c_COMPONENT_USAGE %s\n\r",'A'+3-b/8,rc_usage_alpha_str[v]); |
| 2664 | | v=(m[0x0260/4+a] >> (b+5)) & 7; |
| 2665 | | printf(" %c_MAPPING %s\n\r",'A'+3-b/8,rc_mapping_str[v]); |
| 2666 | | } |
| 2667 | | printf(" RC_IN_RGB %08X\n\r",m[0x0ac0/4+a]); |
| 2668 | | for (b=24;b >= 0;b=b-8) { |
| 2669 | | v=(m[0x0ac0/4+a] >> b) & 0xf; |
| 2670 | | printf(" %c_INPUT %s\n\r",'A'+3-b/8,rc_variable_str[v]); |
| 2671 | | v=(m[0x0ac0/4+a] >> (b+4)) & 1; |
| 2672 | | printf(" %c_COMPONENT_USAGE %s\n\r",'A'+3-b/8,rc_usage_rgb_str[v]); |
| 2673 | | v=(m[0x0ac0/4+a] >> (b+5)) & 7; |
| 2674 | | printf(" %c_MAPPING %s\n\r",'A'+3-b/8,rc_mapping_str[v]); |
| 2675 | | } |
| 2676 | | printf(" RC_OUT_ALPHA %08X\n\r",m[0x0aa0/4+a]); |
| 2677 | | v=m[0x0aa0/4+a] & 0xf; |
| 2678 | | printf(" CD_OUTPUT %s\n\r",rc_variable_str[v]); |
| 2679 | | v=(m[0x0aa0/4+a] >> 4) & 0xf; |
| 2680 | | printf(" AB_OUTPUT %s\n\r",rc_variable_str[v]); |
| 2681 | | v=(m[0x0aa0/4+a] >> 8) & 0xf; |
| 2682 | | printf(" SUM_OUTPUT %s\n\r",rc_variable_str[v]); |
| 2683 | | v=(m[0x0aa0/4+a] >> 12) & 1; |
| 2684 | | printf(" CD_DOT_PRODUCT %d\n\r",v); |
| 2685 | | v=(m[0x0aa0/4+a] >> 13) & 1; |
| 2686 | | printf(" AB_DOT_PRODUCT %d\n\r",v); |
| 2687 | | v=(m[0x0aa0/4+a] >> 14) & 1; |
| 2688 | | printf(" MUX_SUM %d\n\r",v); |
| 2689 | | v=(m[0x0aa0/4+a] >> 15) & 1; |
| 2690 | | printf(" BIAS %s\n\r",rc_bias_str[v]); |
| 2691 | | v=(m[0x0aa0/4+a] >> 16) & 3; |
| 2692 | | printf(" SCALE %s\n\r",rc_scale_str[v]); |
| 2693 | | //v=(m[0x0aa0/4+a] >> 27) & 7; |
| 2694 | | printf(" RC_OUT_RGB %08X\n\r",m[0x1e40/4+a]); |
| 2695 | | v=m[0x1e40/4+a] & 0xf; |
| 2696 | | printf(" CD_OUTPUT %s\n\r",rc_variable_str[v]); |
| 2697 | | v=(m[0x1e40/4+a] >> 4) & 0xf; |
| 2698 | | printf(" AB_OUTPUT %s\n\r",rc_variable_str[v]); |
| 2699 | | v=(m[0x1e40/4+a] >> 8) & 0xf; |
| 2700 | | printf(" SUM_OUTPUT %s\n\r",rc_variable_str[v]); |
| 2701 | | v=(m[0x1e40/4+a] >> 12) & 1; |
| 2702 | | printf(" CD_DOT_PRODUCT %d\n\r",v); |
| 2703 | | v=(m[0x1e40/4+a] >> 13) & 1; |
| 2704 | | printf(" AB_DOT_PRODUCT %d\n\r",v); |
| 2705 | | v=(m[0x1e40/4+a] >> 14) & 1; |
| 2706 | | printf(" MUX_SUM %d\n\r",v); |
| 2707 | | v=(m[0x1e40/4+a] >> 15) & 1; |
| 2708 | | printf(" BIAS %s\n\r",rc_bias_str[v]); |
| 2709 | | v=(m[0x1e40/4+a] >> 16) & 3; |
| 2710 | | printf(" SCALE %s\n\r",rc_scale_str[v]); |
| 2711 | | //v=(m[0x1e40/4+a] >> 27) & 7; |
| 2712 | | printf("\n\r"); |
| 2713 | | } |
| 2714 | | printf("Combiner final %08X %08X\n\r",m[0x0288/4],m[0x028c/4]); |
| 2715 | | for (a=24;a >= 0;a=a-8) { |
| 2716 | | n=(m[0x0288/4] >> a) & 0xf; |
| 2717 | | printf(" %c_INPUT %s\n\r",'A'+3-a/8,rc_variable_str[n]); |
| 2718 | | n=(m[0x0288/4] >> (a+4)) & 1; |
| 2719 | | printf(" %c_COMPONENT_USAGE %s\n\r",'A'+3-a/8,rc_usage_rgb_str[n]); |
| 2720 | | n=(m[0x0288/4] >> (a+5)) & 7; |
| 2721 | | printf(" %c_MAPPING %s\n\r",'A'+3-a/8,rc_mapping_str[n]); |
| 2722 | | } |
| 2723 | | for (a=24;a >= 8;a=a-8) { |
| 2724 | | n=(m[0x028c/4] >> a) & 0xf; |
| 2725 | | printf(" %c_INPUT %s\n\r",'E'+3-a/8,rc_variable_str[n]); |
| 2726 | | n=(m[0x028c/4] >> (a+4)) & 1; |
| 2727 | | printf(" %c_COMPONENT_USAGE %s\n\r",'E'+3-a/8,rc_usage_rgb_str[n]); |
| 2728 | | n=(m[0x028c/4] >> (a+5)) & 7; |
| 2729 | | printf(" %c_MAPPING %s\n\r",'E'+3-a/8,rc_mapping_str[n]); |
| 2730 | | } |
| 2731 | | n=(m[0x028c/4] >> 7) & 1; |
| 2732 | | printf(" color sum clamp: %d\n\r",n); |
| 2733 | | } |
| 2734 | | #endif |
| 2735 | | |
| 2736 | | /* Read vertices data from system memory. Method 0x1810 */ |
| 2737 | | int nv2a_renderer::read_vertices_0x1810(address_space & space, vertex *destination, int offset, int limit) |
| 2738 | | { |
| 2739 | | UINT32 m, u; |
| 2740 | | |
| 2741 | | for (m = 0; m < limit; m++) { |
| 2742 | | destination[m].attribute[0].iv[0] = space.read_dword(vertexbuffer_address[0] + (m + offset)*vertexbuffer_stride[0] + 0); |
| 2743 | | destination[m].attribute[0].iv[1] = space.read_dword(vertexbuffer_address[0] + (m + offset)*vertexbuffer_stride[0] + 4); |
| 2744 | | destination[m].attribute[0].iv[2] = space.read_dword(vertexbuffer_address[0] + (m + offset)*vertexbuffer_stride[0] + 8); |
| 2745 | | destination[m].attribute[0].iv[3] = space.read_dword(vertexbuffer_address[0] + (m + offset)*vertexbuffer_stride[0] + 12); |
| 2746 | | destination[m].attribute[3].iv[0] = space.read_dword(vertexbuffer_address[3] + (m + offset)*vertexbuffer_stride[3] + 0); // color |
| 2747 | | for (u = 0; u < 4; u++) { |
| 2748 | | destination[m].attribute[9 + u].iv[0] = space.read_dword(vertexbuffer_address[9 + u] + (m + offset)*vertexbuffer_stride[9 + u] + 0); |
| 2749 | | destination[m].attribute[9 + u].iv[1] = space.read_dword(vertexbuffer_address[9 + u] + (m + offset)*vertexbuffer_stride[9 + u] + 4); |
| 2750 | | } |
| 2751 | | } |
| 2752 | | return m; |
| 2753 | | } |
| 2754 | | |
| 2755 | | /* Read vertices data from system memory. Method 0x1800 */ |
| 2756 | | int nv2a_renderer::read_vertices_0x1800(address_space & space, vertex *destination, UINT32 address, int limit) |
| 2757 | | { |
| 2758 | | UINT32 data; |
| 2759 | | UINT32 m, u, i, c; |
| 2760 | | |
| 2761 | | c = 0; |
| 2762 | | for (m = 0; m < limit; m++) { |
| 2763 | | if (indexesleft_count == 0) { |
| 2764 | | data = space.read_dword(address); |
| 2765 | | i = (indexesleft_first + indexesleft_count) & 7; |
| 2766 | | indexesleft[i] = data & 0xffff; |
| 2767 | | indexesleft[(i + 1) & 7] = (data >> 16) & 0xffff; |
| 2768 | | indexesleft_count = indexesleft_count + 2; |
| 2769 | | address += 4; |
| 2770 | | c++; |
| 2771 | | } |
| 2772 | | destination[m].attribute[0].iv[0] = space.read_dword(vertexbuffer_address[0] + indexesleft[indexesleft_first] * vertexbuffer_stride[0] + 0); |
| 2773 | | destination[m].attribute[0].iv[1] = space.read_dword(vertexbuffer_address[0] + indexesleft[indexesleft_first] * vertexbuffer_stride[0] + 4); |
| 2774 | | destination[m].attribute[0].iv[2] = space.read_dword(vertexbuffer_address[0] + indexesleft[indexesleft_first] * vertexbuffer_stride[0] + 8); |
| 2775 | | destination[m].attribute[0].iv[3] = space.read_dword(vertexbuffer_address[0] + indexesleft[indexesleft_first] * vertexbuffer_stride[0] + 12); |
| 2776 | | destination[m].attribute[3].iv[0] = space.read_dword(vertexbuffer_address[3] + indexesleft[indexesleft_first] * vertexbuffer_stride[3] + 0); // color |
| 2777 | | for (u = 0; u < 4; u++) { |
| 2778 | | destination[m].attribute[9 + u].iv[0] = space.read_dword(vertexbuffer_address[9 + u] + indexesleft[indexesleft_first] * vertexbuffer_stride[9 + u] + 0); |
| 2779 | | destination[m].attribute[9 + u].iv[1] = space.read_dword(vertexbuffer_address[9 + u] + indexesleft[indexesleft_first] * vertexbuffer_stride[9 + u] + 4); |
| 2780 | | } |
| 2781 | | indexesleft_first = (indexesleft_first + 1) & 7; |
| 2782 | | indexesleft_count--; |
| 2783 | | } |
| 2784 | | return (int)c; |
| 2785 | | } |
| 2786 | | |
| 2787 | | /* Read vertices data from system memory. Method 0x1818 */ |
| 2788 | | int nv2a_renderer::read_vertices_0x1818(address_space & space, vertex *destination, UINT32 address, int limit) |
| 2789 | | { |
| 2790 | | UINT32 m, u, vwords; |
| 2791 | | |
| 2792 | | vwords = vertex_attribute_words[15] + vertex_attribute_offset[15]; |
| 2793 | | for (m = 0; m < limit; m++) { |
| 2794 | | destination[m].attribute[0].iv[0] = space.read_dword(address + vertex_attribute_offset[0] * 4 + 0); |
| 2795 | | destination[m].attribute[0].iv[1] = space.read_dword(address + vertex_attribute_offset[0] * 4 + 4); |
| 2796 | | destination[m].attribute[0].iv[2] = space.read_dword(address + vertex_attribute_offset[0] * 4 + 8); |
| 2797 | | destination[m].attribute[0].iv[3] = space.read_dword(address + vertex_attribute_offset[0] * 4 + 12); |
| 2798 | | destination[m].attribute[3].iv[0] = space.read_dword(address + vertex_attribute_offset[3] * 4 + 0); // color |
| 2799 | | for (u = 0; u < 4; u++) { |
| 2800 | | destination[m].attribute[9 + u].iv[0] = space.read_dword(address + vertex_attribute_offset[9 + u] * 4 + 0); |
| 2801 | | destination[m].attribute[9 + u].iv[1] = space.read_dword(address + vertex_attribute_offset[9 + u] * 4 + 4); |
| 2802 | | } |
| 2803 | | address = address + vwords * 4; |
| 2804 | | } |
| 2805 | | return (int)(m*vwords); |
| 2806 | | } |
| 2807 | | |
| 2808 | | void nv2a_renderer::convert_vertices_poly(vertex *source, vertex_t *destination, int count) |
| 2809 | | { |
| 2810 | | int m, u; |
| 2811 | | |
| 2812 | | for (m = 0; m < count; m++) { |
| 2813 | | destination[m].x = source[m].attribute[0].fv[0]; |
| 2814 | | destination[m].y = source[m].attribute[0].fv[1]; |
| 2815 | | u = source[m].attribute[3].iv[0]; |
| 2816 | | destination[m].p[0] = u & 0xff; // b |
| 2817 | | destination[m].p[1] = (u & 0xff00) >> 8; // g |
| 2818 | | destination[m].p[2] = (u & 0xff0000) >> 16; // r |
| 2819 | | destination[m].p[3] = (u & 0xff000000) >> 24; // a |
| 2820 | | for (u = 0; u < 4; u++) { |
| 2821 | | destination[m].p[4 + u * 2] = 0; |
| 2822 | | destination[m].p[5 + u * 2] = 0; |
| 2823 | | if (texture[u].enabled) { |
| 2824 | | destination[m].p[4 + u * 2] = source[m].attribute[9 + u].fv[0]; |
| 2825 | | destination[m].p[5 + u * 2] = source[m].attribute[9 + u].fv[1]; |
| 2826 | | } |
| 2827 | | } |
| 2828 | | } |
| 2829 | | } |
| 2830 | | |
| 2831 | | void nv2a_renderer::geforce_exec_method(address_space & space,UINT32 chanel,UINT32 subchannel,UINT32 method,UINT32 address,int &countlen) |
| 2832 | | { |
| 2833 | | UINT32 maddress; |
| 2834 | | UINT32 data; |
| 2835 | | |
| 2836 | | maddress=method*4; |
| 2837 | | data=space.read_dword(address); |
| 2838 | | channel[chanel][subchannel].object.method[method]=data; |
| 2839 | | if (maddress == 0x17fc) { |
| 2840 | | indexesleft_count = 0; |
| 2841 | | indexesleft_first = 0; |
| 2842 | | primitives_count = 0; |
| 2843 | | countlen--; |
| 2844 | | } |
| 2845 | | if (maddress == 0x1810) { |
| 2846 | | // draw vertices |
| 2847 | | int offset,count,type; |
| 2848 | | UINT32 n; |
| 2849 | | render_delegate renderspans; |
| 2850 | | |
| 2851 | | offset=data & 0xffffff; |
| 2852 | | count=(data >> 24) & 0xff; |
| 2853 | | type=channel[chanel][subchannel].object.method[0x17fc/4]; |
| 2854 | | if (((channel[chanel][subchannel].object.method[0x1e60/4] & 7) > 0) && (combiner.used != 0)) { |
| 2855 | | renderspans=render_delegate(FUNC(nv2a_renderer::render_register_combiners),this); |
| 2856 | | } else if (texture[0].enabled) { |
| 2857 | | renderspans=render_delegate(FUNC(nv2a_renderer::render_texture_simple),this); |
| 2858 | | } else |
| 2859 | | renderspans=render_delegate(FUNC(nv2a_renderer::render_color),this); |
| 2860 | | #ifdef LOG_NV2A |
| 2861 | | printf("vertex %d %d %d\n\r",type,offset,count); |
| 2862 | | #endif |
| 2863 | | if (type == nv2a_renderer::QUADS) { |
| 2864 | | for (n = 0; n <= count; n += 4) { |
| 2865 | | vertex vert[4]; |
| 2866 | | vertex_t xy[4]; |
| 2867 | | |
| 2868 | | read_vertices_0x1810(space, vert, n+offset, 4); |
| 2869 | | convert_vertices_poly(vert, xy, 4); |
| 2870 | | render_polygon<4>(fb.cliprect(), renderspans, 4 + 4 * 2, xy); // 4 rgba, 4 texture units 2 uv |
| 2871 | | } |
| 2872 | | wait(); |
| 2873 | | } else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 2874 | | vertex vert[4]; |
| 2875 | | vertex_t xy[4]; |
| 2876 | | |
| 2877 | | read_vertices_0x1810(space, vert, offset, 2); |
| 2878 | | convert_vertices_poly(vert, xy, 2); |
| 2879 | | count = count - 2; |
| 2880 | | offset = offset + 2; |
| 2881 | | for (n = 0; n <= count; n++) { |
| 2882 | | read_vertices_0x1810(space, vert + ((n+2) & 3), offset + n, 1); |
| 2883 | | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 1); |
| 2884 | | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[((n & 1)+n) & 3], xy[((~n & 1)+n) & 3], xy[(2+n) & 3]); |
| 2885 | | } |
| 2886 | | wait(); |
| 2887 | | } else { |
| 2888 | | logerror("Unsupported primitive %d for method 0x1810\n",type); |
| 2889 | | } |
| 2890 | | countlen--; |
| 2891 | | } |
| 2892 | | if (maddress == 0x1800) { |
| 2893 | | UINT32 type, n; |
| 2894 | | render_delegate renderspans; |
| 2895 | | |
| 2896 | | // vertices are selected from the vertex buffer using an array of indexes |
| 2897 | | // each dword after 1800 contains two 16 bit index values to select the vartices |
| 2898 | | type = channel[chanel][subchannel].object.method[0x17fc / 4]; |
| 2899 | | if (((channel[chanel][subchannel].object.method[0x1e60 / 4] & 7) > 0) && (combiner.used != 0)) { |
| 2900 | | renderspans = render_delegate(FUNC(nv2a_renderer::render_register_combiners), this); |
| 2901 | | } |
| 2902 | | else if (texture[0].enabled) { |
| 2903 | | renderspans = render_delegate(FUNC(nv2a_renderer::render_texture_simple), this); |
| 2904 | | } |
| 2905 | | else |
| 2906 | | renderspans = render_delegate(FUNC(nv2a_renderer::render_color), this); |
| 2907 | | #ifdef LOG_NV2A |
| 2908 | | printf("vertex %d %d %d\n\r", type, offset, count); |
| 2909 | | #endif |
| 2910 | | if (type == nv2a_renderer::QUADS) { |
| 2911 | | while (1) { |
| 2912 | | vertex vert[4]; |
| 2913 | | vertex_t xy[4]; |
| 2914 | | int c; |
| 2915 | | |
| 2916 | | if ((countlen * 2 + indexesleft_count) < 4) |
| 2917 | | break; |
| 2918 | | c=read_vertices_0x1800(space, vert, address, 4); |
| 2919 | | address = address + c*4; |
| 2920 | | countlen = countlen - c; |
| 2921 | | convert_vertices_poly(vert, xy, 4); |
| 2922 | | render_polygon<4>(fb.cliprect(), renderspans, 4 + 4 * 2, xy); // 4 rgba, 4 texture units 2 uv |
| 2923 | | } |
| 2924 | | while (countlen > 0) { |
| 2925 | | data = space.read_dword(address); |
| 2926 | | n = (indexesleft_first + indexesleft_count) & 7; |
| 2927 | | indexesleft[n] = data & 0xffff; |
| 2928 | | indexesleft[(n + 1) & 7] = (data >> 16) & 0xffff; |
| 2929 | | indexesleft_count = indexesleft_count + 2; |
| 2930 | | address += 4; |
| 2931 | | countlen--; |
| 2932 | | } |
| 2933 | | wait(); |
| 2934 | | } |
| 2935 | | else if (type == nv2a_renderer::TRIANGLES) { |
| 2936 | | while (1) { |
| 2937 | | vertex vert[3]; |
| 2938 | | vertex_t xy[3]; |
| 2939 | | int c; |
| 2940 | | |
| 2941 | | if ((countlen * 2 + indexesleft_count) < 3) |
| 2942 | | break; |
| 2943 | | c = read_vertices_0x1800(space, vert, address, 3); |
| 2944 | | address = address + c * 4; |
| 2945 | | countlen = countlen - c; |
| 2946 | | convert_vertices_poly(vert, xy, 3); |
| 2947 | | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[0], xy[1], xy[2]); // 4 rgba, 4 texture units 2 uv |
| 2948 | | } |
| 2949 | | while (countlen > 0) { |
| 2950 | | data = space.read_dword(address); |
| 2951 | | n = (indexesleft_first + indexesleft_count) & 7; |
| 2952 | | indexesleft[n] = data & 0xffff; |
| 2953 | | indexesleft[(n + 1) & 7] = (data >> 16) & 0xffff; |
| 2954 | | indexesleft_count = indexesleft_count + 2; |
| 2955 | | address += 4; |
| 2956 | | countlen--; |
| 2957 | | } |
| 2958 | | wait(); |
| 2959 | | } |
| 2960 | | else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 2961 | | if ((countlen * 2 + indexesleft_count) >= 3) { |
| 2962 | | vertex vert[4]; |
| 2963 | | vertex_t xy[4]; |
| 2964 | | int c, count; |
| 2965 | | |
| 2966 | | c = read_vertices_0x1800(space, vert, address, 2); |
| 2967 | | convert_vertices_poly(vert, xy, 2); |
| 2968 | | address = address + c * 4; |
| 2969 | | countlen = countlen - c; |
| 2970 | | count = countlen * 2 + indexesleft_count; |
| 2971 | | for (n = 0; n < count; n++) { // <= |
| 2972 | | c = read_vertices_0x1800(space, vert + ((n + 2) & 3), address, 1); |
| 2973 | | address = address + c * 4; |
| 2974 | | countlen = countlen - c; |
| 2975 | | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 1); |
| 2976 | | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[((n & 1) + n) & 3], xy[((~n & 1) + n) & 3], xy[(2 + n) & 3]); |
| 2977 | | } |
| 2978 | | } |
| 2979 | | while (countlen > 0) { |
| 2980 | | data = space.read_dword(address); |
| 2981 | | n = (indexesleft_first + indexesleft_count) & 7; |
| 2982 | | indexesleft[n] = data & 0xffff; |
| 2983 | | indexesleft[(n + 1) & 7] = (data >> 16) & 0xffff; |
| 2984 | | indexesleft_count = indexesleft_count + 2; |
| 2985 | | address += 4; |
| 2986 | | countlen--; |
| 2987 | | } |
| 2988 | | wait(); |
| 2989 | | } |
| 2990 | | else { |
| 2991 | | logerror("Unsupported primitive %d for method 0x1800\n", type); |
| 2992 | | countlen = 0; |
| 2993 | | } |
| 2994 | | } |
| 2995 | | if (maddress == 0x1818) { |
| 2996 | | int n; |
| 2997 | | int type; |
| 2998 | | render_delegate renderspans; |
| 2999 | | |
| 3000 | | if (((channel[chanel][subchannel].object.method[0x1e60/4] & 7) > 0) && (combiner.used != 0)) { |
| 3001 | | renderspans=render_delegate(FUNC(nv2a_renderer::render_register_combiners),this); |
| 3002 | | } else if (texture[0].enabled) { |
| 3003 | | renderspans=render_delegate(FUNC(nv2a_renderer::render_texture_simple),this); |
| 3004 | | } else |
| 3005 | | renderspans=render_delegate(FUNC(nv2a_renderer::render_color),this); |
| 3006 | | // vertices are taken from the next words, not from a vertex buffer |
| 3007 | | // first send primitive type with 17fc |
| 3008 | | // then countlen number of dwords with 1818 |
| 3009 | | // end with 17fc primitive type 0 |
| 3010 | | // at 1760 16 words specify the vertex format:for each possible vertex attribute the number of components (0=not present) and type of each |
| 3011 | | type=channel[chanel][subchannel].object.method[0x17fc/4]; |
| 3012 | | if (type == nv2a_renderer::TRIANGLE_FAN) { |
| 3013 | | vertex vert[3]; |
| 3014 | | vertex_t xy[3]; |
| 3015 | | int c; |
| 3016 | | |
| 3017 | | c=read_vertices_0x1818(space, vert, address, 2); |
| 3018 | | convert_vertices_poly(vert, xy, 2); |
| 3019 | | countlen = countlen - c; |
| 3020 | | if (countlen < 0) { |
| 3021 | | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 3022 | | countlen = 0; |
| 3023 | | return; |
| 3024 | | } |
| 3025 | | address = address + c * 4; |
| 3026 | | for (n = 1; countlen > 0; n++) { |
| 3027 | | c=read_vertices_0x1818(space, vert + ((n & 1) + 1), address, 1); |
| 3028 | | countlen = countlen - c; |
| 3029 | | if (countlen < 0) { |
| 3030 | | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 3031 | | countlen = 0; |
| 3032 | | break; |
| 3033 | | } |
| 3034 | | address = address + c * 4; |
| 3035 | | convert_vertices_poly(vert + ((n & 1) + 1), xy + ((n & 1) + 1), 1); |
| 3036 | | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[0], xy[(~n & 1) + 1], xy[(n & 1) + 1]); |
| 3037 | | } |
| 3038 | | wait(); |
| 3039 | | } else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 3040 | | vertex vert[4]; |
| 3041 | | vertex_t xy[4]; |
| 3042 | | int c; |
| 3043 | | |
| 3044 | | c=read_vertices_0x1818(space, vert, address, 2); |
| 3045 | | convert_vertices_poly(vert, xy, 2); |
| 3046 | | countlen = countlen - c; |
| 3047 | | if (countlen < 0) { |
| 3048 | | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 3049 | | countlen = 0; |
| 3050 | | return; |
| 3051 | | } |
| 3052 | | address = address + c * 4; |
| 3053 | | for (n = 0;countlen > 0; n++) { |
| 3054 | | c=read_vertices_0x1818(space, vert + ((n + 2) & 3), address, 1); |
| 3055 | | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 1); |
| 3056 | | countlen = countlen - c; |
| 3057 | | if (countlen < 0) { |
| 3058 | | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 3059 | | countlen = 0; |
| 3060 | | break; |
| 3061 | | } |
| 3062 | | address = address + c * 4; |
| 3063 | | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[((n & 1) + n) & 3], xy[((~n & 1) + n) & 3], xy[(2 + n) & 3]); |
| 3064 | | } |
| 3065 | | wait(); |
| 3066 | | } else if (type == nv2a_renderer::QUADS) { |
| 3067 | | while (countlen > 0) { |
| 3068 | | vertex vert[4]; |
| 3069 | | vertex_t xy[4]; |
| 3070 | | int c; |
| 3071 | | |
| 3072 | | c = read_vertices_0x1818(space, vert, address, 4); |
| 3073 | | convert_vertices_poly(vert, xy, 4); |
| 3074 | | countlen = countlen - c; |
| 3075 | | if (countlen < 0) { |
| 3076 | | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 3077 | | countlen = 0; |
| 3078 | | break; |
| 3079 | | } |
| 3080 | | address = address + c * 4; |
| 3081 | | render_polygon<4>(fb.cliprect(), renderspans, 4 + 4 * 2, xy); // 4 rgba, 4 texture units 2 uv |
| 3082 | | } |
| 3083 | | wait(); |
| 3084 | | } else if (type == nv2a_renderer::QUAD_STRIP) { |
| 3085 | | vertex vert[4]; |
| 3086 | | vertex_t xy[4]; |
| 3087 | | int c; |
| 3088 | | |
| 3089 | | c=read_vertices_0x1818(space, vert, address, 2); |
| 3090 | | convert_vertices_poly(vert, xy, 2); |
| 3091 | | countlen = countlen - c; |
| 3092 | | if (countlen < 0) { |
| 3093 | | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 3094 | | countlen = 0; |
| 3095 | | return; |
| 3096 | | } |
| 3097 | | address = address + c * 4; |
| 3098 | | for (n = 0; countlen > 0; n+=2) { |
| 3099 | | c = read_vertices_0x1818(space, vert + ((n + 2) & 3), address + ((n + 2) & 3), 2); |
| 3100 | | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 2); |
| 3101 | | countlen = countlen - c; |
| 3102 | | if (countlen < 0) { |
| 3103 | | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 3104 | | countlen = 0; |
| 3105 | | return; |
| 3106 | | } |
| 3107 | | address = address + c * 4; |
| 3108 | | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[n & 3], xy[(n + 1) & 3], xy[(n + 2) & 3]); |
| 3109 | | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[(n + 2) & 3], xy[(n + 1) & 3], xy[(n + 3) & 3]); |
| 3110 | | } |
| 3111 | | wait(); |
| 3112 | | } else { |
| 3113 | | logerror("Unsupported primitive %d for method 0x1818\n",type); |
| 3114 | | countlen = 0; |
| 3115 | | } |
| 3116 | | } |
| 3117 | | if ((maddress >= 0x1720) && (maddress < 0x1760)) { |
| 3118 | | int bit = method - 0x1720 / 4; |
| 3119 | | |
| 3120 | | if (data & 0x80000000) |
| 3121 | | vertexbuffer_address[bit] = (data & 0x0fffffff) + dma_offset[1]; |
| 3122 | | else |
| 3123 | | vertexbuffer_address[bit] = (data & 0x0fffffff) + dma_offset[0]; |
| 3124 | | } |
| 3125 | | if ((maddress >= 0x1760) && (maddress < 0x17A0)) { |
| 3126 | | int bit=method-0x1760/4; |
| 3127 | | |
| 3128 | | vertexbuffer_stride[bit] = (data >> 8) & 255; |
| 3129 | | //vertexbuffer_kind[n]=tmp & 15; |
| 3130 | | //vertexbuffer_size[n]=(tmp >> 4) & 15; |
| 3131 | | data = data & 255; |
| 3132 | | switch (data & 15) { |
| 3133 | | case 0: |
| 3134 | | vertex_attribute_words[bit]=(((data >> 4) + 3) & 15) >> 2; |
| 3135 | | break; |
| 3136 | | case nv2a_renderer::FLOAT: |
| 3137 | | vertex_attribute_words[bit]=(data >> 4); |
| 3138 | | break; |
| 3139 | | case nv2a_renderer::UBYTE: |
| 3140 | | vertex_attribute_words[bit]=(((data >> 4) + 3) & 15) >> 2; |
| 3141 | | break; |
| 3142 | | case nv2a_renderer::USHORT: |
| 3143 | | vertex_attribute_words[bit]=(((data >> 4) + 1) & 15) >> 1; |
| 3144 | | break; |
| 3145 | | default: |
| 3146 | | vertex_attribute_words[bit]=0; |
| 3147 | | } |
| 3148 | | if (data > 15) |
| 3149 | | enabled_vertex_attributes |= (1 << bit); |
| 3150 | | else |
| 3151 | | enabled_vertex_attributes &= ~(1 << bit); |
| 3152 | | for (int n = bit+1; n < 16; n++) { |
| 3153 | | if ((enabled_vertex_attributes & (1 << (n - 1))) != 0) |
| 3154 | | vertex_attribute_offset[n] = vertex_attribute_offset[n - 1] + vertex_attribute_words[n - 1]; |
| 3155 | | else |
| 3156 | | vertex_attribute_offset[n] = vertex_attribute_offset[n - 1]; |
| 3157 | | } |
| 3158 | | countlen--; |
| 3159 | | } |
| 3160 | | if ((maddress == 0x1d6c) || (maddress == 0x1d70) || (maddress == 0x1a4)) |
| 3161 | | countlen--; |
| 3162 | | if (maddress == 0x019c) { |
| 3163 | | geforce_read_dma_object(data, dma_offset[0], dma_size[0]); |
| 3164 | | } |
| 3165 | | if (maddress == 0x01a0) { |
| 3166 | | geforce_read_dma_object(data, dma_offset[1], dma_size[1]); |
| 3167 | | } |
| 3168 | | if (maddress == 0x1d70) { |
| 3169 | | // with 1d70 write the value at offest [1d6c] inside dma object [1a4] |
| 3170 | | UINT32 offset,base; |
| 3171 | | UINT32 dmahand,dmaoff,smasiz; |
| 3172 | | |
| 3173 | | offset=channel[chanel][subchannel].object.method[0x1d6c/4]; |
| 3174 | | dmahand=channel[chanel][subchannel].object.method[0x1a4/4]; |
| 3175 | | geforce_read_dma_object(dmahand,dmaoff,smasiz); |
| 3176 | | base=dmaoff; |
| 3177 | | space.write_dword(base+offset,data); |
| 3178 | | countlen--; |
| 3179 | | } |
| 3180 | | if (maddress == 0x1d94) { |
| 3181 | | // possible buffers: color, depth, stencil, and accumulation |
| 3182 | | // clear framebuffer |
| 3183 | | if (data & 0xf0) { |
| 3184 | | // clear colors |
| 3185 | | UINT32 color=channel[chanel][subchannel].object.method[0x1d90/4]; |
| 3186 | | fb.fill(color); |
| 3187 | | //printf("clearscreen\n\r"); |
| 3188 | | } |
| 3189 | | if (data & 0x03) { |
| 3190 | | // clear stencil+zbuffer |
| 3191 | | } |
| 3192 | | countlen--; |
| 3193 | | } |
| 3194 | | if (maddress == 0x0300) { |
| 3195 | | alpha_test_enabled = data != 0; |
| 3196 | | } |
| 3197 | | if (maddress == 0x033c) { |
| 3198 | | alpha_func = data; |
| 3199 | | } |
| 3200 | | if (maddress == 0x0340) { |
| 3201 | | alpha_reference = data; |
| 3202 | | } |
| 3203 | | if (maddress == 0x0304) { |
| 3204 | | if (logical_operation_enabled) |
| 3205 | | blending_enabled = false; |
| 3206 | | else |
| 3207 | | blending_enabled = data != 0; |
| 3208 | | } |
| 3209 | | if (maddress == 0x0344) { |
| 3210 | | blend_function_source = data; |
| 3211 | | } |
| 3212 | | if (maddress == 0x0348) { |
| 3213 | | blend_function_destination = data; |
| 3214 | | } |
| 3215 | | if (maddress == 0x034c) { |
| 3216 | | blend_color = data; |
| 3217 | | } |
| 3218 | | if (maddress == 0x0350) { |
| 3219 | | blend_equation = data; |
| 3220 | | } |
| 3221 | | if (maddress == 0x0d40) { |
| 3222 | | if (data != 0) |
| 3223 | | blending_enabled = false; |
| 3224 | | else |
| 3225 | | blending_enabled = channel[chanel][subchannel].object.method[0x0304 / 4] != 0; |
| 3226 | | logical_operation_enabled = data != 0; |
| 3227 | | } |
| 3228 | | if (maddress == 0x0d44) { |
| 3229 | | logical_operation = data; |
| 3230 | | } |
| 3231 | | // Texture Units |
| 3232 | | if ((maddress >= 0x1b00) && (maddress < 0x1c00)) { |
| 3233 | | int unit;//,off; |
| 3234 | | |
| 3235 | | unit=(maddress >> 6) & 3; |
| 3236 | | //off=maddress & 0xc0; |
| 3237 | | maddress=maddress & ~0xc0; |
| 3238 | | if (maddress == 0x1b00) { |
| 3239 | | UINT32 offset;//,base; |
| 3240 | | //UINT32 dmahand,dmaoff,dmasiz; |
| 3241 | | |
| 3242 | | offset=data; |
| 3243 | | texture[unit].buffer=space.get_read_ptr(offset); |
| 3244 | | /*if (dma0 != 0) { |
| 3245 | | dmahand=channel[channel][subchannel].object.method[0x184/4]; |
| 3246 | | geforce_read_dma_object(dmahand,dmaoff,smasiz); |
| 3247 | | } else if (dma1 != 0) { |
| 3248 | | dmahand=channel[channel][subchannel].object.method[0x188/4]; |
| 3249 | | geforce_read_dma_object(dmahand,dmaoff,smasiz); |
| 3250 | | }*/ |
| 3251 | | } |
| 3252 | | if (maddress == 0x1b04) { |
| 3253 | | //int dma0,dma1,cubic,noborder,dims,mipmap; |
| 3254 | | int basesizeu,basesizev,basesizew,format; |
| 3255 | | |
| 3256 | | //dma0=(data >> 0) & 1; |
| 3257 | | //dma1=(data >> 1) & 1; |
| 3258 | | //cubic=(data >> 2) & 1; |
| 3259 | | //noborder=(data >> 3) & 1; |
| 3260 | | //dims=(data >> 4) & 15; |
| 3261 | | //mipmap=(data >> 19) & 1; |
| 3262 | | format=(data >> 8) & 255; |
| 3263 | | basesizeu=(data >> 20) & 15; |
| 3264 | | basesizev=(data >> 24) & 15; |
| 3265 | | basesizew=(data >> 28) & 15; |
| 3266 | | texture[unit].sizeu=1 << basesizeu; |
| 3267 | | texture[unit].sizev=1 << basesizev; |
| 3268 | | texture[unit].sizew=1 << basesizew; |
| 3269 | | texture[unit].dilate=dilatechose[(basesizeu << 4)+basesizev]; |
| 3270 | | texture[unit].format=format; |
| 3271 | | if (debug_grab_texttype == format) { |
| 3272 | | FILE *f; |
| 3273 | | int written; |
| 3274 | | |
| 3275 | | debug_grab_texttype = -1; |
| 3276 | | f = fopen(debug_grab_textfile, "wb"); |
| 3277 | | if (f) { |
| 3278 | | written=(int)fwrite(texture[unit].buffer, texture[unit].sizeu*texture[unit].sizev*4, 1, f); |
| 3279 | | fclose(f); |
| 3280 | | logerror("Written %d bytes of texture to specified file\n", written); |
| 3281 | | } else |
| 3282 | | logerror("Unable to save texture to specified file\n"); |
| 3283 | | } |
| 3284 | | } |
| 3285 | | if (maddress == 0x1b0c) { |
| 3286 | | // enable texture |
| 3287 | | int enable; |
| 3288 | | |
| 3289 | | enable=(data >> 30) & 1; |
| 3290 | | texture[unit].enabled=enable; |
| 3291 | | } |
| 3292 | | if (maddress == 0x1b10) { |
| 3293 | | texture[unit].rectangle_pitch=data >> 16; |
| 3294 | | } |
| 3295 | | countlen--; |
| 3296 | | } |
| 3297 | | // modelview matrix |
| 3298 | | if ((maddress >= 0x0480) && (maddress < 0x04c0)) { |
| 3299 | | maddress = (maddress - 0x0480) / 4; |
| 3300 | | *(UINT32 *)(&matrix.modelview[maddress]) = data; |
| 3301 | | countlen--; |
| 3302 | | } |
| 3303 | | // inverse modelview matrix |
| 3304 | | if ((maddress >= 0x0580) && (maddress < 0x05c0)) { |
| 3305 | | maddress = (maddress - 0x0580) / 4; |
| 3306 | | *(UINT32 *)(&matrix.modelview_inverse[maddress]) = data; |
| 3307 | | countlen--; |
| 3308 | | } |
| 3309 | | // projection matrix |
| 3310 | | if ((maddress >= 0x0680) && (maddress < 0x06c0)) { |
| 3311 | | maddress = (maddress - 0x0680) / 4; |
| 3312 | | *(UINT32 *)(&matrix.projection[maddress]) = data; |
| 3313 | | countlen--; |
| 3314 | | } |
| 3315 | | // viewport translate |
| 3316 | | if ((maddress >= 0x0a20) && (maddress < 0x0a30)) { |
| 3317 | | maddress = (maddress - 0x0a20) / 4; |
| 3318 | | *(UINT32 *)(&matrix.translate[maddress]) = data; |
| 3319 | | countlen--; |
| 3320 | | } |
| 3321 | | // viewport scale |
| 3322 | | if ((maddress >= 0x0af0) && (maddress < 0x0b00)) { |
| 3323 | | maddress = (maddress - 0x0af0) / 4; |
| 3324 | | *(UINT32 *)(&matrix.scale[maddress]) = data; |
| 3325 | | countlen--; |
| 3326 | | } |
| 3327 | | // Vertex program (shader) |
| 3328 | | if (maddress == 0x1e94) { |
| 3329 | | /*if (data == 2) |
| 3330 | | logerror("Enabled vertex program\n"); |
| 3331 | | else if (data == 4) |
| 3332 | | logerror("Enabled fixed function pipeline\n"); |
| 3333 | | else if (data == 6) |
| 3334 | | logerror("Enabled both fixed function pipeline and vertex program ?\n"); |
| 3335 | | else |
| 3336 | | logerror("Unknown value %d to method 0x1e94\n",data);*/ |
| 3337 | | vertex_pipeline = data & 6; |
| 3338 | | countlen--; |
| 3339 | | } |
| 3340 | | if (maddress == 0x1e9c) { |
| 3341 | | //logerror("VP_UPLOAD_FROM_ID %d\n",data); |
| 3342 | | vertexprogram.upload_instruction=data*4; |
| 3343 | | countlen--; |
| 3344 | | } |
| 3345 | | if (maddress == 0x1ea0) { |
| 3346 | | //logerror("VP_START_FROM_ID %d\n",data); |
| 3347 | | vertexprogram.instructions=vertexprogram.upload_instruction/4; |
| 3348 | | vertexprogram.start_instruction = data * 4; |
| 3349 | | countlen--; |
| 3350 | | } |
| 3351 | | if (maddress == 0x1ea4) { |
| 3352 | | //logerror("VP_UPLOAD_CONST_ID %d\n",data); |
| 3353 | | vertexprogram.upload_parameter=data*4; |
| 3354 | | countlen--; |
| 3355 | | } |
| 3356 | | if ((maddress >= 0x0b00) && (maddress < 0x0b80)) { |
| 3357 | | //logerror("VP_UPLOAD_INST\n"); |
| 3358 | | if (vertexprogram.upload_instruction < 1024) |
| 3359 | | vertexprogram.instruction[vertexprogram.upload_instruction]=data; |
| 3360 | | else |
| 3361 | | logerror("Need to increase size of vertexprogram.instruction to %d\n\r", vertexprogram.upload_parameter); |
| 3362 | | vertexprogram.upload_instruction++; |
| 3363 | | } |
| 3364 | | if ((maddress >= 0x0b80) && (maddress < 0x0c00)) { |
| 3365 | | //logerror("VP_UPLOAD_CONST\n"); |
| 3366 | | if (vertexprogram.upload_parameter < 1024) |
| 3367 | | *(UINT32 *)(&vertexprogram.parameter[vertexprogram.upload_parameter]) = data; |
| 3368 | | else |
| 3369 | | logerror("Need to increase size of vertexprogram.parameter to %d\n\r", vertexprogram.upload_parameter); |
| 3370 | | vertexprogram.upload_parameter++; |
| 3371 | | } |
| 3372 | | // Register combiners |
| 3373 | | if (maddress == 0x1e60) { |
| 3374 | | combiner.stages=data & 15; |
| 3375 | | countlen--; |
| 3376 | | } |
| 3377 | | if (maddress == 0x0288) { |
| 3378 | | combiner.final.mapin_rgbD_input=data & 15; |
| 3379 | | combiner.final.mapin_rgbD_component=(data >> 4) & 1; |
| 3380 | | combiner.final.mapin_rgbD_mapping=(data >> 5) & 7; |
| 3381 | | combiner.final.mapin_rgbC_input=(data >> 8) & 15; |
| 3382 | | combiner.final.mapin_rgbC_component=(data >> 12) & 1; |
| 3383 | | combiner.final.mapin_rgbC_mapping=(data >> 13) & 7; |
| 3384 | | combiner.final.mapin_rgbB_input=(data >> 16) & 15; |
| 3385 | | combiner.final.mapin_rgbB_component=(data >> 20) & 1; |
| 3386 | | combiner.final.mapin_rgbB_mapping=(data >> 21) & 7; |
| 3387 | | combiner.final.mapin_rgbA_input=(data >> 24) & 15; |
| 3388 | | combiner.final.mapin_rgbA_component=(data >> 28) & 1; |
| 3389 | | combiner.final.mapin_rgbA_mapping=(data >> 29) & 7; |
| 3390 | | countlen--; |
| 3391 | | } |
| 3392 | | if (maddress == 0x028c) { |
| 3393 | | combiner.final.color_sum_clamp=(data >> 7) & 1; |
| 3394 | | combiner.final.mapin_aG_input=(data >> 8) & 15; |
| 3395 | | combiner.final.mapin_aG_component=(data >> 12) & 1; |
| 3396 | | combiner.final.mapin_aG_mapping=(data >> 13) & 7; |
| 3397 | | combiner.final.mapin_rgbF_input=(data >> 16) & 15; |
| 3398 | | combiner.final.mapin_rgbF_component=(data >> 20) & 1; |
| 3399 | | combiner.final.mapin_rgbF_mapping=(data >> 21) & 7; |
| 3400 | | combiner.final.mapin_rgbE_input=(data >> 24) & 15; |
| 3401 | | combiner.final.mapin_rgbE_component=(data >> 28) & 1; |
| 3402 | | combiner.final.mapin_rgbE_mapping=(data >> 29) & 7; |
| 3403 | | countlen--; |
| 3404 | | } |
| 3405 | | if (maddress == 0x1e20) { |
| 3406 | | combiner_argb8_float(data,combiner.final.register_constantcolor0); |
| 3407 | | countlen--; |
| 3408 | | } |
| 3409 | | if (maddress == 0x1e24) { |
| 3410 | | combiner_argb8_float(data,combiner.final.register_constantcolor1); |
| 3411 | | countlen--; |
| 3412 | | } |
| 3413 | | if ((maddress >= 0x0260) && (maddress < 0x0280)) { |
| 3414 | | int n; |
| 3415 | | |
| 3416 | | n=(maddress-0x0260) >> 2; |
| 3417 | | combiner.stage[n].mapin_aD_input=data & 15; |
| 3418 | | combiner.stage[n].mapin_aD_component=(data >> 4) & 1; |
| 3419 | | combiner.stage[n].mapin_aD_mapping=(data >> 5) & 7; |
| 3420 | | combiner.stage[n].mapin_aC_input=(data >> 8) & 15; |
| 3421 | | combiner.stage[n].mapin_aC_component=(data >> 12) & 1; |
| 3422 | | combiner.stage[n].mapin_aC_mapping=(data >> 13) & 7; |
| 3423 | | combiner.stage[n].mapin_aB_input=(data >> 16) & 15; |
| 3424 | | combiner.stage[n].mapin_aB_component=(data >> 20) & 1; |
| 3425 | | combiner.stage[n].mapin_aB_mapping=(data >> 21) & 7; |
| 3426 | | combiner.stage[n].mapin_aA_input=(data >> 24) & 15; |
| 3427 | | combiner.stage[n].mapin_aA_component=(data >> 28) & 1; |
| 3428 | | combiner.stage[n].mapin_aA_mapping=(data >> 29) & 7; |
| 3429 | | countlen--; |
| 3430 | | } |
| 3431 | | if ((maddress >= 0x0ac0) && (maddress < 0x0ae0)) { |
| 3432 | | int n; |
| 3433 | | |
| 3434 | | n=(maddress-0x0ac0) >> 2; |
| 3435 | | combiner.stage[n].mapin_rgbD_input=data & 15; |
| 3436 | | combiner.stage[n].mapin_rgbD_component=(data >> 4) & 1; |
| 3437 | | combiner.stage[n].mapin_rgbD_mapping=(data >> 5) & 7; |
| 3438 | | combiner.stage[n].mapin_rgbC_input=(data >> 8) & 15; |
| 3439 | | combiner.stage[n].mapin_rgbC_component=(data >> 12) & 1; |
| 3440 | | combiner.stage[n].mapin_rgbC_mapping=(data >> 13) & 7; |
| 3441 | | combiner.stage[n].mapin_rgbB_input=(data >> 16) & 15; |
| 3442 | | combiner.stage[n].mapin_rgbB_component=(data >> 20) & 1; |
| 3443 | | combiner.stage[n].mapin_rgbB_mapping=(data >> 21) & 7; |
| 3444 | | combiner.stage[n].mapin_rgbA_input=(data >> 24) & 15; |
| 3445 | | combiner.stage[n].mapin_rgbA_component=(data >> 28) & 1; |
| 3446 | | combiner.stage[n].mapin_rgbA_mapping=(data >> 29) & 7; |
| 3447 | | countlen--; |
| 3448 | | } |
| 3449 | | if ((maddress >= 0x0a60) && (maddress < 0x0a80)) { |
| 3450 | | int n; |
| 3451 | | |
| 3452 | | n=(maddress-0x0a60) >> 2; |
| 3453 | | combiner_argb8_float(data,combiner.stage[n].register_constantcolor0); |
| 3454 | | countlen--; |
| 3455 | | } |
| 3456 | | if ((maddress >= 0x0a80) && (maddress < 0x0aa0)) { |
| 3457 | | int n; |
| 3458 | | |
| 3459 | | n=(maddress-0x0a80) >> 2; |
| 3460 | | combiner_argb8_float(data,combiner.stage[n].register_constantcolor1); |
| 3461 | | countlen--; |
| 3462 | | } |
| 3463 | | if ((maddress >= 0x0aa0) && (maddress < 0x0ac0)) { |
| 3464 | | int n; |
| 3465 | | |
| 3466 | | n=(maddress-0x0aa0) >> 2; |
| 3467 | | combiner.stage[n].mapout_aCD_output=data & 15; |
| 3468 | | combiner.stage[n].mapout_aAB_output=(data >> 4) & 15; |
| 3469 | | combiner.stage[n].mapout_aSUM_output=(data >> 8) & 15; |
| 3470 | | combiner.stage[n].mapout_aCD_dotproduct=(data >> 12) & 1; |
| 3471 | | combiner.stage[n].mapout_aAB_dotproduct=(data >> 13) & 1; |
| 3472 | | combiner.stage[n].mapout_a_muxsum=(data >> 14) & 1; |
| 3473 | | combiner.stage[n].mapout_a_bias=(data >> 15) & 1; |
| 3474 | | combiner.stage[n].mapout_a_scale=(data >> 16) & 3; |
| 3475 | | //combiner.=(data >> 27) & 7; |
| 3476 | | countlen--; |
| 3477 | | } |
| 3478 | | if ((maddress >= 0x1e40) && (maddress < 0x1e60)) { |
| 3479 | | int n; |
| 3480 | | |
| 3481 | | n=(maddress-0x1e40) >> 2; |
| 3482 | | combiner.stage[n].mapout_rgbCD_output=data & 15; |
| 3483 | | combiner.stage[n].mapout_rgbAB_output=(data >> 4) & 15; |
| 3484 | | combiner.stage[n].mapout_rgbSUM_output=(data >> 8) & 15; |
| 3485 | | combiner.stage[n].mapout_rgbCD_dotproduct=(data >> 12) & 1; |
| 3486 | | combiner.stage[n].mapout_rgbAB_dotproduct=(data >> 13) & 1; |
| 3487 | | combiner.stage[n].mapout_rgb_muxsum=(data >> 14) & 1; |
| 3488 | | combiner.stage[n].mapout_rgb_bias=(data >> 15) & 1; |
| 3489 | | combiner.stage[n].mapout_rgb_scale=(data >> 16) & 3; |
| 3490 | | //combiner.=(data >> 27) & 7; |
| 3491 | | countlen--; |
| 3492 | | } |
| 3493 | | } |
| 3494 | | |
| 3495 | | int nv2a_renderer::toggle_register_combiners_usage() |
| 3496 | | { |
| 3497 | | combiner.used=1-combiner.used; |
| 3498 | | return combiner.used; |
| 3499 | | } |
| 3500 | | |
| 3501 | | void nv2a_renderer::debug_grab_texture(int type, const char *filename) |
| 3502 | | { |
| 3503 | | debug_grab_texttype = type; |
| 3504 | | if (debug_grab_textfile == NULL) |
| 3505 | | debug_grab_textfile = (char *)malloc(128); |
| 3506 | | strncpy(debug_grab_textfile, filename, 127); |
| 3507 | | } |
| 3508 | | |
| 3509 | | void nv2a_renderer::debug_grab_vertex_program_slot(int slot, UINT32 *instruction) |
| 3510 | | { |
| 3511 | | if (slot >= 1024 / 4) |
| 3512 | | return; |
| 3513 | | instruction[0] = vertexprogram.instruction[slot * 4 + 0]; |
| 3514 | | instruction[1] = vertexprogram.instruction[slot * 4 + 1]; |
| 3515 | | instruction[2] = vertexprogram.instruction[slot * 4 + 2]; |
| 3516 | | instruction[3] = vertexprogram.instruction[slot * 4 + 3]; |
| 3517 | | } |
| 3518 | | |
| 3519 | | void nv2a_renderer::savestate_items() |
| 3520 | | { |
| 3521 | | } |
| 3522 | | |
| 3523 | | void nv2a_renderer::combiner_argb8_float(UINT32 color,float reg[4]) |
| 3524 | | { |
| 3525 | | reg[0]=(float)(color & 0xff)/255.0; |
| 3526 | | reg[1]=(float)((color >> 8) & 0xff)/255.0; |
| 3527 | | reg[2]=(float)((color >> 16) & 0xff)/255.0; |
| 3528 | | reg[3]=(float)((color >> 24) & 0xff)/255.0; |
| 3529 | | } |
| 3530 | | |
| 3531 | | UINT32 nv2a_renderer::combiner_float_argb8(float reg[4]) |
| 3532 | | { |
| 3533 | | UINT32 r,g,b,a; |
| 3534 | | |
| 3535 | | a=reg[3]*255.0; |
| 3536 | | b=reg[2]*255.0; |
| 3537 | | g=reg[1]*255.0; |
| 3538 | | r=reg[0]*255.0; |
| 3539 | | return (a << 24) | (r << 16) | (g << 8) | b; |
| 3540 | | } |
| 3541 | | |
| 3542 | | float nv2a_renderer::combiner_map_input_select(int code,int index) |
| 3543 | | { |
| 3544 | | switch (code) { |
| 3545 | | case 0: |
| 3546 | | default: |
| 3547 | | return combiner.register_zero[index]; |
| 3548 | | case 1: |
| 3549 | | return combiner.register_color0[index]; |
| 3550 | | case 2: |
| 3551 | | return combiner.register_color1[index]; |
| 3552 | | case 3: |
| 3553 | | return combiner.register_fogcolor[index]; |
| 3554 | | case 4: |
| 3555 | | return combiner.register_primarycolor[index]; |
| 3556 | | case 5: |
| 3557 | | return combiner.register_secondarycolor[index]; |
| 3558 | | case 8: |
| 3559 | | return combiner.register_texture0color[index]; |
| 3560 | | case 9: |
| 3561 | | return combiner.register_texture1color[index]; |
| 3562 | | case 10: |
| 3563 | | return combiner.register_texture2color[index]; |
| 3564 | | case 11: |
| 3565 | | return combiner.register_texture3color[index]; |
| 3566 | | case 12: |
| 3567 | | return combiner.register_spare0[index]; |
| 3568 | | case 13: |
| 3569 | | return combiner.register_spare1[index]; |
| 3570 | | case 14: |
| 3571 | | return combiner.variable_sumclamp[index]; |
| 3572 | | case 15: |
| 3573 | | return combiner.variable_EF[index]; |
| 3574 | | } |
| 3575 | | |
| 3576 | | // never executed |
| 3577 | | //return 0; |
| 3578 | | } |
| 3579 | | |
| 3580 | | float *nv2a_renderer::combiner_map_input_select3(int code) |
| 3581 | | { |
| 3582 | | switch (code) { |
| 3583 | | case 0: |
| 3584 | | default: |
| 3585 | | return combiner.register_zero; |
| 3586 | | case 1: |
| 3587 | | return combiner.register_color0; |
| 3588 | | case 2: |
| 3589 | | return combiner.register_color1; |
| 3590 | | case 3: |
| 3591 | | return combiner.register_fogcolor; |
| 3592 | | case 4: |
| 3593 | | return combiner.register_primarycolor; |
| 3594 | | case 5: |
| 3595 | | return combiner.register_secondarycolor; |
| 3596 | | case 8: |
| 3597 | | return combiner.register_texture0color; |
| 3598 | | case 9: |
| 3599 | | return combiner.register_texture1color; |
| 3600 | | case 10: |
| 3601 | | return combiner.register_texture2color; |
| 3602 | | case 11: |
| 3603 | | return combiner.register_texture3color; |
| 3604 | | case 12: |
| 3605 | | return combiner.register_spare0; |
| 3606 | | case 13: |
| 3607 | | return combiner.register_spare1; |
| 3608 | | case 14: |
| 3609 | | return combiner.variable_sumclamp; |
| 3610 | | case 15: |
| 3611 | | return combiner.variable_EF; |
| 3612 | | } |
| 3613 | | |
| 3614 | | // never executed |
| 3615 | | //return 0; |
| 3616 | | } |
| 3617 | | |
| 3618 | | float *nv2a_renderer::combiner_map_output_select3(int code) |
| 3619 | | { |
| 3620 | | switch (code) { |
| 3621 | | case 0: |
| 3622 | | return 0; |
| 3623 | | case 1: |
| 3624 | | return 0; |
| 3625 | | case 2: |
| 3626 | | return 0; |
| 3627 | | case 3: |
| 3628 | | return 0; |
| 3629 | | case 4: |
| 3630 | | return combiner.register_primarycolor; |
| 3631 | | case 5: |
| 3632 | | return combiner.register_secondarycolor; |
| 3633 | | case 8: |
| 3634 | | return combiner.register_texture0color; |
| 3635 | | case 9: |
| 3636 | | return combiner.register_texture1color; |
| 3637 | | case 10: |
| 3638 | | return combiner.register_texture2color; |
| 3639 | | case 11: |
| 3640 | | return combiner.register_texture3color; |
| 3641 | | case 12: |
| 3642 | | return combiner.register_spare0; |
| 3643 | | case 13: |
| 3644 | | return combiner.register_spare1; |
| 3645 | | case 14: |
| 3646 | | return 0; |
| 3647 | | case 15: |
| 3648 | | default: |
| 3649 | | return 0; |
| 3650 | | } |
| 3651 | | } |
| 3652 | | |
| 3653 | | float nv2a_renderer::combiner_map_input_function(int code,float value) |
| 3654 | | { |
| 3655 | | float t; |
| 3656 | | |
| 3657 | | switch (code) { |
| 3658 | | case 0: |
| 3659 | | return MAX(0.0,value); |
| 3660 | | case 1: |
| 3661 | | t=MAX(value, 0.0); |
| 3662 | | return 1.0 - MIN(t, 1.0); |
| 3663 | | case 2: |
| 3664 | | return 2.0 * MAX(0.0, value) - 1.0; |
| 3665 | | case 3: |
| 3666 | | return -2.0 * MAX(0.0, value) + 1.0; |
| 3667 | | case 4: |
| 3668 | | return MAX(0.0, value) - 0.5; |
| 3669 | | case 5: |
| 3670 | | return -MAX(0.0, value) + 0.5; |
| 3671 | | case 6: |
| 3672 | | return value; |
| 3673 | | case 7: |
| 3674 | | default: |
| 3675 | | return -value; |
| 3676 | | } |
| 3677 | | |
| 3678 | | // never executed |
| 3679 | | //return 0; |
| 3680 | | } |
| 3681 | | |
| 3682 | | void nv2a_renderer::combiner_map_input_function3(int code,float *data) |
| 3683 | | { |
| 3684 | | float t; |
| 3685 | | |
| 3686 | | switch (code) { |
| 3687 | | case 0: |
| 3688 | | data[0]=MAX(0.0,data[0]); |
| 3689 | | data[1]=MAX(0.0,data[1]); |
| 3690 | | data[2]=MAX(0.0,data[2]); |
| 3691 | | break; |
| 3692 | | case 1: |
| 3693 | | t=MAX(data[0], 0.0); |
| 3694 | | data[0]=1.0 - MIN(t, 1.0); |
| 3695 | | t=MAX(data[1], 0.0); |
| 3696 | | data[1]=1.0 - MIN(t, 1.0); |
| 3697 | | t=MAX(data[2], 0.0); |
| 3698 | | data[2]=1.0 - MIN(t, 1.0); |
| 3699 | | break; |
| 3700 | | case 2: |
| 3701 | | data[0]=2.0 * MAX(0.0, data[0]) - 1.0; |
| 3702 | | data[1]=2.0 * MAX(0.0, data[1]) - 1.0; |
| 3703 | | data[2]=2.0 * MAX(0.0, data[2]) - 1.0; |
| 3704 | | break; |
| 3705 | | case 3: |
| 3706 | | data[0]=-2.0 * MAX(0.0, data[0]) + 1.0; |
| 3707 | | data[1]=-2.0 * MAX(0.0, data[1]) + 1.0; |
| 3708 | | data[2]=-2.0 * MAX(0.0, data[2]) + 1.0; |
| 3709 | | break; |
| 3710 | | case 4: |
| 3711 | | data[0]=MAX(0.0, data[0]) - 0.5; |
| 3712 | | data[1]=MAX(0.0, data[1]) - 0.5; |
| 3713 | | data[2]=MAX(0.0, data[2]) - 0.5; |
| 3714 | | break; |
| 3715 | | case 5: |
| 3716 | | data[0]=-MAX(0.0, data[0]) + 0.5; |
| 3717 | | data[1]=-MAX(0.0, data[1]) + 0.5; |
| 3718 | | data[2]=-MAX(0.0, data[2]) + 0.5; |
| 3719 | | break; |
| 3720 | | case 6: |
| 3721 | | return; |
| 3722 | | case 7: |
| 3723 | | default: |
| 3724 | | data[0]=-data[0]; |
| 3725 | | data[1]=-data[1]; |
| 3726 | | data[2]=-data[2]; |
| 3727 | | break; |
| 3728 | | } |
| 3729 | | } |
| 3730 | | |
| 3731 | | void nv2a_renderer::combiner_initialize_registers(UINT32 argb8[6]) |
| 3732 | | { |
| 3733 | | combiner_argb8_float(argb8[0],combiner.register_primarycolor); |
| 3734 | | combiner_argb8_float(argb8[1],combiner.register_secondarycolor); |
| 3735 | | combiner_argb8_float(argb8[2],combiner.register_texture0color); |
| 3736 | | combiner_argb8_float(argb8[3],combiner.register_texture1color); |
| 3737 | | combiner_argb8_float(argb8[4],combiner.register_texture2color); |
| 3738 | | combiner_argb8_float(argb8[5],combiner.register_texture3color); |
| 3739 | | combiner.register_spare0[3]=combiner.register_texture0color[3]; |
| 3740 | | combiner.register_zero[0]=combiner.register_zero[1]=combiner.register_zero[2]=combiner.register_zero[3]=0; |
| 3741 | | } |
| 3742 | | |
| 3743 | | void nv2a_renderer::combiner_initialize_stage(int stage_number) |
| 3744 | | { |
| 3745 | | int n=stage_number; |
| 3746 | | |
| 3747 | | // put register_constantcolor0 in register_color0 |
| 3748 | | combiner.register_color0[0]=combiner.stage[n].register_constantcolor0[0]; |
| 3749 | | combiner.register_color0[1]=combiner.stage[n].register_constantcolor0[1]; |
| 3750 | | combiner.register_color0[2]=combiner.stage[n].register_constantcolor0[2]; |
| 3751 | | combiner.register_color0[3]=combiner.stage[n].register_constantcolor0[3]; |
| 3752 | | // put register_constantcolor1 in register_color1 |
| 3753 | | combiner.register_color1[0]=combiner.stage[n].register_constantcolor1[0]; |
| 3754 | | combiner.register_color1[1]=combiner.stage[n].register_constantcolor1[1]; |
| 3755 | | combiner.register_color1[2]=combiner.stage[n].register_constantcolor1[2]; |
| 3756 | | combiner.register_color1[3]=combiner.stage[n].register_constantcolor1[3]; |
| 3757 | | } |
| 3758 | | |
| 3759 | | void nv2a_renderer::combiner_initialize_final() |
| 3760 | | { |
| 3761 | | // put register_constantcolor0 in register_color0 |
| 3762 | | combiner.register_color0[0]=combiner.final.register_constantcolor0[0]; |
| 3763 | | combiner.register_color0[1]=combiner.final.register_constantcolor0[1]; |
| 3764 | | combiner.register_color0[2]=combiner.final.register_constantcolor0[2]; |
| 3765 | | combiner.register_color0[3]=combiner.final.register_constantcolor0[3]; |
| 3766 | | // put register_constantcolor1 in register_color1 |
| 3767 | | combiner.register_color1[0]=combiner.final.register_constantcolor1[0]; |
| 3768 | | combiner.register_color1[1]=combiner.final.register_constantcolor1[1]; |
| 3769 | | combiner.register_color1[2]=combiner.final.register_constantcolor1[2]; |
| 3770 | | combiner.register_color1[3]=combiner.final.register_constantcolor1[3]; |
| 3771 | | } |
| 3772 | | |
| 3773 | | void nv2a_renderer::combiner_map_input(int stage_number) |
| 3774 | | { |
| 3775 | | int n=stage_number; |
| 3776 | | int c,d,i; |
| 3777 | | float v,*pv; |
| 3778 | | |
| 3779 | | // A |
| 3780 | | v=combiner_map_input_select(combiner.stage[n].mapin_aA_input,2+combiner.stage[n].mapin_aA_component); |
| 3781 | | combiner.variable_A[3]=combiner_map_input_function(combiner.stage[n].mapin_aA_mapping,v); |
| 3782 | | // B |
| 3783 | | v=combiner_map_input_select(combiner.stage[n].mapin_aB_input,2+combiner.stage[n].mapin_aB_component); |
| 3784 | | combiner.variable_B[3]=combiner_map_input_function(combiner.stage[n].mapin_aB_mapping,v); |
| 3785 | | // C |
| 3786 | | v=combiner_map_input_select(combiner.stage[n].mapin_aC_input,2+combiner.stage[n].mapin_aC_component); |
| 3787 | | combiner.variable_C[3]=combiner_map_input_function(combiner.stage[n].mapin_aC_mapping,v); |
| 3788 | | // D |
| 3789 | | v=combiner_map_input_select(combiner.stage[n].mapin_aD_input,2+combiner.stage[n].mapin_aD_component); |
| 3790 | | combiner.variable_D[3]=combiner_map_input_function(combiner.stage[n].mapin_aD_mapping,v); |
| 3791 | | |
| 3792 | | // A |
| 3793 | | pv=combiner_map_input_select3(combiner.stage[n].mapin_rgbA_input); |
| 3794 | | c=combiner.stage[n].mapin_rgbA_component*3; |
| 3795 | | i=~combiner.stage[n].mapin_rgbA_component & 1; |
| 3796 | | for (d=0;d < 3;d++) { |
| 3797 | | combiner.variable_A[d]=pv[c]; |
| 3798 | | c=c+i; |
| 3799 | | } |
| 3800 | | combiner_map_input_function3(combiner.stage[n].mapin_rgbA_mapping,combiner.variable_A); |
| 3801 | | // B |
| 3802 | | pv=combiner_map_input_select3(combiner.stage[n].mapin_rgbB_input); |
| 3803 | | c=combiner.stage[n].mapin_rgbB_component*3; |
| 3804 | | i=~combiner.stage[n].mapin_rgbB_component & 1; |
| 3805 | | for (d=0;d < 3;d++) { |
| 3806 | | combiner.variable_B[d]=pv[c]; |
| 3807 | | c=c+i; |
| 3808 | | } |
| 3809 | | combiner_map_input_function3(combiner.stage[n].mapin_rgbB_mapping,combiner.variable_B); |
| 3810 | | // C |
| 3811 | | pv=combiner_map_input_select3(combiner.stage[n].mapin_rgbC_input); |
| 3812 | | c=combiner.stage[n].mapin_rgbC_component*3; |
| 3813 | | i=~combiner.stage[n].mapin_rgbC_component & 1; |
| 3814 | | for (d=0;d < 3;d++) { |
| 3815 | | combiner.variable_C[d]=pv[c]; |
| 3816 | | c=c+i; |
| 3817 | | } |
| 3818 | | combiner_map_input_function3(combiner.stage[n].mapin_rgbC_mapping,combiner.variable_C); |
| 3819 | | // D |
| 3820 | | pv=combiner_map_input_select3(combiner.stage[n].mapin_rgbD_input); |
| 3821 | | c=combiner.stage[n].mapin_rgbD_component*3; |
| 3822 | | i=~combiner.stage[n].mapin_rgbD_component & 1; |
| 3823 | | for (d=0;d < 3;d++) { |
| 3824 | | combiner.variable_D[d]=pv[c]; |
| 3825 | | c=c+i; |
| 3826 | | } |
| 3827 | | combiner_map_input_function3(combiner.stage[n].mapin_rgbD_mapping,combiner.variable_D); |
| 3828 | | } |
| 3829 | | |
| 3830 | | void nv2a_renderer::combiner_map_output(int stage_number) |
| 3831 | | { |
| 3832 | | int n=stage_number; |
| 3833 | | float *f; |
| 3834 | | |
| 3835 | | // rgb |
| 3836 | | f=combiner_map_output_select3(combiner.stage[n].mapout_rgbAB_output); |
| 3837 | | if (f) { |
| 3838 | | f[0]=combiner.function_RGBop1[0]; |
| 3839 | | f[1]=combiner.function_RGBop1[1]; |
| 3840 | | f[2]=combiner.function_RGBop1[2]; |
| 3841 | | } |
| 3842 | | f=combiner_map_output_select3(combiner.stage[n].mapout_rgbCD_output); |
| 3843 | | if (f) { |
| 3844 | | f[0]=combiner.function_RGBop2[0]; |
| 3845 | | f[1]=combiner.function_RGBop2[1]; |
| 3846 | | f[2]=combiner.function_RGBop2[2]; |
| 3847 | | } |
| 3848 | | if ((combiner.stage[n].mapout_rgbAB_dotproduct | combiner.stage[n].mapout_rgbCD_dotproduct) == 0) { |
| 3849 | | f=combiner_map_output_select3(combiner.stage[n].mapout_rgbSUM_output); |
| 3850 | | if (f) { |
| 3851 | | f[0]=combiner.function_RGBop3[0]; |
| 3852 | | f[1]=combiner.function_RGBop3[1]; |
| 3853 | | f[2]=combiner.function_RGBop3[2]; |
| 3854 | | } |
| 3855 | | } |
| 3856 | | // a |
| 3857 | | f=combiner_map_output_select3(combiner.stage[n].mapout_aAB_output); |
| 3858 | | if (f) |
| 3859 | | f[3]=combiner.function_Aop1; |
| 3860 | | f=combiner_map_output_select3(combiner.stage[n].mapout_aCD_output); |
| 3861 | | if (f) |
| 3862 | | f[3]=combiner.function_Aop2; |
| 3863 | | f=combiner_map_output_select3(combiner.stage[n].mapout_aSUM_output); |
| 3864 | | if (f) |
| 3865 | | f[3]=combiner.function_Aop3; |
| 3866 | | } |
| 3867 | | |
| 3868 | | void nv2a_renderer::combiner_map_final_input() |
| 3869 | | { |
| 3870 | | int i,c,d; |
| 3871 | | float *pv; |
| 3872 | | |
| 3873 | | // E |
| 3874 | | pv=combiner_map_input_select3(combiner.final.mapin_rgbE_input); |
| 3875 | | c=combiner.final.mapin_rgbE_component*3; |
| 3876 | | i=~combiner.final.mapin_rgbE_component & 1; |
| 3877 | | for (d=0;d < 3;d++) { |
| 3878 | | combiner.variable_E[d]=pv[c]; |
| 3879 | | c=c+i; |
| 3880 | | } |
| 3881 | | combiner_map_input_function3(combiner.final.mapin_rgbE_mapping,combiner.variable_E); |
| 3882 | | // F |
| 3883 | | pv=combiner_map_input_select3(combiner.final.mapin_rgbF_input); |
| 3884 | | c=combiner.final.mapin_rgbF_component*3; |
| 3885 | | i=~combiner.final.mapin_rgbF_component & 1; |
| 3886 | | for (d=0;d < 3;d++) { |
| 3887 | | combiner.variable_F[d]=pv[c]; |
| 3888 | | c=c+i; |
| 3889 | | } |
| 3890 | | combiner_map_input_function3(combiner.final.mapin_rgbF_mapping,combiner.variable_F); |
| 3891 | | // EF |
| 3892 | | combiner.variable_EF[0]=combiner.variable_E[0]*combiner.variable_F[0]; |
| 3893 | | combiner.variable_EF[1]=combiner.variable_E[1]*combiner.variable_F[1]; |
| 3894 | | combiner.variable_EF[2]=combiner.variable_E[2]*combiner.variable_F[2]; |
| 3895 | | // sumclamp |
| 3896 | | combiner.variable_sumclamp[0]=MAX(0,combiner.register_spare0[0])+MAX(0,combiner.register_secondarycolor[0]); |
| 3897 | | combiner.variable_sumclamp[1]=MAX(0,combiner.register_spare0[1])+MAX(0,combiner.register_secondarycolor[1]); |
| 3898 | | combiner.variable_sumclamp[2]=MAX(0,combiner.register_spare0[2])+MAX(0,combiner.register_secondarycolor[2]); |
| 3899 | | if (combiner.final.color_sum_clamp != 0) { |
| 3900 | | combiner.variable_sumclamp[0]=MIN(combiner.variable_sumclamp[0],1.0); |
| 3901 | | combiner.variable_sumclamp[1]=MIN(combiner.variable_sumclamp[1],1.0); |
| 3902 | | combiner.variable_sumclamp[2]=MIN(combiner.variable_sumclamp[2],1.0); |
| 3903 | | } |
| 3904 | | // A |
| 3905 | | pv=combiner_map_input_select3(combiner.final.mapin_rgbA_input); |
| 3906 | | c=combiner.final.mapin_rgbA_component*3; |
| 3907 | | i=~combiner.final.mapin_rgbA_component & 1; |
| 3908 | | for (d=0;d < 3;d++) { |
| 3909 | | combiner.variable_A[d]=pv[c]; |
| 3910 | | c=c+i; |
| 3911 | | } |
| 3912 | | combiner_map_input_function3(combiner.final.mapin_rgbA_mapping,combiner.variable_A); |
| 3913 | | // B |
| 3914 | | pv=combiner_map_input_select3(combiner.final.mapin_rgbB_input); |
| 3915 | | c=combiner.final.mapin_rgbB_component*3; |
| 3916 | | i=~combiner.final.mapin_rgbB_component & 1; |
| 3917 | | for (d=0;d < 3;d++) { |
| 3918 | | combiner.variable_B[d]=pv[c]; |
| 3919 | | c=c+i; |
| 3920 | | } |
| 3921 | | combiner_map_input_function3(combiner.final.mapin_rgbB_mapping,combiner.variable_B); |
| 3922 | | // C |
| 3923 | | pv=combiner_map_input_select3(combiner.final.mapin_rgbC_input); |
| 3924 | | c=combiner.final.mapin_rgbC_component*3; |
| 3925 | | i=~combiner.final.mapin_rgbC_component & 1; |
| 3926 | | for (d=0;d < 3;d++) { |
| 3927 | | combiner.variable_C[d]=pv[c]; |
| 3928 | | c=c+i; |
| 3929 | | } |
| 3930 | | combiner_map_input_function3(combiner.final.mapin_rgbC_mapping,combiner.variable_C); |
| 3931 | | // D |
| 3932 | | pv=combiner_map_input_select3(combiner.final.mapin_rgbD_input); |
| 3933 | | c=combiner.final.mapin_rgbD_component*3; |
| 3934 | | i=~combiner.final.mapin_rgbD_component & 1; |
| 3935 | | for (d=0;d < 3;d++) { |
| 3936 | | combiner.variable_D[d]=pv[c]; |
| 3937 | | c=c+i; |
| 3938 | | } |
| 3939 | | combiner_map_input_function3(combiner.final.mapin_rgbD_mapping,combiner.variable_D); |
| 3940 | | // G |
| 3941 | | combiner.variable_G=combiner_map_input_select(combiner.final.mapin_aG_input,2+combiner.final.mapin_aG_component); |
| 3942 | | } |
| 3943 | | |
| 3944 | | void nv2a_renderer::combiner_final_output() |
| 3945 | | { |
| 3946 | | // rgb |
| 3947 | | combiner.output[0]=combiner.variable_A[0]*combiner.variable_B[0]+(1.0-combiner.variable_A[0])*combiner.variable_C[0]+combiner.variable_D[0]; |
| 3948 | | combiner.output[1]=combiner.variable_A[1]*combiner.variable_B[1]+(1.0-combiner.variable_A[1])*combiner.variable_C[1]+combiner.variable_D[1]; |
| 3949 | | combiner.output[2]=combiner.variable_A[2]*combiner.variable_B[2]+(1.0-combiner.variable_A[2])*combiner.variable_C[2]+combiner.variable_D[2]; |
| 3950 | | combiner.output[0]=MIN(combiner.output[0],1.0); |
| 3951 | | combiner.output[1]=MIN(combiner.output[1],1.0); |
| 3952 | | combiner.output[2]=MIN(combiner.output[2],1.0); |
| 3953 | | // a |
| 3954 | | combiner.output[3]=combiner_map_input_function(combiner.final.mapin_aG_mapping,combiner.variable_G); |
| 3955 | | } |
| 3956 | | |
| 3957 | | void nv2a_renderer::combiner_function_AB(float result[4]) |
| 3958 | | { |
| 3959 | | result[0]=combiner.variable_A[0]*combiner.variable_B[0]; |
| 3960 | | result[1]=combiner.variable_A[1]*combiner.variable_B[1]; |
| 3961 | | result[2]=combiner.variable_A[2]*combiner.variable_B[2]; |
| 3962 | | } |
| 3963 | | |
| 3964 | | void nv2a_renderer::combiner_function_AdotB(float result[4]) |
| 3965 | | { |
| 3966 | | result[0]=combiner.variable_A[0]*combiner.variable_B[0]+combiner.variable_A[1]*combiner.variable_B[1]+combiner.variable_A[2]*combiner.variable_B[2]; |
| 3967 | | result[1]=result[0]; |
| 3968 | | result[2]=result[0]; |
| 3969 | | } |
| 3970 | | |
| 3971 | | void nv2a_renderer::combiner_function_CD(float result[4]) |
| 3972 | | { |
| 3973 | | result[0]=combiner.variable_C[0]*combiner.variable_D[0]; |
| 3974 | | result[1]=combiner.variable_C[1]*combiner.variable_D[1]; |
| 3975 | | result[2]=combiner.variable_C[2]*combiner.variable_D[2]; |
| 3976 | | } |
| 3977 | | |
| 3978 | | void nv2a_renderer::combiner_function_CdotD(float result[4]) |
| 3979 | | { |
| 3980 | | result[0]=combiner.variable_C[0]*combiner.variable_D[0]+combiner.variable_C[1]*combiner.variable_D[1]+combiner.variable_C[2]*combiner.variable_D[2]; |
| 3981 | | result[1]=result[0]; |
| 3982 | | result[2]=result[0]; |
| 3983 | | } |
| 3984 | | |
| 3985 | | void nv2a_renderer::combiner_function_ABmuxCD(float result[4]) |
| 3986 | | { |
| 3987 | | if (combiner.register_spare0[3] >= 0.5) |
| 3988 | | combiner_function_AB(result); |
| 3989 | | else |
| 3990 | | combiner_function_CD(result); |
| 3991 | | } |
| 3992 | | |
| 3993 | | void nv2a_renderer::combiner_function_ABsumCD(float result[4]) |
| 3994 | | { |
| 3995 | | result[0]=combiner.variable_A[0]*combiner.variable_B[0]+combiner.variable_C[0]*combiner.variable_D[0]; |
| 3996 | | result[1]=combiner.variable_A[1]*combiner.variable_B[1]+combiner.variable_C[1]*combiner.variable_D[1]; |
| 3997 | | result[2]=combiner.variable_A[2]*combiner.variable_B[2]+combiner.variable_C[2]*combiner.variable_D[2]; |
| 3998 | | } |
| 3999 | | |
| 4000 | | void nv2a_renderer::combiner_compute_rgb_outputs(int stage_number) |
| 4001 | | { |
| 4002 | | int n=stage_number; |
| 4003 | | int m; |
| 4004 | | float biasrgb,scalergb; |
| 4005 | | |
| 4006 | | if (combiner.stage[n].mapout_rgb_bias) |
| 4007 | | biasrgb= -0.5; |
| 4008 | | else |
| 4009 | | biasrgb=0; |
| 4010 | | switch (combiner.stage[n].mapout_rgb_scale) { |
| 4011 | | case 0: |
| 4012 | | default: |
| 4013 | | scalergb=1.0; |
| 4014 | | break; |
| 4015 | | case 1: |
| 4016 | | scalergb=2.0; |
| 4017 | | break; |
| 4018 | | case 2: |
| 4019 | | scalergb=4.0; |
| 4020 | | break; |
| 4021 | | case 3: |
| 4022 | | scalergb=0.5; |
| 4023 | | break; |
| 4024 | | } |
| 4025 | | if (combiner.stage[n].mapout_rgbAB_dotproduct) { |
| 4026 | | m=1; |
| 4027 | | combiner_function_AdotB(combiner.function_RGBop1); |
| 4028 | | } else { |
| 4029 | | m=0; |
| 4030 | | combiner_function_AB(combiner.function_RGBop1); |
| 4031 | | } |
| 4032 | | combiner.function_RGBop1[0]=MAX(MIN((combiner.function_RGBop1[0] + biasrgb) * scalergb, 1.0), -1.0); |
| 4033 | | combiner.function_RGBop1[1]=MAX(MIN((combiner.function_RGBop1[1] + biasrgb) * scalergb, 1.0), -1.0); |
| 4034 | | combiner.function_RGBop1[2]=MAX(MIN((combiner.function_RGBop1[2] + biasrgb) * scalergb, 1.0), -1.0); |
| 4035 | | if (combiner.stage[n].mapout_rgbCD_dotproduct) { |
| 4036 | | m=m | 1; |
| 4037 | | combiner_function_CdotD(combiner.function_RGBop2); |
| 4038 | | } else |
| 4039 | | combiner_function_CD(combiner.function_RGBop2); |
| 4040 | | combiner.function_RGBop2[0]=MAX(MIN((combiner.function_RGBop2[0] + biasrgb) * scalergb, 1.0), -1.0); |
| 4041 | | combiner.function_RGBop2[1]=MAX(MIN((combiner.function_RGBop2[1] + biasrgb) * scalergb, 1.0), -1.0); |
| 4042 | | combiner.function_RGBop2[2]=MAX(MIN((combiner.function_RGBop2[2] + biasrgb) * scalergb, 1.0), -1.0); |
| 4043 | | if (m == 0) { |
| 4044 | | if (combiner.stage[n].mapout_rgb_muxsum) |
| 4045 | | combiner_function_ABmuxCD(combiner.function_RGBop3); |
| 4046 | | else |
| 4047 | | combiner_function_ABsumCD(combiner.function_RGBop3); |
| 4048 | | combiner.function_RGBop3[0]=MAX(MIN((combiner.function_RGBop3[0] + biasrgb) * scalergb, 1.0), -1.0); |
| 4049 | | combiner.function_RGBop3[1]=MAX(MIN((combiner.function_RGBop3[1] + biasrgb) * scalergb, 1.0), -1.0); |
| 4050 | | combiner.function_RGBop3[2]=MAX(MIN((combiner.function_RGBop3[2] + biasrgb) * scalergb, 1.0), -1.0); |
| 4051 | | } |
| 4052 | | } |
| 4053 | | |
| 4054 | | void nv2a_renderer::combiner_compute_a_outputs(int stage_number) |
| 4055 | | { |
| 4056 | | int n=stage_number; |
| 4057 | | float biasa,scalea; |
| 4058 | | |
| 4059 | | if (combiner.stage[n].mapout_a_bias) |
| 4060 | | biasa= -0.5; |
| 4061 | | else |
| 4062 | | biasa=0; |
| 4063 | | switch (combiner.stage[n].mapout_a_scale) { |
| 4064 | | case 0: |
| 4065 | | default: |
| 4066 | | scalea=1.0; |
| 4067 | | break; |
| 4068 | | case 1: |
| 4069 | | scalea=2.0; |
| 4070 | | break; |
| 4071 | | case 2: |
| 4072 | | scalea=4.0; |
| 4073 | | break; |
| 4074 | | case 3: |
| 4075 | | scalea=0.5; |
| 4076 | | break; |
| 4077 | | } |
| 4078 | | combiner.function_Aop1=combiner.variable_A[3]*combiner.variable_B[3]; |
| 4079 | | combiner.function_Aop1=MAX(MIN((combiner.function_Aop1 + biasa) * scalea, 1.0), -1.0); |
| 4080 | | combiner.function_Aop2=combiner.variable_C[3]*combiner.variable_D[3]; |
| 4081 | | combiner.function_Aop2=MAX(MIN((combiner.function_Aop2 + biasa) * scalea, 1.0), -1.0); |
| 4082 | | if (combiner.stage[n].mapout_a_muxsum) { |
| 4083 | | if (combiner.register_spare0[3] >= 0.5) |
| 4084 | | combiner.function_Aop3=combiner.variable_A[3]*combiner.variable_B[3]; |
| 4085 | | else |
| 4086 | | combiner.function_Aop3=combiner.variable_C[3]*combiner.variable_D[3]; |
| 4087 | | } else |
| 4088 | | combiner.function_Aop3=combiner.variable_A[3]*combiner.variable_B[3]+combiner.variable_C[3]*combiner.variable_D[3]; |
| 4089 | | combiner.function_Aop3=MAX(MIN((combiner.function_Aop3 + biasa) * scalea, 1.0), -1.0); |
| 4090 | | } |
| 4091 | | |
| 4092 | | void nv2a_renderer::vblank_callback(screen_device &screen, bool state) |
| 4093 | | { |
| 4094 | | chihiro_state *chst=machine().driver_data<chihiro_state>(); |
| 4095 | | |
| 4096 | | //printf("vblank_callback\n\r"); |
| 4097 | | if (state == true) |
| 4098 | | pcrtc[0x100/4] |= 1; |
| 4099 | | else |
| 4100 | | pcrtc[0x100/4] &= ~1; |
| 4101 | | if (pcrtc[0x100/4] & pcrtc[0x140/4]) |
| 4102 | | pmc[0x100/4] |= 0x1000000; |
| 4103 | | else |
| 4104 | | pmc[0x100/4] &= ~0x1000000; |
| 4105 | | if ((pmc[0x100/4] != 0) && (pmc[0x140/4] != 0)) { |
| 4106 | | // send interrupt |
| 4107 | | chst->chihiro_devs.pic8259_1->ir3_w(1); // IRQ 3 |
| 4108 | | } else |
| 4109 | | chst->chihiro_devs.pic8259_1->ir3_w(0); // IRQ 3 |
| 4110 | | } |
| 4111 | | |
| 4112 | | UINT32 nv2a_renderer::screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 4113 | | { |
| 4114 | | UINT32 *dst=(UINT32 *)bitmap.raw_pixptr(0,0); |
| 4115 | | UINT32 *src=(UINT32 *)fb.raw_pixptr(0,0); |
| 4116 | | |
| 4117 | | //printf("updatescreen\n\r"); |
| 4118 | | memcpy(dst,src,bitmap.rowbytes()*bitmap.height()); |
| 4119 | | return 0; |
| 4120 | | } |
| 4121 | | |
| 4122 | | void chihiro_state::debug_generate_irq(int irq,bool active) |
| 4123 | | { |
| 4124 | 901 | int state; |
| 4125 | 902 | |
| 4126 | 903 | if (active) |
| 4127 | 904 | { |
| 4128 | | debug_irq_active=true; |
| 4129 | | debug_irq_number=irq; |
| 4130 | | state=1; |
| 905 | debug_irq_active = true; |
| 906 | debug_irq_number = irq; |
| 907 | state = 1; |
| 4131 | 908 | } |
| 4132 | 909 | else |
| 4133 | 910 | { |
| 4134 | | debug_irq_active=false; |
| 4135 | | state=0; |
| 911 | debug_irq_active = false; |
| 912 | state = 0; |
| 4136 | 913 | } |
| 4137 | 914 | switch (irq) |
| 4138 | 915 | { |
| r242231 | r242232 | |
| 4186 | 963 | |
| 4187 | 964 | void chihiro_state::vblank_callback(screen_device &screen, bool state) |
| 4188 | 965 | { |
| 4189 | | nvidia_nv2a->vblank_callback(screen,state); |
| 966 | if (nvidia_nv2a->vblank_callback(screen, state)) |
| 967 | chihiro_devs.pic8259_1->ir3_w(1); // IRQ 3 |
| 968 | else |
| 969 | chihiro_devs.pic8259_1->ir3_w(0); // IRQ 3 |
| 4190 | 970 | } |
| 4191 | 971 | |
| 4192 | 972 | UINT32 chihiro_state::screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| r242231 | r242232 | |
| 4194 | 974 | return nvidia_nv2a->screen_update_callback(screen, bitmap, cliprect); |
| 4195 | 975 | } |
| 4196 | 976 | |
| 4197 | | READ32_MEMBER( nv2a_renderer::geforce_r ) |
| 977 | READ32_MEMBER(chihiro_state::geforce_r) |
| 4198 | 978 | { |
| 4199 | | static int x,ret; |
| 4200 | | |
| 4201 | | ret=0; |
| 4202 | | if (offset == 0x1804f6) { |
| 4203 | | x = x ^ 0x08080808; |
| 4204 | | ret=x; |
| 4205 | | } |
| 4206 | | if ((offset >= 0x00101000/4) && (offset < 0x00102000/4)) { |
| 4207 | | //logerror("NV_2A: read STRAPS[%06X] mask %08X value %08X\n",offset*4-0x00101000,mem_mask,ret); |
| 4208 | | } else if ((offset >= 0x00002000/4) && (offset < 0x00004000/4)) { |
| 4209 | | ret=pfifo[offset-0x00002000/4]; |
| 4210 | | // PFIFO.CACHE1.STATUS or PFIFO.RUNOUT_STATUS |
| 4211 | | if ((offset == 0x3214/4) || (offset == 0x2400/4)) |
| 4212 | | ret=0x10; |
| 4213 | | //logerror("NV_2A: read PFIFO[%06X] value %08X\n",offset*4-0x00002000,ret); |
| 4214 | | } else if ((offset >= 0x00700000/4) && (offset < 0x00800000/4)) { |
| 4215 | | ret=ramin[offset-0x00700000/4]; |
| 4216 | | //logerror("NV_2A: read PRAMIN[%06X] value %08X\n",offset*4-0x00700000,ret); |
| 4217 | | } else if ((offset >= 0x00400000/4) && (offset < 0x00402000/4)) { |
| 4218 | | //logerror("NV_2A: read PGRAPH[%06X] value %08X\n",offset*4-0x00400000,ret); |
| 4219 | | } else if ((offset >= 0x00600000/4) && (offset < 0x00601000/4)) { |
| 4220 | | ret=pcrtc[offset-0x00600000/4]; |
| 4221 | | //logerror("NV_2A: read PCRTC[%06X] value %08X\n",offset*4-0x00600000,ret); |
| 4222 | | } else if ((offset >= 0x00000000/4) && (offset < 0x00001000/4)) { |
| 4223 | | ret=pmc[offset-0x00000000/4]; |
| 4224 | | //logerror("NV_2A: read PMC[%06X] value %08X\n",offset*4-0x00000000,ret); |
| 4225 | | } else if ((offset >= 0x00800000/4) && (offset < 0x00900000/4)) { |
| 4226 | | // 32 channels size 0x10000 each, 8 subchannels per channel size 0x2000 each |
| 4227 | | int chanel,subchannel,suboffset; |
| 4228 | | |
| 4229 | | suboffset=offset-0x00800000/4; |
| 4230 | | chanel=(suboffset >> (16-2)) & 31; |
| 4231 | | subchannel=(suboffset >> (13-2)) & 7; |
| 4232 | | suboffset=suboffset & 0x7ff; |
| 4233 | | if (suboffset < 0x80/4) |
| 4234 | | ret=channel[chanel][subchannel].regs[suboffset]; |
| 4235 | | //logerror("NV_2A: read channel[%02X,%d,%04X]=%08X\n",chanel,subchannel,suboffset*4,ret); |
| 4236 | | return ret; |
| 4237 | | } else ; |
| 4238 | | //logerror("NV_2A: read at %08X mask %08X value %08X\n",0xfd000000+offset*4,mem_mask,ret); |
| 4239 | | return ret; |
| 979 | return nvidia_nv2a->geforce_r(space, offset, mem_mask); |
| 4240 | 980 | } |
| 4241 | 981 | |
| 4242 | | WRITE32_MEMBER( nv2a_renderer::geforce_w ) |
| 982 | WRITE32_MEMBER(chihiro_state::geforce_w) |
| 4243 | 983 | { |
| 4244 | | if ((offset >= 0x00101000/4) && (offset < 0x00102000/4)) { |
| 4245 | | //logerror("NV_2A: write STRAPS[%06X] mask %08X value %08X\n",offset*4-0x00101000,mem_mask,data); |
| 4246 | | } else if ((offset >= 0x00002000/4) && (offset < 0x00004000/4)) { |
| 4247 | | COMBINE_DATA(pfifo+offset-0x00002000/4); |
| 4248 | | //logerror("NV_2A: read PFIFO[%06X]=%08X\n",offset*4-0x00002000,data & mem_mask); // 2210 pfifo ramht & 1f0 << 12 |
| 4249 | | } else if ((offset >= 0x00700000/4) && (offset < 0x00800000/4)) { |
| 4250 | | COMBINE_DATA(ramin+offset-0x00700000/4); |
| 4251 | | //logerror("NV_2A: write PRAMIN[%06X]=%08X\n",offset*4-0x00700000,data & mem_mask); |
| 4252 | | } else if ((offset >= 0x00400000/4) && (offset < 0x00402000/4)) { |
| 4253 | | //logerror("NV_2A: write PGRAPH[%06X]=%08X\n",offset*4-0x00400000,data & mem_mask); |
| 4254 | | } else if ((offset >= 0x00600000/4) && (offset < 0x00601000/4)) { |
| 4255 | | COMBINE_DATA(pcrtc+offset-0x00600000/4); |
| 4256 | | //logerror("NV_2A: write PCRTC[%06X]=%08X\n",offset*4-0x00600000,data & mem_mask); |
| 4257 | | } else if ((offset >= 0x00000000/4) && (offset < 0x00001000/4)) { |
| 4258 | | COMBINE_DATA(pmc+offset-0x00000000/4); |
| 4259 | | //logerror("NV_2A: write PMC[%06X]=%08X\n",offset*4-0x00000000,data & mem_mask); |
| 4260 | | } else if ((offset >= 0x00800000/4) && (offset < 0x00900000/4)) { |
| 4261 | | // 32 channels size 0x10000 each, 8 subchannels per channel size 0x2000 each |
| 4262 | | int chanel,subchannel,suboffset; |
| 4263 | | int method,count,handle,objclass; |
| 4264 | | #ifdef LOG_NV2A |
| 4265 | | int subch; |
| 4266 | | #endif |
| 4267 | | |
| 4268 | | suboffset=offset-0x00800000/4; |
| 4269 | | chanel=(suboffset >> (16-2)) & 31; |
| 4270 | | subchannel=(suboffset >> (13-2)) & 7; |
| 4271 | | suboffset=suboffset & 0x7ff; |
| 4272 | | //logerror("NV_2A: write channel[%02X,%d,%04X]=%08X\n",chanel,subchannel,suboffset*4,data & mem_mask); |
| 4273 | | if (suboffset >= 0x80/4) |
| 4274 | | return; |
| 4275 | | COMBINE_DATA(&channel[chanel][subchannel].regs[suboffset]); |
| 4276 | | if ((suboffset == 0x40/4) || (suboffset == 0x44/4)) { // DMA_PUT or DMA_GET |
| 4277 | | UINT32 *dmaput,*dmaget; |
| 4278 | | UINT32 cmd,cmdtype; |
| 4279 | | int countlen; |
| 4280 | | |
| 4281 | | dmaput=&channel[chanel][subchannel].regs[0x40/4]; |
| 4282 | | dmaget=&channel[chanel][subchannel].regs[0x44/4]; |
| 4283 | | //printf("dmaget %08X dmaput %08X\n\r",*dmaget,*dmaput); |
| 4284 | | if ((*dmaput == 0x048cf000) && (*dmaget == 0x07f4d000)) |
| 4285 | | *dmaget = *dmaput; |
| 4286 | | while (*dmaget != *dmaput) { |
| 4287 | | cmd=space.read_dword(*dmaget); |
| 4288 | | *dmaget += 4; |
| 4289 | | cmdtype=geforce_commandkind(cmd); |
| 4290 | | switch (cmdtype) |
| 4291 | | { |
| 4292 | | case 6: // jump |
| 4293 | | #ifdef LOG_NV2A |
| 4294 | | printf("jump dmaget %08X",*dmaget); |
| 4295 | | #endif |
| 4296 | | *dmaget=cmd & 0xfffffffc; |
| 4297 | | #ifdef LOG_NV2A |
| 4298 | | printf(" -> %08X\n\r",*dmaget); |
| 4299 | | #endif |
| 4300 | | break; |
| 4301 | | case 0: // increasing method |
| 4302 | | method=(cmd >> 2) & 2047; // method*4 is address // if method >= 0x40 send it to assigned object |
| 4303 | | #ifdef LOG_NV2A |
| 4304 | | subch=(cmd >> 13) & 7; |
| 4305 | | #endif |
| 4306 | | count=(cmd >> 18) & 2047; |
| 4307 | | if ((method == 0) && (count == 1)) { |
| 4308 | | handle=space.read_dword(*dmaget); |
| 4309 | | handle=geforce_object_offset(handle); |
| 4310 | | #ifdef LOG_NV2A |
| 4311 | | logerror(" assign to subchannel %d object at %d\n",subch,handle); |
| 4312 | | #endif |
| 4313 | | channel[chanel][subchannel].object.objhandle=handle; |
| 4314 | | handle=ramin[handle/4]; |
| 4315 | | objclass=handle & 0xff; |
| 4316 | | channel[chanel][subchannel].object.objclass=objclass; |
| 4317 | | *dmaget += 4; |
| 4318 | | } else { |
| 4319 | | #ifdef LOG_NV2A |
| 4320 | | logerror(" subch. %d method %04x offset %04x count %d\n",subch,method,method*4,count); |
| 4321 | | #endif |
| 4322 | | while (count > 0) { |
| 4323 | | countlen=1; |
| 4324 | | geforce_exec_method(space,chanel,subchannel,method,*dmaget,countlen); |
| 4325 | | count--; |
| 4326 | | method++; |
| 4327 | | *dmaget += 4; |
| 4328 | | } |
| 4329 | | } |
| 4330 | | break; |
| 4331 | | case 5: // non-increasing method |
| 4332 | | method=(cmd >> 2) & 2047; |
| 4333 | | #ifdef LOG_NV2A |
| 4334 | | subch=(cmd >> 13) & 7; |
| 4335 | | #endif |
| 4336 | | count=(cmd >> 18) & 2047; |
| 4337 | | if ((method == 0) && (count == 1)) { |
| 4338 | | #ifdef LOG_NV2A |
| 4339 | | logerror(" assign channel %d\n",subch); |
| 4340 | | #endif |
| 4341 | | handle=space.read_dword(*dmaget); |
| 4342 | | handle=geforce_object_offset(handle); |
| 4343 | | #ifdef LOG_NV2A |
| 4344 | | logerror(" assign to subchannel %d object at %d\n",subch,handle); |
| 4345 | | #endif |
| 4346 | | channel[chanel][subchannel].object.objhandle=handle; |
| 4347 | | handle=ramin[handle/4]; |
| 4348 | | objclass=handle & 0xff; |
| 4349 | | channel[chanel][subchannel].object.objclass=objclass; |
| 4350 | | *dmaget += 4; |
| 4351 | | } else { |
| 4352 | | #ifdef LOG_NV2A |
| 4353 | | logerror(" subch. %d method %04x offset %04x count %d\n",subch,method,method*4,count); |
| 4354 | | #endif |
| 4355 | | while (count > 0) { |
| 4356 | | countlen=count; |
| 4357 | | geforce_exec_method(space,chanel,subchannel,method,*dmaget,countlen); |
| 4358 | | *dmaget += 4*(count-countlen); |
| 4359 | | count=countlen; |
| 4360 | | } |
| 4361 | | } |
| 4362 | | break; |
| 4363 | | case 3: // long non-increasing method |
| 4364 | | method=(cmd >> 2) & 2047; |
| 4365 | | #ifdef LOG_NV2A |
| 4366 | | subch=(cmd >> 13) & 7; |
| 4367 | | #endif |
| 4368 | | count=space.read_dword(*dmaget); |
| 4369 | | *dmaget += 4; |
| 4370 | | if ((method == 0) && (count == 1)) { |
| 4371 | | handle=space.read_dword(*dmaget); |
| 4372 | | handle=geforce_object_offset(handle); |
| 4373 | | #ifdef LOG_NV2A |
| 4374 | | logerror(" assign to subchannel %d object at %d\n",subch,handle); |
| 4375 | | #endif |
| 4376 | | channel[chanel][subchannel].object.objhandle=handle; |
| 4377 | | handle=ramin[handle/4]; |
| 4378 | | objclass=handle & 0xff; |
| 4379 | | channel[chanel][subchannel].object.objclass=objclass; |
| 4380 | | *dmaget += 4; |
| 4381 | | } else { |
| 4382 | | #ifdef LOG_NV2A |
| 4383 | | logerror(" subch. %d method %04x offset %04x count %d\n",subch,method,method*4,count); |
| 4384 | | #endif |
| 4385 | | while (count > 0) { |
| 4386 | | countlen=count; |
| 4387 | | geforce_exec_method(space,chanel,subchannel,method,*dmaget,countlen); |
| 4388 | | *dmaget += 4*(count-countlen); |
| 4389 | | count=countlen; |
| 4390 | | } |
| 4391 | | } |
| 4392 | | break; |
| 4393 | | default: |
| 4394 | | logerror(" unimplemented command %08X\n",cmd); |
| 4395 | | } |
| 4396 | | } |
| 4397 | | } |
| 4398 | | } else ; |
| 4399 | | // logerror("NV_2A: write at %08X mask %08X value %08X\n",0xfd000000+offset*4,mem_mask,data); |
| 984 | nvidia_nv2a->geforce_w(space, offset, data, mem_mask); |
| 4400 | 985 | } |
| 4401 | 986 | |
| 4402 | | READ32_MEMBER( chihiro_state::geforce_r ) |
| 4403 | | { |
| 4404 | | return nvidia_nv2a->geforce_r(space,offset,mem_mask); |
| 4405 | | } |
| 4406 | | |
| 4407 | | WRITE32_MEMBER( chihiro_state::geforce_w ) |
| 4408 | | { |
| 4409 | | nvidia_nv2a->geforce_w(space,offset,data,mem_mask); |
| 4410 | | } |
| 4411 | | |
| 4412 | 987 | static UINT32 geforce_pci_r(device_t *busdevice, device_t *device, int function, int reg, UINT32 mem_mask) |
| 4413 | 988 | { |
| 4414 | 989 | #ifdef LOG_PCI |
| 4415 | | // logerror(" bus:1 device:NV_2A function:%d register:%d mask:%08X\n",function,reg,mem_mask); |
| 990 | // logerror(" bus:1 device:NV_2A function:%d register:%d mask:%08X\n",function,reg,mem_mask); |
| 4416 | 991 | #endif |
| 4417 | 992 | return 0; |
| 4418 | 993 | } |
| r242231 | r242232 | |
| 4420 | 995 | static void geforce_pci_w(device_t *busdevice, device_t *device, int function, int reg, UINT32 data, UINT32 mem_mask) |
| 4421 | 996 | { |
| 4422 | 997 | #ifdef LOG_PCI |
| 4423 | | // logerror(" bus:1 device:NV_2A function:%d register:%d data:%08X mask:%08X\n",function,reg,data,mem_mask); |
| 998 | // logerror(" bus:1 device:NV_2A function:%d register:%d data:%08X mask:%08X\n",function,reg,data,mem_mask); |
| 4424 | 999 | #endif |
| 4425 | 1000 | } |
| 4426 | 1001 | |
| r242231 | r242232 | |
| 4429 | 1004 | */ |
| 4430 | 1005 | |
| 4431 | 1006 | #ifdef LOG_OHCI |
| 4432 | | static const char *const usbregnames[]={ |
| 1007 | static const char *const usbregnames[] = { |
| 4433 | 1008 | "HcRevision", |
| 4434 | 1009 | "HcControl", |
| 4435 | 1010 | "HcCommandStatus", |
| r242231 | r242232 | |
| 4455 | 1030 | }; |
| 4456 | 1031 | #endif |
| 4457 | 1032 | |
| 4458 | | READ32_MEMBER( chihiro_state::usbctrl_r ) |
| 1033 | READ32_MEMBER(chihiro_state::usbctrl_r) |
| 4459 | 1034 | { |
| 4460 | 1035 | if (offset == 0) { /* hack needed until usb (and jvs) is implemented */ |
| 4461 | 1036 | if (usbhack_counter == 0) { |
| 4462 | | m_maincpu->space(0).write_byte(0x6a79f,0x01); |
| 4463 | | m_maincpu->space(0).write_byte(0x6a7a0,0x00); |
| 4464 | | m_maincpu->space(0).write_byte(0x6b575,0x00); |
| 4465 | | m_maincpu->space(0).write_byte(0x6b576,0x00); |
| 4466 | | m_maincpu->space(0).write_byte(0x6b5af,0x75); |
| 4467 | | m_maincpu->space(0).write_byte(0x6b78a,0x75); |
| 4468 | | m_maincpu->space(0).write_byte(0x6b7ca,0x00); |
| 4469 | | m_maincpu->space(0).write_byte(0x6b7b8,0x00); |
| 4470 | | m_maincpu->space(0).write_byte(0x8f5b2,0x75); |
| 4471 | | m_maincpu->space(0).write_byte(0x79a9e,0x74); |
| 4472 | | m_maincpu->space(0).write_byte(0x79b80,0x74); |
| 4473 | | m_maincpu->space(0).write_byte(0x79b97,0x74); |
| 1037 | m_maincpu->space(0).write_byte(0x6a79f, 0x01); |
| 1038 | m_maincpu->space(0).write_byte(0x6a7a0, 0x00); |
| 1039 | m_maincpu->space(0).write_byte(0x6b575, 0x00); |
| 1040 | m_maincpu->space(0).write_byte(0x6b576, 0x00); |
| 1041 | m_maincpu->space(0).write_byte(0x6b5af, 0x75); |
| 1042 | m_maincpu->space(0).write_byte(0x6b78a, 0x75); |
| 1043 | m_maincpu->space(0).write_byte(0x6b7ca, 0x00); |
| 1044 | m_maincpu->space(0).write_byte(0x6b7b8, 0x00); |
| 1045 | m_maincpu->space(0).write_byte(0x8f5b2, 0x75); |
| 1046 | m_maincpu->space(0).write_byte(0x79a9e, 0x74); |
| 1047 | m_maincpu->space(0).write_byte(0x79b80, 0x74); |
| 1048 | m_maincpu->space(0).write_byte(0x79b97, 0x74); |
| 4474 | 1049 | } |
| 4475 | 1050 | // after game loaded |
| 4476 | 1051 | if (usbhack_counter == 1) { |
| 4477 | | m_maincpu->space(0).write_byte(0x12e4cf,0x01); |
| 4478 | | m_maincpu->space(0).write_byte(0x12e4d0,0x00); |
| 4479 | | m_maincpu->space(0).write_byte(0x4793e,0x01); |
| 4480 | | m_maincpu->space(0).write_byte(0x4793f,0x00); |
| 4481 | | m_maincpu->space(0).write_byte(0x47aa3,0x01); |
| 4482 | | m_maincpu->space(0).write_byte(0x47aa4,0x00); |
| 4483 | | m_maincpu->space(0).write_byte(0x14f2b6,0x84); |
| 4484 | | m_maincpu->space(0).write_byte(0x14f2d1,0x75); |
| 4485 | | m_maincpu->space(0).write_byte(0x8732f,0x7d); |
| 4486 | | m_maincpu->space(0).write_byte(0x87384,0x7d); |
| 4487 | | m_maincpu->space(0).write_byte(0x87388,0xeb); |
| 1052 | m_maincpu->space(0).write_byte(0x12e4cf, 0x01); |
| 1053 | m_maincpu->space(0).write_byte(0x12e4d0, 0x00); |
| 1054 | m_maincpu->space(0).write_byte(0x4793e, 0x01); |
| 1055 | m_maincpu->space(0).write_byte(0x4793f, 0x00); |
| 1056 | m_maincpu->space(0).write_byte(0x47aa3, 0x01); |
| 1057 | m_maincpu->space(0).write_byte(0x47aa4, 0x00); |
| 1058 | m_maincpu->space(0).write_byte(0x14f2b6, 0x84); |
| 1059 | m_maincpu->space(0).write_byte(0x14f2d1, 0x75); |
| 1060 | m_maincpu->space(0).write_byte(0x8732f, 0x7d); |
| 1061 | m_maincpu->space(0).write_byte(0x87384, 0x7d); |
| 1062 | m_maincpu->space(0).write_byte(0x87388, 0xeb); |
| 4488 | 1063 | } |
| 4489 | 1064 | usbhack_counter++; |
| 4490 | 1065 | } |
| 4491 | 1066 | #ifdef LOG_OHCI |
| 4492 | | if (offset >= 0x54/4) |
| 4493 | | logerror("usb controller 0 register HcRhPortStatus[%d] read\n",(offset-0x54/4)+1); |
| 1067 | if (offset >= 0x54 / 4) |
| 1068 | logerror("usb controller 0 register HcRhPortStatus[%d] read\n", (offset - 0x54 / 4) + 1); |
| 4494 | 1069 | else |
| 4495 | | logerror("usb controller 0 register %s read\n",usbregnames[offset]); |
| 1070 | logerror("usb controller 0 register %s read\n", usbregnames[offset]); |
| 4496 | 1071 | #endif |
| 4497 | 1072 | return 0; |
| 4498 | 1073 | } |
| 4499 | 1074 | |
| 4500 | | WRITE32_MEMBER( chihiro_state::usbctrl_w ) |
| 1075 | WRITE32_MEMBER(chihiro_state::usbctrl_w) |
| 4501 | 1076 | { |
| 4502 | 1077 | #ifdef LOG_OHCI |
| 4503 | | if (offset >= 0x54/4) |
| 4504 | | logerror("usb controller 0 register HcRhPortStatus[%d] write %08X\n",(offset-0x54/4)+1,data); |
| 1078 | if (offset >= 0x54 / 4) |
| 1079 | logerror("usb controller 0 register HcRhPortStatus[%d] write %08X\n", (offset - 0x54 / 4) + 1, data); |
| 4505 | 1080 | else |
| 4506 | | logerror("usb controller 0 register %s write %08X\n",usbregnames[offset],data); |
| 1081 | logerror("usb controller 0 register %s write %08X\n", usbregnames[offset], data); |
| 4507 | 1082 | #endif |
| 4508 | 1083 | } |
| 4509 | 1084 | |
| r242231 | r242232 | |
| 4511 | 1086 | * Audio |
| 4512 | 1087 | */ |
| 4513 | 1088 | |
| 4514 | | READ32_MEMBER( chihiro_state::audio_apu_r ) |
| 1089 | READ32_MEMBER(chihiro_state::audio_apu_r) |
| 4515 | 1090 | { |
| 4516 | | logerror("Audio_APU: read from %08X mask %08X\n",0xfe800000+offset*4,mem_mask); |
| 4517 | | if (offset == 0x20010/4) // some kind of internal counter or state value |
| 4518 | | return 0x20+4+8+0x48+0x80; |
| 1091 | logerror("Audio_APU: read from %08X mask %08X\n", 0xfe800000 + offset * 4, mem_mask); |
| 1092 | if (offset == 0x20010 / 4) // some kind of internal counter or state value |
| 1093 | return 0x20 + 4 + 8 + 0x48 + 0x80; |
| 4519 | 1094 | return apust.memory[offset]; |
| 4520 | 1095 | } |
| 4521 | 1096 | |
| 4522 | | WRITE32_MEMBER( chihiro_state::audio_apu_w ) |
| 1097 | WRITE32_MEMBER(chihiro_state::audio_apu_w) |
| 4523 | 1098 | { |
| 4524 | 1099 | //UINT32 old; |
| 4525 | 1100 | UINT32 v; |
| 4526 | 1101 | |
| 4527 | | logerror("Audio_APU: write at %08X mask %08X value %08X\n",0xfe800000+offset*4,mem_mask,data); |
| 1102 | logerror("Audio_APU: write at %08X mask %08X value %08X\n", 0xfe800000 + offset * 4, mem_mask, data); |
| 4528 | 1103 | //old = apust.memory[offset]; |
| 4529 | 1104 | apust.memory[offset] = data; |
| 4530 | | if (offset == 0x02040/4) // address of memory area with scatter-gather info (gpdsp scratch dma) |
| 4531 | | apust.gpdsp_sgaddress=data; |
| 4532 | | if (offset == 0x020d4/4) { // block count (gpdsp) |
| 4533 | | apust.gpdsp_sgblocks=data; |
| 4534 | | apust.gpdsp_address=apust.space->read_dword(apust.gpdsp_sgaddress); // memory address of first block |
| 1105 | if (offset == 0x02040 / 4) // address of memory area with scatter-gather info (gpdsp scratch dma) |
| 1106 | apust.gpdsp_sgaddress = data; |
| 1107 | if (offset == 0x020d4 / 4) { // block count (gpdsp) |
| 1108 | apust.gpdsp_sgblocks = data; |
| 1109 | apust.gpdsp_address = apust.space->read_dword(apust.gpdsp_sgaddress); // memory address of first block |
| 4535 | 1110 | apust.timer->enable(); |
| 4536 | | apust.timer->adjust(attotime::from_msec(1),0,attotime::from_msec(1)); |
| 1111 | apust.timer->adjust(attotime::from_msec(1), 0, attotime::from_msec(1)); |
| 4537 | 1112 | } |
| 4538 | 1113 | if (offset == 0x02048 / 4) // (epdsp scratch dma) |
| 4539 | | apust.epdsp_sgaddress=data; |
| 1114 | apust.epdsp_sgaddress = data; |
| 4540 | 1115 | if (offset == 0x020dc / 4) // (epdsp) |
| 4541 | | apust.epdsp_sgblocks=data; |
| 1116 | apust.epdsp_sgblocks = data; |
| 4542 | 1117 | if (offset == 0x0204c / 4) // address of memory area with information about blocks |
| 4543 | 1118 | apust.unknown_sgaddress = data; |
| 4544 | 1119 | if (offset == 0x020e0 / 4) // block count - 1 |
| r242231 | r242232 | |
| 4574 | 1149 | return; |
| 4575 | 1150 | if (offset == 0x20304 / 4) { // format |
| 4576 | 1151 | /* |
| 4577 | | bits 28-31 sample format: |
| 4578 | | 0 8-bit pcm |
| 4579 | | 5 16-bit pcm |
| 4580 | | 10 adpcm ? |
| 4581 | | 14 24-bit pcm |
| 4582 | | 15 32-bit pcm |
| 4583 | | bits 16-20 number of channels - 1: |
| 4584 | | 0 mono |
| 4585 | | 1 stereo |
| 1152 | bits 28-31 sample format: |
| 1153 | 0 8-bit pcm |
| 1154 | 5 16-bit pcm |
| 1155 | 10 adpcm ? |
| 1156 | 14 24-bit pcm |
| 1157 | 15 32-bit pcm |
| 1158 | bits 16-20 number of channels - 1: |
| 1159 | 0 mono |
| 1160 | 1 stereo |
| 4586 | 1161 | */ |
| 4587 | 1162 | return; |
| 4588 | 1163 | } |
| r242231 | r242232 | |
| 4597 | 1172 | if (offset == 0x203a0 / 4) // start offset of data in scatter-gather heap |
| 4598 | 1173 | return; |
| 4599 | 1174 | if (offset == 0x203a4 / 4) { // first sample to play |
| 4600 | | apust.voices_position_start[apust.voice_number] = data*1000; |
| 1175 | apust.voices_position_start[apust.voice_number] = data * 1000; |
| 4601 | 1176 | return; |
| 4602 | 1177 | } |
| 4603 | 1178 | if (offset == 0x203dc / 4) { // last sample to play |
| 4604 | | apust.voices_position_end[apust.voice_number] = data*1000; |
| 1179 | apust.voices_position_end[apust.voice_number] = data * 1000; |
| 4605 | 1180 | return; |
| 4606 | 1181 | } |
| 4607 | 1182 | if (offset == 0x2010c / 4) // voice processor 0 idle 1 not idle ? |
| r242231 | r242232 | |
| 4626 | 1201 | return; |
| 4627 | 1202 | } |
| 4628 | 1203 | |
| 4629 | | READ32_MEMBER( chihiro_state::audio_ac93_r ) |
| 1204 | READ32_MEMBER(chihiro_state::audio_ac93_r) |
| 4630 | 1205 | { |
| 4631 | | UINT32 ret=0; |
| 1206 | UINT32 ret = 0; |
| 4632 | 1207 | |
| 4633 | | logerror("Audio_AC3: read from %08X mask %08X\n",0xfec00000+offset*4,mem_mask); |
| 4634 | | if (offset < 0x80/4) |
| 1208 | logerror("Audio_AC3: read from %08X mask %08X\n", 0xfec00000 + offset * 4, mem_mask); |
| 1209 | if (offset < 0x80 / 4) |
| 4635 | 1210 | { |
| 4636 | | ret=ac97st.mixer_regs[offset]; |
| 1211 | ret = ac97st.mixer_regs[offset]; |
| 4637 | 1212 | } |
| 4638 | | if ((offset >= 0x100/4) && (offset <= 0x138/4)) |
| 1213 | if ((offset >= 0x100 / 4) && (offset <= 0x138 / 4)) |
| 4639 | 1214 | { |
| 4640 | | offset=offset-0x100/4; |
| 4641 | | if (offset == 0x18/4) |
| 1215 | offset = offset - 0x100 / 4; |
| 1216 | if (offset == 0x18 / 4) |
| 4642 | 1217 | { |
| 4643 | 1218 | ac97st.controller_regs[offset] &= ~0x02000000; // REGRST: register reset |
| 4644 | 1219 | } |
| 4645 | | if (offset == 0x30/4) |
| 1220 | if (offset == 0x30 / 4) |
| 4646 | 1221 | { |
| 4647 | 1222 | ac97st.controller_regs[offset] |= 0x100; // PCRDY: primary codec ready |
| 4648 | 1223 | } |
| 4649 | | if (offset == 0x34/4) |
| 1224 | if (offset == 0x34 / 4) |
| 4650 | 1225 | { |
| 4651 | 1226 | ac97st.controller_regs[offset] &= ~1; // CAS: codec access semaphore |
| 4652 | 1227 | } |
| 4653 | | ret=ac97st.controller_regs[offset]; |
| 1228 | ret = ac97st.controller_regs[offset]; |
| 4654 | 1229 | } |
| 4655 | 1230 | return ret; |
| 4656 | 1231 | } |
| 4657 | 1232 | |
| 4658 | | WRITE32_MEMBER( chihiro_state::audio_ac93_w ) |
| 1233 | WRITE32_MEMBER(chihiro_state::audio_ac93_w) |
| 4659 | 1234 | { |
| 4660 | | logerror("Audio_AC3: write at %08X mask %08X value %08X\n",0xfec00000+offset*4,mem_mask,data); |
| 4661 | | if (offset < 0x80/4) |
| 1235 | logerror("Audio_AC3: write at %08X mask %08X value %08X\n", 0xfec00000 + offset * 4, mem_mask, data); |
| 1236 | if (offset < 0x80 / 4) |
| 4662 | 1237 | { |
| 4663 | | COMBINE_DATA(ac97st.mixer_regs+offset); |
| 1238 | COMBINE_DATA(ac97st.mixer_regs + offset); |
| 4664 | 1239 | } |
| 4665 | | if ((offset >= 0x100/4) && (offset <= 0x138/4)) |
| 1240 | if ((offset >= 0x100 / 4) && (offset <= 0x138 / 4)) |
| 4666 | 1241 | { |
| 4667 | | offset=offset-0x100/4; |
| 4668 | | COMBINE_DATA(ac97st.controller_regs+offset); |
| 1242 | offset = offset - 0x100 / 4; |
| 1243 | COMBINE_DATA(ac97st.controller_regs + offset); |
| 4669 | 1244 | } |
| 4670 | 1245 | } |
| 4671 | 1246 | |
| r242231 | r242232 | |
| 4676 | 1251 | UINT64 bv; |
| 4677 | 1252 | UINT32 phys; |
| 4678 | 1253 | |
| 4679 | | cmd=apust.space->read_dword(apust.gpdsp_address+0x800+0x10); |
| 1254 | cmd = apust.space->read_dword(apust.gpdsp_address + 0x800 + 0x10); |
| 4680 | 1255 | if (cmd == 3) |
| 4681 | | apust.space->write_dword(apust.gpdsp_address+0x800+0x10,0); |
| 1256 | apust.space->write_dword(apust.gpdsp_address + 0x800 + 0x10, 0); |
| 4682 | 1257 | /*else |
| 4683 | | logerror("Audio_APU: unexpected value at address %d\n",apust.gpdsp_address+0x800+0x10);*/ |
| 1258 | logerror("Audio_APU: unexpected value at address %d\n",apust.gpdsp_address+0x800+0x10);*/ |
| 4684 | 1259 | for (b = 0; b < 4; b++) { |
| 4685 | 1260 | bv = 1; |
| 4686 | 1261 | for (bb = 0; bb < 64; bb++) { |
| r242231 | r242232 | |
| 4704 | 1279 | static UINT32 dummy_pci_r(device_t *busdevice, device_t *device, int function, int reg, UINT32 mem_mask) |
| 4705 | 1280 | { |
| 4706 | 1281 | #ifdef LOG_PCI |
| 4707 | | // logerror(" bus:0 function:%d register:%d mask:%08X\n",function,reg,mem_mask); |
| 1282 | // logerror(" bus:0 function:%d register:%d mask:%08X\n",function,reg,mem_mask); |
| 4708 | 1283 | #endif |
| 4709 | 1284 | return 0; |
| 4710 | 1285 | } |
| r242231 | r242232 | |
| 4712 | 1287 | static void dummy_pci_w(device_t *busdevice, device_t *device, int function, int reg, UINT32 data, UINT32 mem_mask) |
| 4713 | 1288 | { |
| 4714 | 1289 | #ifdef LOG_PCI |
| 4715 | | if (reg >= 16) logerror(" bus:0 function:%d register:%d data:%08X mask:%08X\n",function,reg,data,mem_mask); |
| 1290 | if (reg >= 16) logerror(" bus:0 function:%d register:%d data:%08X mask:%08X\n", function, reg, data, mem_mask); |
| 4716 | 1291 | #endif |
| 4717 | 1292 | } |
| 4718 | 1293 | |
| 4719 | | READ32_MEMBER( chihiro_state::dummy_r ) |
| 1294 | READ32_MEMBER(chihiro_state::dummy_r) |
| 4720 | 1295 | { |
| 4721 | 1296 | return 0; |
| 4722 | 1297 | } |
| 4723 | 1298 | |
| 4724 | | WRITE32_MEMBER( chihiro_state::dummy_w ) |
| 1299 | WRITE32_MEMBER(chihiro_state::dummy_w) |
| 4725 | 1300 | { |
| 4726 | 1301 | } |
| 4727 | 1302 | |
| r242231 | r242232 | |
| 4767 | 1342 | void ide_baseboard_device::device_start() |
| 4768 | 1343 | { |
| 4769 | 1344 | ata_mass_storage_device::device_start(); |
| 4770 | | chihirosystem=machine().driver_data<chihiro_state>(); |
| 1345 | chihirosystem = machine().driver_data<chihiro_state>(); |
| 4771 | 1346 | // savestates |
| 4772 | 1347 | save_item(NAME(read_buffer)); |
| 4773 | 1348 | save_item(NAME(write_buffer)); |
| r242231 | r242232 | |
| 4781 | 1356 | { |
| 4782 | 1357 | if (!m_can_identify_device) |
| 4783 | 1358 | { |
| 4784 | | m_num_cylinders=65535; |
| 4785 | | m_num_sectors=255; |
| 4786 | | m_num_heads=255; |
| 1359 | m_num_cylinders = 65535; |
| 1360 | m_num_sectors = 255; |
| 1361 | m_num_heads = 255; |
| 4787 | 1362 | ide_build_identify_device(); |
| 4788 | 1363 | m_can_identify_device = 1; |
| 4789 | 1364 | } |
| r242231 | r242232 | |
| 4798 | 1373 | |
| 4799 | 1374 | /* |
| 4800 | 1375 | It assumes there are 4 "partitions", the size of the first one depends on bits 3-0 of io port 40f4: |
| 4801 | | Value Size lba |
| 4802 | | 0 0x40000-0x8000 |
| 4803 | | ... |
| 4804 | | 4 0x400000-0x8000 |
| 1376 | Value Size lba |
| 1377 | 0 0x40000-0x8000 |
| 1378 | ... |
| 1379 | 4 0x400000-0x8000 |
| 4805 | 1380 | The size of the second one is always 0x8000 sectors, and is used as a special communication area |
| 4806 | 1381 | This is a list of the partitions in the minimum size case: |
| 4807 | | Name Start lba Size lba Size |
| 4808 | | \??\mbfs: 0x0 0x38000 112MB |
| 4809 | | \??\mbcom: 0x38000 0x8000 16MB |
| 4810 | | \??\mbrom0: 0x8000000 0x800 1MB |
| 4811 | | \??\mbrom1: 0x8000800 0x800 1MB |
| 1382 | Name Start lba Size lba Size |
| 1383 | \??\mbfs: 0x0 0x38000 112MB |
| 1384 | \??\mbcom: 0x38000 0x8000 16MB |
| 1385 | \??\mbrom0: 0x8000000 0x800 1MB |
| 1386 | \??\mbrom1: 0x8000800 0x800 1MB |
| 4812 | 1387 | This is a list of the partitions in the maximum size case: |
| 4813 | | Name Start lba Size lba Size |
| 4814 | | \??\mbfs: 0x0 0x3f8000 2032MB |
| 4815 | | \??\mbcom: 0x3f8000 0x8000 16MB |
| 4816 | | \??\mbrom0: 0x8000000 0x800 1MB |
| 4817 | | \??\mbrom1: 0x8000800 0x800 1MB |
| 1388 | Name Start lba Size lba Size |
| 1389 | \??\mbfs: 0x0 0x3f8000 2032MB |
| 1390 | \??\mbcom: 0x3f8000 0x8000 16MB |
| 1391 | \??\mbrom0: 0x8000000 0x800 1MB |
| 1392 | \??\mbrom1: 0x8000800 0x800 1MB |
| 4818 | 1393 | */ |
| 4819 | | logerror("baseboard: read sector lba %08x\n",lba); |
| 1394 | logerror("baseboard: read sector lba %08x\n", lba); |
| 4820 | 1395 | if (lba >= 0x08000000) { |
| 4821 | | off=(lba&0x7ff)*512; |
| 4822 | | data=memregion(":others")->base(); |
| 4823 | | memcpy(buffer,data+off,512); |
| 1396 | off = (lba & 0x7ff) * 512; |
| 1397 | data = memregion(":others")->base(); |
| 1398 | memcpy(buffer, data + off, 512); |
| 4824 | 1399 | return 1; |
| 4825 | 1400 | } |
| 4826 | 1401 | if (lba >= 0xf8000) { |
| 4827 | | memset(buffer,0,512); |
| 4828 | | lba=lba-0xf8000; |
| 1402 | memset(buffer, 0, 512); |
| 1403 | lba = lba - 0xf8000; |
| 4829 | 1404 | if (lba == 0x4800) |
| 4830 | | memcpy(buffer,read_buffer,0x20); |
| 1405 | memcpy(buffer, read_buffer, 0x20); |
| 4831 | 1406 | else if (lba == 0x4801) |
| 4832 | | memcpy(buffer,write_buffer,0x20); |
| 1407 | memcpy(buffer, write_buffer, 0x20); |
| 4833 | 1408 | return 1; |
| 4834 | 1409 | } |
| 4835 | 1410 | // in a type 1 chihiro this gets data from the dimm board memory |
| 4836 | | data=chihirosystem->baseboard_ide_dimmboard(lba); |
| 1411 | data = chihirosystem->baseboard_ide_dimmboard(lba); |
| 4837 | 1412 | if (data != NULL) |
| 4838 | | memcpy(buffer,data,512); |
| 1413 | memcpy(buffer, data, 512); |
| 4839 | 1414 | return 1; |
| 4840 | 1415 | } |
| 4841 | 1416 | |
| 4842 | 1417 | int ide_baseboard_device::write_sector(UINT32 lba, const void *buffer) |
| 4843 | 1418 | { |
| 4844 | | logerror("baseboard: write sector lba %08x\n",lba); |
| 1419 | logerror("baseboard: write sector lba %08x\n", lba); |
| 4845 | 1420 | if (lba >= 0xf8000) { |
| 4846 | | lba=lba-0xf8000; |
| 1421 | lba = lba - 0xf8000; |
| 4847 | 1422 | if (lba == 0x4800) |
| 4848 | | memcpy(read_buffer,buffer,0x20); |
| 1423 | memcpy(read_buffer, buffer, 0x20); |
| 4849 | 1424 | else if (lba == 0x4801) { |
| 4850 | | memcpy(write_buffer,buffer,0x20); |
| 1425 | memcpy(write_buffer, buffer, 0x20); |
| 4851 | 1426 | // call chihiro driver |
| 4852 | | chihirosystem->baseboard_ide_event(3,read_buffer,write_buffer); |
| 1427 | chihirosystem->baseboard_ide_event(3, read_buffer, write_buffer); |
| 4853 | 1428 | } |
| 4854 | 1429 | } |
| 4855 | 1430 | return 1; |
| r242231 | r242232 | |
| 4859 | 1434 | * Chihiro Type 1 baseboard |
| 4860 | 1435 | */ |
| 4861 | 1436 | |
| 4862 | | void chihiro_state::dword_write_le(UINT8 *addr,UINT32 d) |
| 1437 | void chihiro_state::dword_write_le(UINT8 *addr, UINT32 d) |
| 4863 | 1438 | { |
| 4864 | | addr[0]=d & 255; |
| 4865 | | addr[1]=(d >> 8) & 255; |
| 4866 | | addr[2]=(d >> 16) & 255; |
| 4867 | | addr[3]=(d >> 24) & 255; |
| 1439 | addr[0] = d & 255; |
| 1440 | addr[1] = (d >> 8) & 255; |
| 1441 | addr[2] = (d >> 16) & 255; |
| 1442 | addr[3] = (d >> 24) & 255; |
| 4868 | 1443 | } |
| 4869 | 1444 | |
| 4870 | | void chihiro_state::word_write_le(UINT8 *addr,UINT16 d) |
| 1445 | void chihiro_state::word_write_le(UINT8 *addr, UINT16 d) |
| 4871 | 1446 | { |
| 4872 | | addr[0]=d & 255; |
| 4873 | | addr[1]=(d >> 8) & 255; |
| 1447 | addr[0] = d & 255; |
| 1448 | addr[1] = (d >> 8) & 255; |
| 4874 | 1449 | } |
| 4875 | 1450 | |
| 4876 | | void chihiro_state::baseboard_ide_event(int type,UINT8 *read_buffer,UINT8 *write_buffer) |
| 1451 | void chihiro_state::baseboard_ide_event(int type, UINT8 *read_buffer, UINT8 *write_buffer) |
| 4877 | 1452 | { |
| 4878 | 1453 | int c; |
| 4879 | 1454 | |
| r242231 | r242232 | |
| 4881 | 1456 | return; |
| 4882 | 1457 | #ifdef LOG_BASEBOARD |
| 4883 | 1458 | logerror("Baseboard sector command:\n"); |
| 4884 | | for (int a=0;a < 32;a++) |
| 4885 | | logerror(" %02X",write_buffer[a]); |
| 1459 | for (int a = 0; a < 32; a++) |
| 1460 | logerror(" %02X", write_buffer[a]); |
| 4886 | 1461 | logerror("\n"); |
| 4887 | 1462 | #endif |
| 4888 | 1463 | // response |
| 4889 | 1464 | // second word 8001 (8000+counter), first word=first word of written data (command ?), second dword ? |
| 4890 | | read_buffer[0]=write_buffer[0]; |
| 4891 | | read_buffer[1]=write_buffer[1]; |
| 4892 | | read_buffer[2]=0x01; // write_buffer[2]; |
| 4893 | | read_buffer[3]=0x80; // write_buffer[3] | 0x80; |
| 4894 | | c=write_buffer[2]+(write_buffer[3] << 8); // 0001 0101 0103 |
| 1465 | read_buffer[0] = write_buffer[0]; |
| 1466 | read_buffer[1] = write_buffer[1]; |
| 1467 | read_buffer[2] = 0x01; // write_buffer[2]; |
| 1468 | read_buffer[3] = 0x80; // write_buffer[3] | 0x80; |
| 1469 | c = write_buffer[2] + (write_buffer[3] << 8); // 0001 0101 0103 |
| 4895 | 1470 | switch (c) |
| 4896 | 1471 | { |
| 4897 | | case 0x0001: |
| 4898 | | // second dword |
| 4899 | | dword_write_le(read_buffer+4,0x00f00000); // ? |
| 4900 | | break; |
| 4901 | | case 0x0100: |
| 4902 | | // second dword third dword |
| 4903 | | dword_write_le(read_buffer+4,5); // game data loading phase |
| 4904 | | dword_write_le(read_buffer+8,0); // completion % |
| 4905 | | break; |
| 4906 | | case 0x0101: |
| 4907 | | // third word fourth word |
| 4908 | | word_write_le(read_buffer+4,0xca); // ? |
| 4909 | | word_write_le(read_buffer+6,0xcb); // ? |
| 4910 | | break; |
| 4911 | | case 0x0102: |
| 4912 | | // second dword |
| 4913 | | dword_write_le(read_buffer+4,0); // bit 16 develop. mode |
| 4914 | | break; |
| 4915 | | case 0x0103: |
| 4916 | | // dwords 1 3 4 |
| 4917 | | memcpy(read_buffer+4,"-abc-abc12345678",16); // ? |
| 4918 | | break; |
| 1472 | case 0x0001: |
| 1473 | // second dword |
| 1474 | dword_write_le(read_buffer + 4, 0x00f00000); // ? |
| 1475 | break; |
| 1476 | case 0x0100: |
| 1477 | // second dword third dword |
| 1478 | dword_write_le(read_buffer + 4, 5); // game data loading phase |
| 1479 | dword_write_le(read_buffer + 8, 0); // completion % |
| 1480 | break; |
| 1481 | case 0x0101: |
| 1482 | // third word fourth word |
| 1483 | word_write_le(read_buffer + 4, 0xca); // ? |
| 1484 | word_write_le(read_buffer + 6, 0xcb); // ? |
| 1485 | break; |
| 1486 | case 0x0102: |
| 1487 | // second dword |
| 1488 | dword_write_le(read_buffer + 4, 0); // bit 16 develop. mode |
| 1489 | break; |
| 1490 | case 0x0103: |
| 1491 | // dwords 1 3 4 |
| 1492 | memcpy(read_buffer + 4, "-abc-abc12345678", 16); // ? |
| 1493 | break; |
| 4919 | 1494 | } |
| 4920 | 1495 | // clear |
| 4921 | | write_buffer[0]=write_buffer[1]=write_buffer[2]=write_buffer[3]=0; |
| 1496 | write_buffer[0] = write_buffer[1] = write_buffer[2] = write_buffer[3] = 0; |
| 4922 | 1497 | // irq 10 active |
| 4923 | 1498 | chihiro_devs.pic8259_2->ir2_w(1); |
| 4924 | 1499 | } |
| r242231 | r242232 | |
| 4927 | 1502 | { |
| 4928 | 1503 | // return pointer to memory containing decrypted gdrom data (contains an image of a fatx partition) |
| 4929 | 1504 | if (chihiro_devs.dimmboard != NULL) |
| 4930 | | return dimm_board_memory+lba*512; |
| 1505 | return dimm_board_memory + lba * 512; |
| 4931 | 1506 | return NULL; |
| 4932 | 1507 | } |
| 4933 | 1508 | |
| r242231 | r242232 | |
| 4942 | 1517 | |
| 4943 | 1518 | READ8_MEMBER(chihiro_state::get_slave_ack) |
| 4944 | 1519 | { |
| 4945 | | if (offset==2) { // IRQ = 2 |
| 1520 | if (offset == 2) { // IRQ = 2 |
| 4946 | 1521 | return chihiro_devs.pic8259_2->acknowledge(); |
| 4947 | 1522 | } |
| 4948 | 1523 | return 0x00; |
| r242231 | r242232 | |
| 4952 | 1527 | { |
| 4953 | 1528 | int r = 0; |
| 4954 | 1529 | r = chihiro_devs.pic8259_2->acknowledge(); |
| 4955 | | if (r==0) |
| 1530 | if (r == 0) |
| 4956 | 1531 | { |
| 4957 | 1532 | r = chihiro_devs.pic8259_1->acknowledge(); |
| 4958 | 1533 | } |
| 4959 | 1534 | if (debug_irq_active) |
| 4960 | | debug_generate_irq(debug_irq_number,false); |
| 1535 | debug_generate_irq(debug_irq_number, false); |
| 4961 | 1536 | return r; |
| 4962 | 1537 | } |
| 4963 | 1538 | |
| 4964 | 1539 | WRITE_LINE_MEMBER(chihiro_state::chihiro_pit8254_out0_changed) |
| 4965 | 1540 | { |
| 4966 | | if ( chihiro_devs.pic8259_1 ) |
| 1541 | if (chihiro_devs.pic8259_1) |
| 4967 | 1542 | { |
| 4968 | 1543 | chihiro_devs.pic8259_1->ir0_w(state); |
| 4969 | 1544 | } |
| r242231 | r242232 | |
| 4978 | 1553 | * SMbus devices |
| 4979 | 1554 | */ |
| 4980 | 1555 | |
| 4981 | | int smbus_callback_pic16lc(chihiro_state &chs,int command,int rw,int data) |
| 1556 | int smbus_callback_pic16lc(chihiro_state &chs, int command, int rw, int data) |
| 4982 | 1557 | { |
| 4983 | 1558 | return chs.smbus_pic16lc(command, rw, data); |
| 4984 | 1559 | } |
| 4985 | 1560 | |
| 4986 | | int chihiro_state::smbus_pic16lc(int command,int rw,int data) |
| 1561 | int chihiro_state::smbus_pic16lc(int command, int rw, int data) |
| 4987 | 1562 | { |
| 4988 | 1563 | if (rw == 1) { // read |
| 4989 | 1564 | if (command == 0) { |
| 4990 | 1565 | if (pic16lc_buffer[0] == 'D') |
| 4991 | | pic16lc_buffer[0]='X'; |
| 1566 | pic16lc_buffer[0] = 'X'; |
| 4992 | 1567 | else if (pic16lc_buffer[0] == 'X') |
| 4993 | | pic16lc_buffer[0]='B'; |
| 1568 | pic16lc_buffer[0] = 'B'; |
| 4994 | 1569 | else if (pic16lc_buffer[0] == 'B') |
| 4995 | | pic16lc_buffer[0]='D'; |
| 1570 | pic16lc_buffer[0] = 'D'; |
| 4996 | 1571 | } |
| 4997 | | logerror("pic16lc: %d %d %d\n",command,rw,pic16lc_buffer[command]); |
| 1572 | logerror("pic16lc: %d %d %d\n", command, rw, pic16lc_buffer[command]); |
| 4998 | 1573 | return pic16lc_buffer[command]; |
| 4999 | | } else |
| 1574 | } |
| 1575 | else |
| 5000 | 1576 | if (command == 0) |
| 5001 | | pic16lc_buffer[0]='B'; |
| 1577 | pic16lc_buffer[0] = 'B'; |
| 5002 | 1578 | else |
| 5003 | | pic16lc_buffer[command]=(UINT8)data; |
| 5004 | | logerror("pic16lc: %d %d %d\n",command,rw,data); |
| 1579 | pic16lc_buffer[command] = (UINT8)data; |
| 1580 | logerror("pic16lc: %d %d %d\n", command, rw, data); |
| 5005 | 1581 | return 0; |
| 5006 | 1582 | } |
| 5007 | 1583 | |
| 5008 | | int smbus_callback_cx25871(chihiro_state &chs,int command,int rw,int data) |
| 1584 | int smbus_callback_cx25871(chihiro_state &chs, int command, int rw, int data) |
| 5009 | 1585 | { |
| 5010 | 1586 | return chs.smbus_cx25871(command, rw, data); |
| 5011 | 1587 | } |
| 5012 | 1588 | |
| 5013 | | int chihiro_state::smbus_cx25871(int command,int rw,int data) |
| 1589 | int chihiro_state::smbus_cx25871(int command, int rw, int data) |
| 5014 | 1590 | { |
| 5015 | | logerror("cx25871: %d %d %d\n",command,rw,data); |
| 1591 | logerror("cx25871: %d %d %d\n", command, rw, data); |
| 5016 | 1592 | return 0; |
| 5017 | 1593 | } |
| 5018 | 1594 | |
| r242231 | r242232 | |
| 5023 | 1599 | 0x4F,0x6E,0x6C,0x69,0x6E,0x65,0x6B,0x65,0x79,0x69,0x6E,0x76,0x61,0x6C,0x69,0x64,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, |
| 5024 | 1600 | 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; |
| 5025 | 1601 | |
| 5026 | | int smbus_callback_eeprom(chihiro_state &chs,int command,int rw,int data) |
| 1602 | int smbus_callback_eeprom(chihiro_state &chs, int command, int rw, int data) |
| 5027 | 1603 | { |
| 5028 | 1604 | return chs.smbus_eeprom(command, rw, data); |
| 5029 | 1605 | } |
| 5030 | 1606 | |
| 5031 | | int chihiro_state::smbus_eeprom(int command,int rw,int data) |
| 1607 | int chihiro_state::smbus_eeprom(int command, int rw, int data) |
| 5032 | 1608 | { |
| 5033 | 1609 | if (command >= 112) |
| 5034 | 1610 | return 0; |
| r242231 | r242232 | |
| 5037 | 1613 | // hack to avoid hanging if eeprom contents are not correct |
| 5038 | 1614 | // this would need dumping the serial eeprom on the xbox board |
| 5039 | 1615 | if (command == 0) { |
| 5040 | | m_maincpu->space(0).write_byte(0x3b744,0x90); |
| 5041 | | m_maincpu->space(0).write_byte(0x3b745,0x90); |
| 5042 | | m_maincpu->space(0).write_byte(0x3b766,0xc9); |
| 5043 | | m_maincpu->space(0).write_byte(0x3b767,0xc3); |
| 1616 | m_maincpu->space(0).write_byte(0x3b744, 0x90); |
| 1617 | m_maincpu->space(0).write_byte(0x3b745, 0x90); |
| 1618 | m_maincpu->space(0).write_byte(0x3b766, 0xc9); |
| 1619 | m_maincpu->space(0).write_byte(0x3b767, 0xc3); |
| 5044 | 1620 | } |
| 5045 | | data = dummyeeprom[command]+dummyeeprom[command+1]*256; |
| 5046 | | logerror("eeprom: %d %d %d\n",command,rw,data); |
| 1621 | data = dummyeeprom[command] + dummyeeprom[command + 1] * 256; |
| 1622 | logerror("eeprom: %d %d %d\n", command, rw, data); |
| 5047 | 1623 | return data; |
| 5048 | 1624 | } |
| 5049 | | logerror("eeprom: %d %d %d\n",command,rw,data); |
| 5050 | | dummyeeprom[command]=data; |
| 1625 | logerror("eeprom: %d %d %d\n", command, rw, data); |
| 1626 | dummyeeprom[command] = data; |
| 5051 | 1627 | return 0; |
| 5052 | 1628 | } |
| 5053 | 1629 | |
| r242231 | r242232 | |
| 5055 | 1631 | * SMbus controller |
| 5056 | 1632 | */ |
| 5057 | 1633 | |
| 5058 | | void chihiro_state::smbus_register_device(int address,int (*handler)(chihiro_state &chs,int command,int rw,int data)) |
| 1634 | void chihiro_state::smbus_register_device(int address, int(*handler)(chihiro_state &chs, int command, int rw, int data)) |
| 5059 | 1635 | { |
| 5060 | 1636 | if (address < 128) |
| 5061 | | smbusst.devices[address]=handler; |
| 1637 | smbusst.devices[address] = handler; |
| 5062 | 1638 | } |
| 5063 | 1639 | |
| 5064 | | READ32_MEMBER( chihiro_state::smbus_r ) |
| 1640 | READ32_MEMBER(chihiro_state::smbus_r) |
| 5065 | 1641 | { |
| 5066 | 1642 | if ((offset == 0) && (mem_mask == 0xff)) // 0 smbus status |
| 5067 | 1643 | smbusst.words[offset] = (smbusst.words[offset] & ~mem_mask) | ((smbusst.status << 0) & mem_mask); |
| r242231 | r242232 | |
| 5070 | 1646 | return smbusst.words[offset]; |
| 5071 | 1647 | } |
| 5072 | 1648 | |
| 5073 | | WRITE32_MEMBER( chihiro_state::smbus_w ) |
| 1649 | WRITE32_MEMBER(chihiro_state::smbus_w) |
| 5074 | 1650 | { |
| 5075 | 1651 | COMBINE_DATA(smbusst.words); |
| 5076 | 1652 | if ((offset == 0) && (mem_mask == 0xff)) // 0 smbus status |
| r242231 | r242232 | |
| 5081 | 1657 | } |
| 5082 | 1658 | if ((offset == 0) && (mem_mask == 0xff0000)) // 2 smbus control |
| 5083 | 1659 | { |
| 5084 | | data=data>>16; |
| 1660 | data = data >> 16; |
| 5085 | 1661 | smbusst.control = data; |
| 5086 | 1662 | int cycletype = smbusst.control & 7; |
| 5087 | 1663 | if (smbusst.control & 8) { // start |
| r242231 | r242232 | |
| 5089 | 1665 | { |
| 5090 | 1666 | if (smbusst.devices[smbusst.address]) |
| 5091 | 1667 | if (smbusst.rw == 0) |
| 5092 | | smbusst.devices[smbusst.address](*this,smbusst.command,smbusst.rw,smbusst.data); |
| 1668 | smbusst.devices[smbusst.address](*this, smbusst.command, smbusst.rw, smbusst.data); |
| 5093 | 1669 | else |
| 5094 | | smbusst.data=smbusst.devices[smbusst.address](*this,smbusst.command,smbusst.rw,smbusst.data); |
| 1670 | smbusst.data = smbusst.devices[smbusst.address](*this, smbusst.command, smbusst.rw, smbusst.data); |
| 5095 | 1671 | else |
| 5096 | | logerror("SMBUS: access to missing device at address %d\n",smbusst.address); |
| 1672 | logerror("SMBUS: access to missing device at address %d\n", smbusst.address); |
| 5097 | 1673 | smbusst.status |= 0x10; |
| 5098 | 1674 | if (smbusst.control & 0x10) |
| 5099 | 1675 | { |
| r242231 | r242232 | |
| 5109 | 1685 | } |
| 5110 | 1686 | if ((offset == 1) && ((mem_mask == 0x00ff0000) || (mem_mask == 0xffff0000))) // 6 smbus data |
| 5111 | 1687 | { |
| 5112 | | data=data>>16; |
| 1688 | data = data >> 16; |
| 5113 | 1689 | smbusst.data = data; |
| 5114 | 1690 | } |
| 5115 | 1691 | if ((offset == 2) && (mem_mask == 0xff)) // 8 smbus command |
| 5116 | 1692 | smbusst.command = data; |
| 5117 | 1693 | } |
| 5118 | 1694 | |
| 5119 | | READ32_MEMBER( chihiro_state::mediaboard_r ) |
| 1695 | READ32_MEMBER(chihiro_state::mediaboard_r) |
| 5120 | 1696 | { |
| 5121 | 1697 | UINT32 r; |
| 5122 | 1698 | |
| 5123 | | logerror("I/O port read %04x mask %08X\n",offset*4+0x4000,mem_mask); |
| 5124 | | r=0; |
| 1699 | logerror("I/O port read %04x mask %08X\n", offset * 4 + 0x4000, mem_mask); |
| 1700 | r = 0; |
| 5125 | 1701 | if ((offset == 7) && ACCESSING_BITS_16_31) |
| 5126 | | r=0x10000000; |
| 1702 | r = 0x10000000; |
| 5127 | 1703 | if ((offset == 8) && ACCESSING_BITS_0_15) |
| 5128 | | r=0x000000a0; |
| 1704 | r = 0x000000a0; |
| 5129 | 1705 | if ((offset == 8) && ACCESSING_BITS_16_31) |
| 5130 | | r=0x42580000; |
| 1706 | r = 0x42580000; |
| 5131 | 1707 | if ((offset == 9) && ACCESSING_BITS_0_15) |
| 5132 | | r=0x00004d41; |
| 1708 | r = 0x00004d41; |
| 5133 | 1709 | if ((offset == 0x3c) && ACCESSING_BITS_0_15) |
| 5134 | | r=0x00000000; // bits 15-0 0 if media board present |
| 1710 | r = 0x00000000; // bits 15-0 0 if media board present |
| 5135 | 1711 | if ((offset == 0x3d) && ACCESSING_BITS_0_15) |
| 5136 | | r=0x00000002; // bits 3-0 size of dimm board memory. Must be 2 |
| 1712 | r = 0x00000002; // bits 3-0 size of dimm board memory. Must be 2 |
| 5137 | 1713 | return r; |
| 5138 | 1714 | } |
| 5139 | 1715 | |
| 5140 | | WRITE32_MEMBER( chihiro_state::mediaboard_w ) |
| 1716 | WRITE32_MEMBER(chihiro_state::mediaboard_w) |
| 5141 | 1717 | { |
| 5142 | | logerror("I/O port write %04x mask %08X value %08X\n",offset*4+0x4000,mem_mask,data); |
| 1718 | logerror("I/O port write %04x mask %08X value %08X\n", offset * 4 + 0x4000, mem_mask, data); |
| 5143 | 1719 | // irq 10 |
| 5144 | 1720 | if ((offset == 0x38) && ACCESSING_BITS_8_15) |
| 5145 | 1721 | chihiro_devs.pic8259_2->ir2_w(0); |
| 5146 | 1722 | } |
| 5147 | 1723 | |
| 5148 | | static ADDRESS_MAP_START( xbox_map, AS_PROGRAM, 32, chihiro_state ) |
| 1724 | static ADDRESS_MAP_START(xbox_map, AS_PROGRAM, 32, chihiro_state) |
| 5149 | 1725 | AM_RANGE(0x00000000, 0x07ffffff) AM_RAM // 128 megabytes |
| 5150 | 1726 | AM_RANGE(0xf0000000, 0xf0ffffff) AM_RAM |
| 5151 | 1727 | AM_RANGE(0xfd000000, 0xfdffffff) AM_RAM AM_READWRITE(geforce_r, geforce_w) |
| r242231 | r242232 | |
| 5155 | 1731 | AM_RANGE(0xff000000, 0xffffffff) AM_ROM AM_REGION("bios", 0) AM_MIRROR(0x00f80000) |
| 5156 | 1732 | ADDRESS_MAP_END |
| 5157 | 1733 | |
| 5158 | | static ADDRESS_MAP_START(xbox_map_io, AS_IO, 32, chihiro_state ) |
| 1734 | static ADDRESS_MAP_START(xbox_map_io, AS_IO, 32, chihiro_state) |
| 5159 | 1735 | AM_RANGE(0x0020, 0x0023) AM_DEVREADWRITE8("pic8259_1", pic8259_device, read, write, 0xffffffff) |
| 5160 | 1736 | AM_RANGE(0x0040, 0x0043) AM_DEVREADWRITE8("pit8254", pit8254_device, read, write, 0xffffffff) |
| 5161 | 1737 | AM_RANGE(0x00a0, 0x00a3) AM_DEVREADWRITE8("pic8259_2", pic8259_device, read, write, 0xffffffff) |
| r242231 | r242232 | |
| 5167 | 1743 | AM_RANGE(0xff60, 0xff67) AM_DEVREADWRITE("ide", bus_master_ide_controller_device, bmdma_r, bmdma_w) |
| 5168 | 1744 | ADDRESS_MAP_END |
| 5169 | 1745 | |
| 5170 | | static INPUT_PORTS_START( chihiro ) |
| 1746 | static INPUT_PORTS_START(chihiro) |
| 5171 | 1747 | INPUT_PORTS_END |
| 5172 | 1748 | |
| 5173 | 1749 | void chihiro_state::machine_start() |
| 5174 | 1750 | { |
| 5175 | | nvidia_nv2a=auto_alloc(machine(), nv2a_renderer(machine())); |
| 5176 | | memset(pic16lc_buffer,0,sizeof(pic16lc_buffer)); |
| 5177 | | pic16lc_buffer[0]='B'; |
| 5178 | | pic16lc_buffer[4]=0; // A/V connector, 2=vga |
| 5179 | | smbus_register_device(0x10,smbus_callback_pic16lc); |
| 5180 | | smbus_register_device(0x45,smbus_callback_cx25871); |
| 5181 | | smbus_register_device(0x54,smbus_callback_eeprom); |
| 5182 | | chihiro_devs.pic8259_1 = machine().device<pic8259_device>( "pic8259_1" ); |
| 5183 | | chihiro_devs.pic8259_2 = machine().device<pic8259_device>( "pic8259_2" ); |
| 5184 | | chihiro_devs.ide = machine().device<bus_master_ide_controller_device>( "ide" ); |
| 5185 | | chihiro_devs.dimmboard=machine().device<naomi_gdrom_board>("rom_board"); |
| 1751 | nvidia_nv2a = auto_alloc(machine(), nv2a_renderer(machine())); |
| 1752 | memset(pic16lc_buffer, 0, sizeof(pic16lc_buffer)); |
| 1753 | pic16lc_buffer[0] = 'B'; |
| 1754 | pic16lc_buffer[4] = 0; // A/V connector, 2=vga |
| 1755 | smbus_register_device(0x10, smbus_callback_pic16lc); |
| 1756 | smbus_register_device(0x45, smbus_callback_cx25871); |
| 1757 | smbus_register_device(0x54, smbus_callback_eeprom); |
| 1758 | chihiro_devs.pic8259_1 = machine().device<pic8259_device>("pic8259_1"); |
| 1759 | chihiro_devs.pic8259_2 = machine().device<pic8259_device>("pic8259_2"); |
| 1760 | chihiro_devs.ide = machine().device<bus_master_ide_controller_device>("ide"); |
| 1761 | chihiro_devs.dimmboard = machine().device<naomi_gdrom_board>("rom_board"); |
| 5186 | 1762 | if (chihiro_devs.dimmboard != NULL) { |
| 5187 | | dimm_board_memory=chihiro_devs.dimmboard->memory(dimm_board_memory_size); |
| 1763 | dimm_board_memory = chihiro_devs.dimmboard->memory(dimm_board_memory_size); |
| 5188 | 1764 | } |
| 5189 | 1765 | memset(apust.memory, 0, sizeof(apust.memory)); |
| 5190 | 1766 | memset(apust.voices_heap_blockaddr, 0, sizeof(apust.voices_heap_blockaddr)); |
| r242231 | r242232 | |
| 5194 | 1770 | memset(apust.voices_position_end, 0, sizeof(apust.voices_position_end)); |
| 5195 | 1771 | memset(apust.voices_position_increment, 0, sizeof(apust.voices_position_increment)); |
| 5196 | 1772 | apust.space = &m_maincpu->space(); |
| 5197 | | apust.timer=machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(chihiro_state::audio_apu_timer),this),(void *)"APU Timer"); |
| 1773 | apust.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(chihiro_state::audio_apu_timer), this), (void *)"APU Timer"); |
| 5198 | 1774 | apust.timer->enable(false); |
| 5199 | 1775 | if (machine().debug_flags & DEBUG_FLAG_ENABLED) |
| 5200 | | debug_console_register_command(machine(),"chihiro",CMDFLAG_NONE,0,1,4,chihiro_debug_commands); |
| 5201 | | usbhack_counter=0; |
| 1776 | debug_console_register_command(machine(), "chihiro", CMDFLAG_NONE, 0, 1, 4, chihiro_debug_commands); |
| 1777 | usbhack_counter = 0; |
| 5202 | 1778 | // savestates |
| 5203 | 1779 | save_item(NAME(debug_irq_active)); |
| 5204 | 1780 | save_item(NAME(debug_irq_number)); |
| r242231 | r242232 | |
| 5218 | 1794 | SLOT_INTERFACE("bb", IDE_BASEBOARD) |
| 5219 | 1795 | SLOT_INTERFACE_END |
| 5220 | 1796 | |
| 5221 | | static MACHINE_CONFIG_START( chihiro_base, chihiro_state ) |
| 1797 | static MACHINE_CONFIG_START(chihiro_base, chihiro_state) |
| 5222 | 1798 | |
| 5223 | 1799 | /* basic machine hardware */ |
| 5224 | 1800 | MCFG_CPU_ADD("maincpu", PENTIUM3, 733333333) /* Wrong! family 6 model 8 stepping 10 */ |
| 5225 | 1801 | MCFG_CPU_PROGRAM_MAP(xbox_map) |
| 5226 | 1802 | MCFG_CPU_IO_MAP(xbox_map_io) |
| 5227 | | MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(chihiro_state,irq_callback) |
| 1803 | MCFG_CPU_IRQ_ACKNOWLEDGE_DRIVER(chihiro_state, irq_callback) |
| 5228 | 1804 | |
| 5229 | 1805 | MCFG_QUANTUM_TIME(attotime::from_hz(6000)) |
| 5230 | 1806 | |
| r242231 | r242232 | |
| 5241 | 1817 | MCFG_PCI_BUS_LEGACY_ADD("agpbus", 1) |
| 5242 | 1818 | MCFG_PCI_BUS_LEGACY_SIBLING("pcibus") |
| 5243 | 1819 | MCFG_PCI_BUS_LEGACY_DEVICE(0, "NV2A GeForce 3MX Integrated GPU/Northbridge", geforce_pci_r, geforce_pci_w) |
| 5244 | | MCFG_PIC8259_ADD( "pic8259_1", WRITELINE(chihiro_state, chihiro_pic8259_1_set_int_line), VCC, READ8(chihiro_state,get_slave_ack) ) |
| 5245 | | MCFG_PIC8259_ADD( "pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL ) |
| 1820 | MCFG_PIC8259_ADD("pic8259_1", WRITELINE(chihiro_state, chihiro_pic8259_1_set_int_line), VCC, READ8(chihiro_state, get_slave_ack)) |
| 1821 | MCFG_PIC8259_ADD("pic8259_2", DEVWRITELINE("pic8259_1", pic8259_device, ir2_w), GND, NULL) |
| 5246 | 1822 | |
| 5247 | 1823 | MCFG_DEVICE_ADD("pit8254", PIT8254, 0) |
| 5248 | 1824 | MCFG_PIT8253_CLK0(1125000) /* heartbeat IRQ */ |
| r242231 | r242232 | |
| 5251 | 1827 | MCFG_PIT8253_CLK2(1125000) /* (unused) pio port c pin 4, and speaker polling enough */ |
| 5252 | 1828 | MCFG_PIT8253_OUT2_HANDLER(WRITELINE(chihiro_state, chihiro_pit8254_out2_changed)) |
| 5253 | 1829 | |
| 5254 | | MCFG_BUS_MASTER_IDE_CONTROLLER_ADD( "ide", ide_baseboard, NULL, "bb", true) |
| 1830 | MCFG_BUS_MASTER_IDE_CONTROLLER_ADD("ide", ide_baseboard, NULL, "bb", true) |
| 5255 | 1831 | MCFG_ATA_INTERFACE_IRQ_HANDLER(DEVWRITELINE("pic8259_2", pic8259_device, ir6_w)) |
| 5256 | 1832 | MCFG_BUS_MASTER_IDE_CONTROLLER_SPACE("maincpu", AS_PROGRAM) |
| 5257 | 1833 | |
| r242231 | r242232 | |
| 5261 | 1837 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
| 5262 | 1838 | MCFG_SCREEN_SIZE(640, 480) |
| 5263 | 1839 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
| 5264 | | MCFG_SCREEN_UPDATE_DRIVER(chihiro_state,screen_update_callback) |
| 5265 | | MCFG_SCREEN_VBLANK_DRIVER(chihiro_state,vblank_callback) |
| 1840 | MCFG_SCREEN_UPDATE_DRIVER(chihiro_state, screen_update_callback) |
| 1841 | MCFG_SCREEN_VBLANK_DRIVER(chihiro_state, vblank_callback) |
| 5266 | 1842 | |
| 5267 | 1843 | MCFG_PALETTE_ADD("palette", 65536) |
| 5268 | 1844 | MACHINE_CONFIG_END |
| 5269 | 1845 | |
| 5270 | | static MACHINE_CONFIG_DERIVED( chihirogd, chihiro_base ) |
| 1846 | static MACHINE_CONFIG_DERIVED(chihirogd, chihiro_base) |
| 5271 | 1847 | MCFG_NAOMI_GDROM_BOARD_ADD("rom_board", ":gdrom", ":pic", NULL, NOOP) |
| 5272 | 1848 | MACHINE_CONFIG_END |
| 5273 | 1849 | |
trunk/src/mame/video/chihiro.c
| r0 | r242232 | |
| 1 | #include "emu.h" |
| 2 | #include "video/poly.h" |
| 3 | #include "bitmap.h" |
| 4 | #include "includes/chihiro.h" |
| 5 | |
| 6 | //#define LOG_NV2A |
| 7 | |
| 8 | const char *vertex_program_disassembler::srctypes[] = { "??", "Rn", "Vn", "Cn" }; |
| 9 | const char *vertex_program_disassembler::scaops[] = { "NOP", "IMV", "RCP", "RCC", "RSQ", "EXP", "LOG", "LIT", "???", "???", "???", "???", "???", "???", "???", "???", "???" }; |
| 10 | const int vertex_program_disassembler::scapar2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; |
| 11 | const char *vertex_program_disassembler::vecops[] = { "NOP", "MOV", "MUL", "ADD", "MAD", "DP3", "DPH", "DP4", "DST", "MIN", "MAX", "SLT", "SGE", "ARL", "???", "???", "???" }; |
| 12 | const int vertex_program_disassembler::vecpar2[] = { 0, 4, 6, 5, 7, 6, 6, 6, 6, 6, 6, 6, 6, 4, 0, 0, 0 }; |
| 13 | const char *vertex_program_disassembler::vecouts[] = { "oPos", "???", "???", "oD0", "oD1", "oFog", "oPts", "oB0", "oB1", "oT0", "oT1", "oT2", "oT3" }; |
| 14 | const char vertex_program_disassembler::compchar[] = { 'x', 'y', 'z', 'w' }; |
| 15 | |
| 16 | /* |
| 17 | Each vertex program instruction is a 128 bit word made of the fields: |
| 18 | d f |
| 19 | w b i |
| 20 | o i e |
| 21 | r t l |
| 22 | d s d |
| 23 | +-+-----+------- |
| 24 | |0|31-0 |not used |
| 25 | +-+-----+------- |
| 26 | | |31-29|not used |
| 27 | | +-----+------- |
| 28 | | |28-25|scalar operation |
| 29 | | +-----+------- |
| 30 | | |24-21|vectorial operation |
| 31 | | +-----+------- |
| 32 | | |20-13|index for source constant C[] |
| 33 | | +-----+------- |
| 34 | | |12-9 |input vector index |
| 35 | | +-----+------- |
| 36 | |1| 8 |parameter A:sign |
| 37 | | +-----+------- |
| 38 | | | 7-6 |parameter A:swizzle x |
| 39 | | +-----+------- |
| 40 | | | 5-4 |parameter A:swizzle y |
| 41 | | +-----+------- |
| 42 | | | 3-2 |parameter A:swizzle z |
| 43 | | +-----+------- |
| 44 | | | 1-0 |parameter A:swizzle w |
| 45 | |-+-----+------- |
| 46 | | |31-28|parameter A:parameter Rn index |
| 47 | | +-----+------- |
| 48 | | |27-26|parameter A:input type 1:Rn 2:Vn 3:C[n] |
| 49 | | +-----+------- |
| 50 | | | 25 |parameter B:sign |
| 51 | | +-----+------- |
| 52 | | |24-23|parameter B:swizzle x |
| 53 | | +-----+------- |
| 54 | | |22-21|parameter B:swizzle y |
| 55 | | +-----+------- |
| 56 | | |20-19|parameter B:swizzle z |
| 57 | | +-----+------- |
| 58 | |2|18-17|parameter B:swizzle w |
| 59 | | +-----+------- |
| 60 | | |16-13|parameter B:parameter Rn index |
| 61 | | +-----+------- |
| 62 | | |12-11|parameter B:input type 1:Rn 2:Vn 3:C[n] |
| 63 | | +-----+------- |
| 64 | | | 10 |parameter C:sign |
| 65 | | +-----+------- |
| 66 | | | 9-8 |parameter C:swizzle x |
| 67 | | +-----+------- |
| 68 | | | 7-6 |parameter C:swizzle y |
| 69 | | +-----+------- |
| 70 | | | 5-4 |parameter C:swizzle z |
| 71 | | +-----+------- |
| 72 | | | 3-2 |parameter C:swizzle w |
| 73 | | +-----+------- |
| 74 | | | 1-0 | |
| 75 | |-+ |parameter C:parameter Rn index |
| 76 | | |31-30| |
| 77 | | +-----+------- |
| 78 | | |29-28|parameter C:input type 1:Rn 2:Vn 3:C[n] |
| 79 | | +-----+------- |
| 80 | | |27-24|output Rn mask from vectorial operation |
| 81 | | +-----+------- |
| 82 | | |23-20|output Rn index from vectorial operation |
| 83 | | +-----+------- |
| 84 | | |19-16|output Rn mask from scalar operation |
| 85 | | +-----+------- |
| 86 | |3|15-12|output vector write mask |
| 87 | | +-----+------- |
| 88 | | | 11 |1:output is output vector 0:output is constant C[] |
| 89 | | +-----+------- |
| 90 | | |10-3 |output vector/constant index |
| 91 | | +-----+------- |
| 92 | | | 2 |0:output Rn from vectorial operation 1:output Rn from scalar operation |
| 93 | | +-----+------- |
| 94 | | | 1 |1:add a0x to index for source constant C[] |
| 95 | | +-----+------- |
| 96 | | | 0 |1:end of program |
| 97 | +-+-----+------- |
| 98 | Each vertex program instruction can generate up to three destination values using up to three source values. |
| 99 | The first possible destination is to Rn from a vectorial operation. |
| 100 | The second possible destination is to a vertex shader output or C[n] from a vectorial or scalar operation. |
| 101 | The third possible destination is to Rn from a scalar operation. |
| 102 | */ |
| 103 | void vertex_program_disassembler::decodefields(unsigned int *dwords, int offset, fields &decoded) |
| 104 | { |
| 105 | unsigned int srcbits[3]; |
| 106 | int a; |
| 107 | |
| 108 | srcbits[0] = ((dwords[1 + offset] & 0x1ff) << 6) | (dwords[2 + offset] >> 26); |
| 109 | srcbits[1] = (dwords[2 + offset] >> 11) & 0x7fff; |
| 110 | srcbits[2] = ((dwords[2 + offset] & 0x7ff) << 4) | (dwords[3 + offset] >> 28); |
| 111 | decoded.ScaOperation = (int)(dwords[1 + offset] >> 25) & 0xf; |
| 112 | decoded.VecOperation = (int)(dwords[1 + offset] >> 21) & 0xf; |
| 113 | decoded.SourceConstantIndex = (int)(dwords[1 + offset] >> 13) & 0xff; |
| 114 | decoded.InputIndex = (int)(dwords[1 + offset] >> 9) & 0xf; |
| 115 | for (a = 0; a < 3; a++) |
| 116 | { |
| 117 | decoded.src[a].Sign = (int)(srcbits[a] >> 14) & 1; |
| 118 | decoded.src[a].SwizzleX = (int)(srcbits[a] >> 12) & 3; |
| 119 | decoded.src[a].SwizzleY = (int)(srcbits[a] >> 10) & 3; |
| 120 | decoded.src[a].SwizzleZ = (int)(srcbits[a] >> 8) & 3; |
| 121 | decoded.src[a].SwizzleW = (int)(srcbits[a] >> 6) & 3; |
| 122 | decoded.src[a].TempIndex = (int)(srcbits[a] >> 2) & 0xf; |
| 123 | decoded.src[a].ParameterType = (int)(srcbits[a] >> 0) & 3; |
| 124 | } |
| 125 | |
| 126 | decoded.VecTempWriteMask = (int)(dwords[3 + offset] >> 24) & 0xf; |
| 127 | decoded.VecTempIndex = (int)(dwords[3 + offset] >> 20) & 0xf; |
| 128 | decoded.ScaTempWriteMask = (int)(dwords[3 + offset] >> 16) & 0xf; |
| 129 | decoded.OutputWriteMask = (int)(dwords[3 + offset] >> 12) & 0xf; |
| 130 | decoded.OutputSelect = (int)(dwords[3 + offset] >> 11) & 0x1; |
| 131 | decoded.OutputIndex = (int)(dwords[3 + offset] >> 3) & 0xff; |
| 132 | decoded.MultiplexerControl = (int)(dwords[3 + offset] >> 2) & 0x1; |
| 133 | decoded.Usea0x = (int)(dwords[3 + offset] >> 1) & 0x1; |
| 134 | decoded.EndOfProgram = (int)(dwords[3 + offset] >> 0) & 0x1; |
| 135 | } |
| 136 | |
| 137 | int vertex_program_disassembler::disassemble_mask(int mask, char *s) |
| 138 | { |
| 139 | int l; |
| 140 | |
| 141 | *s = 0; |
| 142 | if (mask == 15) |
| 143 | return 0; |
| 144 | s[0] = '.'; |
| 145 | l = 1; |
| 146 | if ((mask & 8) != 0) { |
| 147 | s[l] = 'x'; |
| 148 | l++; |
| 149 | } |
| 150 | if ((mask & 4) != 0){ |
| 151 | s[l] = 'y'; |
| 152 | l++; |
| 153 | } |
| 154 | if ((mask & 2) != 0){ |
| 155 | s[l] = 'z'; |
| 156 | l++; |
| 157 | } |
| 158 | if ((mask & 1) != 0){ |
| 159 | s[l] = 'w'; |
| 160 | l++; |
| 161 | } |
| 162 | s[l] = 0; |
| 163 | return l; |
| 164 | } |
| 165 | |
| 166 | int vertex_program_disassembler::disassemble_swizzle(sourcefields f, char *s) |
| 167 | { |
| 168 | int t, l; |
| 169 | |
| 170 | t = 4; |
| 171 | if (f.SwizzleW == 3) |
| 172 | { |
| 173 | t = t - 1; |
| 174 | if (f.SwizzleZ == 2) |
| 175 | { |
| 176 | t = t - 1; |
| 177 | if (f.SwizzleY == 1) |
| 178 | { |
| 179 | t = t - 1; |
| 180 | if (f.SwizzleX == 0) |
| 181 | { |
| 182 | t = t - 1; |
| 183 | } |
| 184 | } |
| 185 | } |
| 186 | } |
| 187 | *s = 0; |
| 188 | if (t == 0) |
| 189 | return 0; |
| 190 | s[0] = '.'; |
| 191 | l = 1; |
| 192 | if (t > 0) |
| 193 | { |
| 194 | s[l] = compchar[f.SwizzleX]; |
| 195 | l++; |
| 196 | } |
| 197 | if (t > 1) |
| 198 | { |
| 199 | s[l] = compchar[f.SwizzleY]; |
| 200 | l++; |
| 201 | } |
| 202 | if (t > 2) |
| 203 | { |
| 204 | s[l] = compchar[f.SwizzleZ]; |
| 205 | l++; |
| 206 | } |
| 207 | if (t > 3) |
| 208 | { |
| 209 | s[l] = compchar[f.SwizzleW]; |
| 210 | l++; |
| 211 | } |
| 212 | s[l] = 0; |
| 213 | return l; |
| 214 | } |
| 215 | |
| 216 | int vertex_program_disassembler::disassemble_source(sourcefields f, fields fi, char *s) |
| 217 | { |
| 218 | int l; |
| 219 | |
| 220 | if (f.ParameterType == 0) { |
| 221 | strcpy(s, ",???"); |
| 222 | return 4; |
| 223 | } |
| 224 | l = 0; |
| 225 | if (f.Sign != 0) { |
| 226 | s[l] = '-'; |
| 227 | l++; |
| 228 | } |
| 229 | if (f.ParameterType == 1) { |
| 230 | s[l] = 'r'; |
| 231 | l = l + 1 + sprintf(s + l + 1, "%d", f.TempIndex); |
| 232 | } |
| 233 | else if (f.ParameterType == 2){ |
| 234 | s[l] = 'v'; |
| 235 | l = l + 1 + sprintf(s + l + 1, "%d", fi.InputIndex); |
| 236 | } |
| 237 | else |
| 238 | { |
| 239 | if (fi.Usea0x != 0) |
| 240 | { |
| 241 | if (fi.SourceConstantIndex >= 96) { |
| 242 | strcpy(s + l, "c["); |
| 243 | l = l + 2; |
| 244 | l = l + sprintf(s + l, "%d", fi.SourceConstantIndex - 96); |
| 245 | strcpy(s + l, "+a0.x]"); |
| 246 | l = l + 6; |
| 247 | } |
| 248 | else { |
| 249 | strcpy(s + l, "c[a0.x"); |
| 250 | l = l + 6; |
| 251 | l = l + sprintf(s + l, "%d", fi.SourceConstantIndex - 96); |
| 252 | s[l] = ']'; |
| 253 | l++; |
| 254 | } |
| 255 | } |
| 256 | else { |
| 257 | strcpy(s + l, "c["); |
| 258 | l = l + 2; |
| 259 | l = l + sprintf(s + l, "%d", fi.SourceConstantIndex - 96); |
| 260 | s[l] = ']'; |
| 261 | l++; |
| 262 | } |
| 263 | } |
| 264 | l = l + disassemble_swizzle(f, s + l); |
| 265 | s[l] = 0; |
| 266 | return l; |
| 267 | } |
| 268 | |
| 269 | int vertex_program_disassembler::disassemble_output(fields f, char *s) |
| 270 | { |
| 271 | int l; |
| 272 | |
| 273 | if (f.OutputSelect == 1) { |
| 274 | strcpy(s, vecouts[f.OutputIndex]); |
| 275 | return strlen(s); |
| 276 | } |
| 277 | else { |
| 278 | strcpy(s, "c["); |
| 279 | l = 2; |
| 280 | l = l + sprintf(s + l, "%d", f.OutputIndex - 96); |
| 281 | s[l] = ']'; |
| 282 | l++; |
| 283 | } |
| 284 | s[l] = 0; |
| 285 | return l; |
| 286 | } |
| 287 | |
| 288 | int vertex_program_disassembler::output_types(fields f, int *o) |
| 289 | { |
| 290 | o[0] = o[1] = o[2] = o[3] = o[4] = o[5] = 0; |
| 291 | if ((f.VecOperation > 0) && (f.VecTempWriteMask != 0)) |
| 292 | o[0] = 1; |
| 293 | if ((f.VecOperation > 0) && (f.OutputWriteMask != 0) && (f.MultiplexerControl == 0)) |
| 294 | o[1] = 1; |
| 295 | if ((f.ScaOperation > 0) && (f.OutputWriteMask != 0) && (f.MultiplexerControl == 1)) |
| 296 | o[2] = 1; |
| 297 | if ((f.ScaOperation > 0) && (f.ScaTempWriteMask != 0)) |
| 298 | o[3] = 1; |
| 299 | if (f.VecOperation == 13) |
| 300 | o[4] = 1; |
| 301 | if (f.EndOfProgram == 1) |
| 302 | o[5] = 1; |
| 303 | return o[0] + o[1] + o[2] + o[3] + o[4] + o[5]; |
| 304 | } |
| 305 | |
| 306 | int vertex_program_disassembler::disassemble(unsigned int *instruction, char *line) |
| 307 | { |
| 308 | int b, p; |
| 309 | char *c; |
| 310 | |
| 311 | if (state == 0) { |
| 312 | decodefields(instruction, 0, f); |
| 313 | output_types(f, o); |
| 314 | state = 1; |
| 315 | } |
| 316 | if (o[0] != 0) |
| 317 | { |
| 318 | o[0] = 0; |
| 319 | c = line; |
| 320 | strcpy(c, vecops[f.VecOperation]); |
| 321 | c = c + strlen(c); |
| 322 | strcpy(c, " r"); |
| 323 | c = c + 2; |
| 324 | c = c + sprintf(c, "%d", f.VecTempIndex); |
| 325 | c = c + disassemble_mask(f.VecTempWriteMask, c); |
| 326 | b = 0; |
| 327 | for (p = 4; p != 0; p = p >> 1) |
| 328 | { |
| 329 | if ((vecpar2[f.VecOperation] & p) != 0) { |
| 330 | c[0] = ','; |
| 331 | c++; |
| 332 | c = c + disassemble_source(f.src[b], f, c); |
| 333 | } |
| 334 | b++; |
| 335 | } |
| 336 | *c = 0; |
| 337 | return 1; |
| 338 | } |
| 339 | if (o[1] != 0) |
| 340 | { |
| 341 | o[1] = 0; |
| 342 | c = line; |
| 343 | strcpy(c, vecops[f.VecOperation]); |
| 344 | c = c + strlen(c); |
| 345 | *c = ' '; |
| 346 | c++; |
| 347 | c = c + disassemble_output(f, c); |
| 348 | c = c + disassemble_mask(f.OutputWriteMask, c); |
| 349 | b = 0; |
| 350 | for (p = 4; p != 0; p = p >> 1) |
| 351 | { |
| 352 | if ((vecpar2[f.VecOperation] & p) != 0) { |
| 353 | *c = ','; |
| 354 | c++; |
| 355 | c = c + disassemble_source(f.src[b], f, c); |
| 356 | } |
| 357 | b++; |
| 358 | } |
| 359 | *c = 0; |
| 360 | return 1; |
| 361 | } |
| 362 | if (o[2] != 0) |
| 363 | { |
| 364 | o[2] = 0; |
| 365 | c = line; |
| 366 | strcpy(c, scaops[f.ScaOperation]); |
| 367 | c = c + strlen(c); |
| 368 | *c = ' '; |
| 369 | c++; |
| 370 | c = c + disassemble_output(f, c); |
| 371 | c = c + disassemble_mask(f.OutputWriteMask, c); |
| 372 | b = 0; |
| 373 | for (p = 4; p != 0; p = p >> 1) |
| 374 | { |
| 375 | if ((scapar2[f.ScaOperation] & p) != 0) { |
| 376 | *c = ','; |
| 377 | c++; |
| 378 | c = c + disassemble_source(f.src[b], f, c); |
| 379 | } |
| 380 | b++; |
| 381 | } |
| 382 | *c = 0; |
| 383 | return 1; |
| 384 | } |
| 385 | if (o[3] != 0) |
| 386 | { |
| 387 | if (f.VecOperation > 0) |
| 388 | b = 1; |
| 389 | else |
| 390 | b = f.VecTempIndex; |
| 391 | o[3] = 0; |
| 392 | c = line; |
| 393 | strcpy(c, scaops[f.ScaOperation]); |
| 394 | c = c + strlen(c); |
| 395 | strcpy(c, " r"); |
| 396 | c = c + 2; |
| 397 | c = c + sprintf(c, "%d", b); |
| 398 | c = c + disassemble_mask(f.ScaTempWriteMask, c); |
| 399 | b = 0; |
| 400 | for (p = 4; p != 0; p = p >> 1) |
| 401 | { |
| 402 | if ((scapar2[f.ScaOperation] & p) != 0) { |
| 403 | *c = ','; |
| 404 | c++; |
| 405 | c = c + disassemble_source(f.src[b], f, c); |
| 406 | } |
| 407 | b++; |
| 408 | } |
| 409 | *c = 0; |
| 410 | return 1; |
| 411 | } |
| 412 | if (o[4] != 0) |
| 413 | { |
| 414 | o[4] = 0; |
| 415 | c = line; |
| 416 | c = c + sprintf(c, "MOV a0.x,"); |
| 417 | c = c + disassemble_source(f.src[0], f, c); |
| 418 | *c = 0; |
| 419 | return 1; |
| 420 | } |
| 421 | if (o[5] != 0) |
| 422 | { |
| 423 | o[5] = 0; |
| 424 | strcpy(line, "END"); |
| 425 | return 1; |
| 426 | } |
| 427 | state = 0; |
| 428 | return 0; |
| 429 | } |
| 430 | |
| 431 | vertex_program_simulator::vertex_program_simulator() |
| 432 | { |
| 433 | for (int i = 0; i < 256; i++) |
| 434 | op[i].modified = 0; |
| 435 | initialize_constants(); |
| 436 | } |
| 437 | |
| 438 | void vertex_program_simulator::set_data(vertex_nv *in, vertex_nv *out) |
| 439 | { |
| 440 | input = in; |
| 441 | output = out; |
| 442 | } |
| 443 | |
| 444 | void vertex_program_simulator::reset() |
| 445 | { |
| 446 | ip = 0; |
| 447 | a0x = 0; |
| 448 | initialize_outputs(); |
| 449 | initialize_temps(); |
| 450 | } |
| 451 | |
| 452 | void vertex_program_simulator::decode_instruction(int address) |
| 453 | { |
| 454 | instruction *i; |
| 455 | |
| 456 | i = &op[address]; |
| 457 | i->d.SignA = i->i[1] & (1 << 8); |
| 458 | i->d.ParameterTypeA = (i->i[2] >> 26) & 3; |
| 459 | i->d.TempIndexA = (i->i[2] >> 28) & 15; |
| 460 | i->d.SwizzleA[0] = (i->i[1] >> 6) & 3; |
| 461 | i->d.SwizzleA[1] = (i->i[1] >> 4) & 3; |
| 462 | i->d.SwizzleA[2] = (i->i[1] >> 2) & 3; |
| 463 | i->d.SwizzleA[3] = (i->i[1] >> 0) & 3; |
| 464 | i->d.SignB = i->i[2] & (1 << 25); |
| 465 | i->d.ParameterTypeB = (i->i[2] >> 11) & 3; |
| 466 | i->d.TempIndexB = (i->i[2] >> 13) & 15; |
| 467 | i->d.SwizzleB[0] = (i->i[2] >> 23) & 3; |
| 468 | i->d.SwizzleB[1] = (i->i[2] >> 21) & 3; |
| 469 | i->d.SwizzleB[2] = (i->i[2] >> 19) & 3; |
| 470 | i->d.SwizzleB[3] = (i->i[2] >> 17) & 3; |
| 471 | i->d.SignC = i->i[2] & (1 << 10); |
| 472 | i->d.ParameterTypeC = (i->i[3] >> 28) & 3; |
| 473 | i->d.TempIndexC = ((i->i[2] & 3) << 2) + (i->i[3] >> 30); |
| 474 | i->d.SwizzleC[0] = (i->i[2] >> 8) & 3; |
| 475 | i->d.SwizzleC[1] = (i->i[2] >> 6) & 3; |
| 476 | i->d.SwizzleC[2] = (i->i[2] >> 4) & 3; |
| 477 | i->d.SwizzleC[3] = (i->i[2] >> 2) & 3; |
| 478 | i->d.VecOperation = (i->i[1] >> 21) & 15; |
| 479 | i->d.ScaOperation = (i->i[1] >> 25) & 15; |
| 480 | i->d.OutputWriteMask = ((i->i[3] >> 12) & 15); |
| 481 | i->d.MultiplexerControl = i->i[3] & 4; // 0 : output Rn from vectorial operation 4 : output Rn from scalar operation |
| 482 | i->d.VecTempIndex = (i->i[3] >> 20) & 15; |
| 483 | i->d.OutputIndex = (i->i[3] >> 3) & 255; |
| 484 | i->d.OutputSelect = i->i[3] & 0x800; |
| 485 | i->d.VecTempWriteMask = (i->i[3] >> 24) & 15; |
| 486 | i->d.ScaTempWriteMask = (i->i[3] >> 16) & 15; |
| 487 | i->d.InputIndex = (i->i[1] >> 9) & 15; |
| 488 | i->d.SourceConstantIndex = (i->i[1] >> 13) & 255; |
| 489 | i->d.Usea0x = i->i[3] & 2; |
| 490 | i->d.EndOfProgram = i->i[3] & 1; |
| 491 | } |
| 492 | |
| 493 | int vertex_program_simulator::step() |
| 494 | { |
| 495 | int p1, p2; |
| 496 | float tmp[3 * 4]; |
| 497 | float tmpv[4]; |
| 498 | float tmps[4]; |
| 499 | instruction::decoded *d; |
| 500 | |
| 501 | #if 0 // useful while debugging to see what instrucion is being executed |
| 502 | static int debugvpi = 0; |
| 503 | char disbuffer[256]; |
| 504 | if (debugvpi) { |
| 505 | char *pp; |
| 506 | vertex_program_disassembler vdis; |
| 507 | |
| 508 | pp = disbuffer; |
| 509 | while (vdis.disassemble(op[ip].i, pp) != 0) { |
| 510 | pp = pp + strlen(pp); |
| 511 | *pp = '\n'; |
| 512 | pp++; |
| 513 | *pp = 0; |
| 514 | } |
| 515 | } |
| 516 | #endif |
| 517 | |
| 518 | if (op[ip].modified) |
| 519 | decode_instruction(ip); |
| 520 | d = &(op[ip].d); |
| 521 | // prepare inputs |
| 522 | // input A |
| 523 | generate_input(&tmp[0], d->SignA, d->ParameterTypeA, d->TempIndexA, d->SwizzleA); |
| 524 | // input B |
| 525 | generate_input(&tmp[4], d->SignB, d->ParameterTypeB, d->TempIndexB, d->SwizzleB); |
| 526 | // input C |
| 527 | generate_input(&tmp[8], d->SignC, d->ParameterTypeC, d->TempIndexC, d->SwizzleC); |
| 528 | // compute 2 instructions |
| 529 | // vectorial |
| 530 | compute_vectorial_operation(tmpv, d->VecOperation, tmp); |
| 531 | // scalar |
| 532 | compute_scalar_operation(tmps, d->ScaOperation, tmp); |
| 533 | // assign destinations |
| 534 | if (d->VecOperation > 0) { |
| 535 | if (d->VecOperation == 13) |
| 536 | //o[4] = 1; |
| 537 | a0x = (int)tmpv[0]; |
| 538 | else { |
| 539 | if (d->VecTempWriteMask != 0) { // assign to Rn |
| 540 | //o[0] = 1; |
| 541 | int wm = d->VecTempWriteMask; |
| 542 | for (p1 = 0; p1 < 4; p1++) { |
| 543 | if (wm & 8) |
| 544 | r_temp[d->VecTempIndex].fv[p1] = tmpv[p1]; |
| 545 | wm = wm << 1; |
| 546 | } |
| 547 | } |
| 548 | if ((d->OutputWriteMask != 0) && (d->MultiplexerControl == 0)) { |
| 549 | //o[1] = 1; |
| 550 | if (d->OutputSelect) { // assign to output |
| 551 | int wm = d->OutputWriteMask; |
| 552 | for (p1 = 0; p1 < 4; p1++) { |
| 553 | if (wm & 8) |
| 554 | output->attribute[d->OutputIndex].fv[p1] = tmpv[p1]; |
| 555 | wm = wm << 1; |
| 556 | } |
| 557 | // remeber, output position == r12 |
| 558 | if (d->OutputIndex == 0) |
| 559 | for (p1 = 0; p1 < 4; p1++) { |
| 560 | r_temp[12].fv[p1] = output->attribute[d->OutputIndex].fv[p1]; |
| 561 | } |
| 562 | } |
| 563 | else { // assign to constant |
| 564 | int wm = d->OutputWriteMask; |
| 565 | for (p1 = 0; p1 < 4; p1++) { |
| 566 | if (wm & 8) |
| 567 | c_constant[d->OutputIndex].fv[p1] = tmpv[p1]; |
| 568 | wm = wm << 1; |
| 569 | } |
| 570 | } |
| 571 | } |
| 572 | } |
| 573 | } |
| 574 | if (d->ScaOperation > 0) { |
| 575 | if (d->ScaTempWriteMask != 0) { // assign to Rn |
| 576 | //o[3] = 1; |
| 577 | if (d->VecOperation > 0) |
| 578 | p2 = 1; |
| 579 | else |
| 580 | p2 = d->VecTempIndex; |
| 581 | int wm = d->ScaTempWriteMask; |
| 582 | for (p1 = 0; p1 < 4; p1++) { |
| 583 | if (wm & 8) |
| 584 | r_temp[p2].fv[p1] = tmps[p1]; |
| 585 | wm = wm << 1; |
| 586 | } |
| 587 | } |
| 588 | if ((d->OutputWriteMask != 0) && (d->MultiplexerControl != 0)) { // assign to output |
| 589 | //o[2] = 1; |
| 590 | int wm = d->OutputWriteMask; |
| 591 | for (p1 = 0; p1 < 4; p1++) { |
| 592 | if (wm & 8) |
| 593 | output->attribute[d->OutputIndex].fv[p1] = tmps[p1]; |
| 594 | wm = wm << 1; |
| 595 | } |
| 596 | // remeber, output position == r12 |
| 597 | if (d->OutputIndex == 0) { |
| 598 | for (p1 = 0; p1 < 4; p1++) { |
| 599 | r_temp[12].fv[p1] = output->attribute[d->OutputIndex].fv[p1]; |
| 600 | } |
| 601 | } |
| 602 | } |
| 603 | } |
| 604 | return d->EndOfProgram; |
| 605 | } |
| 606 | |
| 607 | void vertex_program_simulator::execute() |
| 608 | { |
| 609 | int c; |
| 610 | |
| 611 | c = 0; |
| 612 | do { |
| 613 | c = step(); |
| 614 | ip++; |
| 615 | } while (c == 0); |
| 616 | } |
| 617 | |
| 618 | void vertex_program_simulator::jump(int address) |
| 619 | { |
| 620 | ip = address; |
| 621 | } |
| 622 | |
| 623 | void vertex_program_simulator::process(int address, vertex_nv *in, vertex_nv *out, int count) |
| 624 | { |
| 625 | #if 0 // useful while debugging to see what is being executed |
| 626 | static int debugvps = 0; |
| 627 | if (debugvps) { |
| 628 | char *pp; |
| 629 | vertex_program_disassembler vdis; |
| 630 | char disbuffer[128]; |
| 631 | |
| 632 | jump(address); |
| 633 | debugvps--; |
| 634 | for (int t = 0; t < 128; t++) { |
| 635 | pp = disbuffer; |
| 636 | while (vdis.disassemble(op[ip + t].i, pp) != 0) { |
| 637 | pp = pp + strlen(pp); |
| 638 | *pp = '\n'; |
| 639 | pp++; |
| 640 | *pp = 0; |
| 641 | } |
| 642 | printf("%08X %08X %08X %s", op[ip + t].i[1], op[ip + t].i[2], op[ip + t].i[3], disbuffer); |
| 643 | if (op[ip + t].i[3] & 1) |
| 644 | break; |
| 645 | } |
| 646 | } |
| 647 | #endif |
| 648 | set_data(in, out); |
| 649 | while (count > 0) { |
| 650 | reset(); |
| 651 | jump(address); |
| 652 | execute(); |
| 653 | input++; |
| 654 | output++; |
| 655 | count--; |
| 656 | } |
| 657 | } |
| 658 | |
| 659 | int vertex_program_simulator::status() |
| 660 | { |
| 661 | return ip; |
| 662 | } |
| 663 | |
| 664 | void vertex_program_simulator::initialize_outputs() |
| 665 | { |
| 666 | for (int n = 0; n < 16; n++) { |
| 667 | output->attribute[n].fv[0] = output->attribute[n].fv[1] = output->attribute[n].fv[2] = 0; |
| 668 | output->attribute[n].fv[3] = 1; |
| 669 | } |
| 670 | } |
| 671 | |
| 672 | void vertex_program_simulator::initialize_temps() |
| 673 | { |
| 674 | for (int n = 0; n < 32; n++) { |
| 675 | for (int m = 0; m < 4; m++) |
| 676 | r_temp[n].fv[m] = 0; |
| 677 | } |
| 678 | } |
| 679 | |
| 680 | void vertex_program_simulator::initialize_constants() |
| 681 | { |
| 682 | for (int n = 0; n < 192; n++) { |
| 683 | for (int m = 0; m < 4;m++) |
| 684 | c_constant[n].fv[m] = 0; |
| 685 | } |
| 686 | } |
| 687 | |
| 688 | void vertex_program_simulator::generate_input(float t[4], int sign, int type, int temp, int swizzle[4]) |
| 689 | { |
| 690 | float sgn = 1; |
| 691 | |
| 692 | if (sign) |
| 693 | sgn = -1; |
| 694 | if (type == 1) { |
| 695 | t[0] = sgn*r_temp[temp].fv[swizzle[0]]; |
| 696 | t[1] = sgn*r_temp[temp].fv[swizzle[1]]; |
| 697 | t[2] = sgn*r_temp[temp].fv[swizzle[2]]; |
| 698 | t[3] = sgn*r_temp[temp].fv[swizzle[3]]; |
| 699 | } |
| 700 | else if (type == 2) { |
| 701 | int InputIndex = op[ip].d.InputIndex; |
| 702 | t[0] = sgn*input->attribute[InputIndex].fv[swizzle[0]]; |
| 703 | t[1] = sgn*input->attribute[InputIndex].fv[swizzle[1]]; |
| 704 | t[2] = sgn*input->attribute[InputIndex].fv[swizzle[2]]; |
| 705 | t[3] = sgn*input->attribute[InputIndex].fv[swizzle[3]]; |
| 706 | } |
| 707 | else if (type == 3) { |
| 708 | int SourceConstantIndex = op[ip].d.SourceConstantIndex; |
| 709 | if (op[ip].d.Usea0x) |
| 710 | SourceConstantIndex = SourceConstantIndex + a0x; |
| 711 | t[0] = sgn*c_constant[SourceConstantIndex].fv[swizzle[0]]; |
| 712 | t[1] = sgn*c_constant[SourceConstantIndex].fv[swizzle[1]]; |
| 713 | t[2] = sgn*c_constant[SourceConstantIndex].fv[swizzle[2]]; |
| 714 | t[3] = sgn*c_constant[SourceConstantIndex].fv[swizzle[3]]; |
| 715 | } |
| 716 | } |
| 717 | |
| 718 | void vertex_program_simulator::compute_vectorial_operation(float t_out[4], int instruction, float par_in[3 * 4]) |
| 719 | { |
| 720 | const int p1_A = 0; |
| 721 | const int p2_B = 4; |
| 722 | const int p3_C = 8; |
| 723 | |
| 724 | // t_out <= instruction(par_in) |
| 725 | switch (instruction) { |
| 726 | case 0: // "NOP" |
| 727 | break; |
| 728 | case 1: // "MOV" |
| 729 | t_out[0] = par_in[p1_A + 0]; |
| 730 | t_out[1] = par_in[p1_A + 1]; |
| 731 | t_out[2] = par_in[p1_A + 2]; |
| 732 | t_out[3] = par_in[p1_A + 3]; |
| 733 | break; |
| 734 | case 2: // "MUL" |
| 735 | t_out[0] = par_in[p1_A + 0] * par_in[p2_B + 0]; |
| 736 | t_out[1] = par_in[p1_A + 1] * par_in[p2_B + 1]; |
| 737 | t_out[2] = par_in[p1_A + 2] * par_in[p2_B + 2]; |
| 738 | t_out[3] = par_in[p1_A + 3] * par_in[p2_B + 3]; |
| 739 | break; |
| 740 | case 3: // "ADD" |
| 741 | t_out[0] = par_in[p1_A + 0] + par_in[p3_C + 0]; |
| 742 | t_out[1] = par_in[p1_A + 1] + par_in[p3_C + 1]; |
| 743 | t_out[2] = par_in[p1_A + 2] + par_in[p3_C + 2]; |
| 744 | t_out[3] = par_in[p1_A + 3] + par_in[p3_C + 3]; |
| 745 | break; |
| 746 | case 4: // "MAD" |
| 747 | t_out[0] = par_in[p1_A + 0] * par_in[p2_B + 0] + par_in[p3_C + 0]; |
| 748 | t_out[1] = par_in[p1_A + 1] * par_in[p2_B + 1] + par_in[p3_C + 1]; |
| 749 | t_out[2] = par_in[p1_A + 2] * par_in[p2_B + 2] + par_in[p3_C + 2]; |
| 750 | t_out[3] = par_in[p1_A + 3] * par_in[p2_B + 3] + par_in[p3_C + 3]; |
| 751 | break; |
| 752 | case 5: // "DP3" |
| 753 | t_out[0] = par_in[p1_A + 0] * par_in[p2_B + 0] + par_in[p1_A + 1] * par_in[p2_B + 1] + par_in[p1_A + 2] * par_in[p2_B + 2]; |
| 754 | t_out[1] = t_out[2] = t_out[3] = t_out[0]; |
| 755 | break; |
| 756 | case 6: // "DPH" |
| 757 | t_out[0] = par_in[p1_A + 0] * par_in[p2_B + 0] + par_in[p1_A + 1] * par_in[p2_B + 1] + par_in[p1_A + 2] * par_in[p2_B + 2] + par_in[p2_B + 3]; |
| 758 | t_out[1] = t_out[2] = t_out[3] = t_out[0]; |
| 759 | break; |
| 760 | case 7: // "DP4" |
| 761 | t_out[0] = par_in[p1_A + 0] * par_in[p2_B + 0] + par_in[p1_A + 1] * par_in[p2_B + 1] + par_in[p1_A + 2] * par_in[p2_B + 2] + par_in[p1_A + 3] * par_in[p2_B + 3]; |
| 762 | t_out[1] = t_out[2] = t_out[3] = t_out[0]; |
| 763 | break; |
| 764 | case 8: // "DST" |
| 765 | t_out[0] = 1.0; |
| 766 | t_out[1] = par_in[p1_A + 1] * par_in[p2_B + 1]; |
| 767 | t_out[2] = par_in[p1_A + 2]; |
| 768 | t_out[3] = par_in[p2_B + 3]; |
| 769 | break; |
| 770 | case 9: // "MIN" |
| 771 | t_out[0] = fmin(par_in[p1_A + 0], par_in[p2_B + 0]); |
| 772 | t_out[1] = fmin(par_in[p1_A + 1], par_in[p2_B + 1]); |
| 773 | t_out[2] = fmin(par_in[p1_A + 2], par_in[p2_B + 2]); |
| 774 | t_out[3] = fmin(par_in[p1_A + 3], par_in[p2_B + 3]); |
| 775 | break; |
| 776 | case 10: // "MAX" |
| 777 | t_out[0] = fmax(par_in[p1_A + 0], par_in[p2_B + 0]); |
| 778 | t_out[1] = fmax(par_in[p1_A + 1], par_in[p2_B + 1]); |
| 779 | t_out[2] = fmax(par_in[p1_A + 2], par_in[p2_B + 2]); |
| 780 | t_out[3] = fmax(par_in[p1_A + 3], par_in[p2_B + 3]); |
| 781 | break; |
| 782 | case 11: // "SLT" |
| 783 | t_out[0] = (par_in[p1_A + 0] < par_in[p2_B + 0]) ? 1.0 : 0; |
| 784 | t_out[1] = (par_in[p1_A + 1] < par_in[p2_B + 1]) ? 1.0 : 0; |
| 785 | t_out[2] = (par_in[p1_A + 2] < par_in[p2_B + 2]) ? 1.0 : 0; |
| 786 | t_out[3] = (par_in[p1_A + 3] < par_in[p2_B + 3]) ? 1.0 : 0; |
| 787 | break; |
| 788 | case 12: // "SGE" |
| 789 | t_out[0] = (par_in[p1_A + 0] >= par_in[p2_B + 0]) ? 1.0 : 0; |
| 790 | t_out[1] = (par_in[p1_A + 1] >= par_in[p2_B + 1]) ? 1.0 : 0; |
| 791 | t_out[2] = (par_in[p1_A + 2] >= par_in[p2_B + 2]) ? 1.0 : 0; |
| 792 | t_out[3] = (par_in[p1_A + 3] >= par_in[p2_B + 3]) ? 1.0 : 0; |
| 793 | break; |
| 794 | case 13: // "ARL" |
| 795 | t_out[0] = par_in[p1_A + 0]; |
| 796 | } |
| 797 | } |
| 798 | |
| 799 | void vertex_program_simulator::compute_scalar_operation(float t_out[4], int instruction, float par_in[3 * 4]) |
| 800 | { |
| 801 | //const int p1_A = 0; |
| 802 | //const int p2_B = 4; |
| 803 | const int p3_C = 8; |
| 804 | union { |
| 805 | float f; |
| 806 | unsigned int i; |
| 807 | } t; |
| 808 | int e; |
| 809 | |
| 810 | // t_out <= instruction(par_in) |
| 811 | switch (instruction) { |
| 812 | case 0: // "NOP" |
| 813 | break; |
| 814 | case 1: // "IMV" |
| 815 | t_out[0] = par_in[p3_C + 0]; |
| 816 | t_out[1] = par_in[p3_C + 1]; |
| 817 | t_out[2] = par_in[p3_C + 2]; |
| 818 | t_out[3] = par_in[p3_C + 3]; |
| 819 | break; |
| 820 | case 2: // "RCP" |
| 821 | t_out[0] = t_out[1] = t_out[2] = t_out[3] = 1.0 / par_in[p3_C + 0]; |
| 822 | break; |
| 823 | case 3: // "RCC" |
| 824 | t_out[0] = t_out[1] = t_out[2] = t_out[3] = 1.0 / par_in[p3_C + 0]; // ? |
| 825 | break; |
| 826 | case 4: // "RSQ" |
| 827 | t_out[0] = t_out[1] = t_out[2] = t_out[3] = 1.0 / sqrt(abs(par_in[p3_C + 0])); |
| 828 | break; |
| 829 | case 5: // "EXP" |
| 830 | t_out[0] = pow(2, floor(par_in[p3_C + 0])); |
| 831 | t_out[1] = par_in[p3_C + 0] - floor(par_in[p3_C + 0]); |
| 832 | t.f = pow(2, par_in[p3_C + 0]); |
| 833 | t.i = t.i & 0xffffff00; |
| 834 | t_out[2] = t.f; |
| 835 | t_out[3] = 1.0; |
| 836 | break; |
| 837 | case 6: // "LOG" |
| 838 | t_out[1] = frexp(par_in[p3_C + 0], &e)*2.0; // frexp gives mantissa as 0.5....1 |
| 839 | t_out[0] = e - 1; |
| 840 | t.f = log2(abs(par_in[p3_C + 0])); |
| 841 | t.i = t.i & 0xffffff00; |
| 842 | t_out[2] = t.f; |
| 843 | t_out[3] = 1.0; |
| 844 | break; |
| 845 | case 7: // "LIT" |
| 846 | t_out[0] = 1.0; |
| 847 | t_out[1] = fmax(0, fmin(par_in[p3_C + 0], 1.0f)); |
| 848 | t_out[2] = par_in[p3_C + 0] > 0 ? pow(fmax(par_in[p3_C + 1], 0), par_in[p3_C + 3]) : 0; |
| 849 | t_out[3] = 1.0; |
| 850 | break; |
| 851 | } |
| 852 | } |
| 853 | |
| 854 | /* |
| 855 | * Graphics |
| 856 | */ |
| 857 | |
| 858 | UINT32 nv2a_renderer::dilate0(UINT32 value, int bits) // dilate first "bits" bits in "value" |
| 859 | { |
| 860 | UINT32 x, m1, m2, m3; |
| 861 | int a; |
| 862 | |
| 863 | x = value; |
| 864 | for (a = 0; a < bits; a++) |
| 865 | { |
| 866 | m2 = 1 << (a << 1); |
| 867 | m1 = m2 - 1; |
| 868 | m3 = (~m1) << 1; |
| 869 | x = (x & m1) + (x & m2) + ((x & m3) << 1); |
| 870 | } |
| 871 | return x; |
| 872 | } |
| 873 | |
| 874 | UINT32 nv2a_renderer::dilate1(UINT32 value, int bits) // dilate first "bits" bits in "value" |
| 875 | { |
| 876 | UINT32 x, m1, m2, m3; |
| 877 | int a; |
| 878 | |
| 879 | x = value; |
| 880 | for (a = 0; a < bits; a++) |
| 881 | { |
| 882 | m2 = 1 << (a << 1); |
| 883 | m1 = m2 - 1; |
| 884 | m3 = (~m1) << 1; |
| 885 | x = (x & m1) + ((x & m2) << 1) + ((x & m3) << 1); |
| 886 | } |
| 887 | return x; |
| 888 | } |
| 889 | |
| 890 | void nv2a_renderer::computedilated(void) |
| 891 | { |
| 892 | int a, b; |
| 893 | |
| 894 | for (b = 0; b < 16; b++) |
| 895 | for (a = 0; a < 2048; a++) { |
| 896 | dilated0[b][a] = dilate0(a, b); |
| 897 | dilated1[b][a] = dilate1(a, b); |
| 898 | } |
| 899 | for (b = 0; b < 16; b++) |
| 900 | for (a = 0; a < 16; a++) |
| 901 | dilatechose[(b << 4) + a] = (a < b ? a : b); |
| 902 | } |
| 903 | |
| 904 | int nv2a_renderer::geforce_commandkind(UINT32 word) |
| 905 | { |
| 906 | if ((word & 0x00000003) == 0x00000002) |
| 907 | return 7; // call |
| 908 | if ((word & 0x00000003) == 0x00000001) |
| 909 | return 6; // jump |
| 910 | if ((word & 0xE0030003) == 0x40000000) |
| 911 | return 5; // non increasing |
| 912 | if ((word & 0xE0000003) == 0x20000000) |
| 913 | return 4; // old jump |
| 914 | if ((word & 0xFFFF0003) == 0x00030000) |
| 915 | return 3; // long non icreasing |
| 916 | if ((word & 0xFFFFFFFF) == 0x00020000) |
| 917 | return 2; // return |
| 918 | if ((word & 0xFFFF0003) == 0x00010000) |
| 919 | return 1; // sli conditional |
| 920 | if ((word & 0xE0030003) == 0x00000000) |
| 921 | return 0; // increasing |
| 922 | return -1; |
| 923 | } |
| 924 | |
| 925 | UINT32 nv2a_renderer::geforce_object_offset(UINT32 handle) |
| 926 | { |
| 927 | UINT32 h = ((((handle >> 11) ^ handle) >> 11) ^ handle) & 0x7ff; |
| 928 | UINT32 o = (pfifo[0x210 / 4] & 0x1f) << 8; // or 12 ? |
| 929 | UINT32 e = o + h * 8; // at 0xfd000000+0x00700000 |
| 930 | UINT32 w; |
| 931 | |
| 932 | if (ramin[e / 4] != handle) |
| 933 | e = 0; |
| 934 | w = ramin[e / 4 + 1]; |
| 935 | return (w & 0xffff) * 0x10; |
| 936 | } |
| 937 | |
| 938 | void nv2a_renderer::geforce_read_dma_object(UINT32 handle, UINT32 &offset, UINT32 &size) |
| 939 | { |
| 940 | //UINT32 objclass,pt_present,pt_linear,access,target,rorw; |
| 941 | UINT32 dma_adjust, dma_frame; |
| 942 | UINT32 o = geforce_object_offset(handle); |
| 943 | |
| 944 | o = o / 4; |
| 945 | //objclass=ramin[o] & 0xfff; |
| 946 | //pt_present=(ramin[o] >> 12) & 1; |
| 947 | //pt_linear=(ramin[o] >> 13) & 1; |
| 948 | //access=(ramin[o] >> 14) & 3; |
| 949 | //target=(ramin[o] >> 16) & 3; |
| 950 | dma_adjust = (ramin[o] >> 20) & 0xfff; |
| 951 | size = ramin[o + 1]; |
| 952 | //rorw=ramin[o+2] & 1; |
| 953 | dma_frame = ramin[o + 2] & 0xfffff000; |
| 954 | offset = dma_frame + dma_adjust; |
| 955 | } |
| 956 | |
| 957 | /*void myline(bitmap_rgb32 &bmp,float x1,float y1,float x2,float y2) |
| 958 | { |
| 959 | int xx1,yy1,xx2,yy2; |
| 960 | |
| 961 | xx1=x1; |
| 962 | xx2=x2; |
| 963 | yy1=y1; |
| 964 | yy2=y2; |
| 965 | if (xx1 == xx2) { |
| 966 | if (yy1 > yy2) { |
| 967 | int t=yy1; |
| 968 | yy1=yy2; |
| 969 | yy2=t; |
| 970 | } |
| 971 | for (int y=yy1;y <= yy2;y++) |
| 972 | *((UINT32 *)bmp.raw_pixptr(y,xx1))= -1; |
| 973 | } else if (yy1 == yy2) { |
| 974 | if (xx1 > xx2) { |
| 975 | int t=xx1; |
| 976 | xx1=xx2; |
| 977 | xx2=t; |
| 978 | } |
| 979 | for (int x=xx1;x <= xx2;x++) |
| 980 | *((UINT32 *)bmp.raw_pixptr(yy1,x))= -1; |
| 981 | } |
| 982 | }*/ |
| 983 | |
| 984 | inline UINT32 convert_a4r4g4b4_a8r8g8b8(UINT32 a4r4g4b4) |
| 985 | { |
| 986 | UINT32 a8r8g8b8; |
| 987 | int ca, cr, cg, cb; |
| 988 | |
| 989 | cb = pal4bit(a4r4g4b4 & 0x000f); |
| 990 | cg = pal4bit((a4r4g4b4 & 0x00f0) >> 4); |
| 991 | cr = pal4bit((a4r4g4b4 & 0x0f00) >> 8); |
| 992 | ca = pal4bit((a4r4g4b4 & 0xf000) >> 12); |
| 993 | a8r8g8b8 = (ca << 24) | (cr << 16) | (cg << 8) | (cb); // color converted to 8 bits per component |
| 994 | return a8r8g8b8; |
| 995 | } |
| 996 | |
| 997 | inline UINT32 convert_a1r5g5b5_a8r8g8b8(UINT32 a1r5g5b5) |
| 998 | { |
| 999 | UINT32 a8r8g8b8; |
| 1000 | int ca, cr, cg, cb; |
| 1001 | |
| 1002 | cb = pal5bit(a1r5g5b5 & 0x001f); |
| 1003 | cg = pal5bit((a1r5g5b5 & 0x03e0) >> 5); |
| 1004 | cr = pal5bit((a1r5g5b5 & 0x7c00) >> 10); |
| 1005 | ca = a1r5g5b5 & 0x8000 ? 0xff : 0; |
| 1006 | a8r8g8b8 = (ca << 24) | (cr << 16) | (cg << 8) | (cb); // color converted to 8 bits per component |
| 1007 | return a8r8g8b8; |
| 1008 | } |
| 1009 | |
| 1010 | inline UINT32 convert_r5g6b5_r8g8b8(UINT32 r5g6b5) |
| 1011 | { |
| 1012 | UINT32 r8g8b8; |
| 1013 | int cr, cg, cb; |
| 1014 | |
| 1015 | cb = pal5bit(r5g6b5 & 0x001f); |
| 1016 | cg = pal6bit((r5g6b5 & 0x07e0) >> 5); |
| 1017 | cr = pal5bit((r5g6b5 & 0xf800) >> 11); |
| 1018 | r8g8b8 = (cr << 16) | (cg << 8) | (cb); // color converted to 8 bits per component |
| 1019 | return r8g8b8; |
| 1020 | } |
| 1021 | |
| 1022 | UINT32 nv2a_renderer::texture_get_texel(int number, int x, int y) |
| 1023 | { |
| 1024 | UINT32 to, s, c, sa, ca; |
| 1025 | UINT32 a4r4g4b4, a1r5g5b5, r5g6b5; |
| 1026 | int bx, by; |
| 1027 | int color0, color1, color0m2, color1m2, alpha0, alpha1; |
| 1028 | UINT32 codes; |
| 1029 | UINT64 alphas; |
| 1030 | int cr, cg, cb; |
| 1031 | |
| 1032 | // force to [0,size-1] |
| 1033 | x = (unsigned int)x & (texture[number].sizeu - 1); |
| 1034 | y = (unsigned int)y & (texture[number].sizev - 1); |
| 1035 | switch (texture[number].format) { |
| 1036 | case A8R8G8B8: |
| 1037 | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 1038 | return *(((UINT32 *)texture[number].buffer) + to); // get texel color |
| 1039 | case DXT1: |
| 1040 | bx = x >> 2; |
| 1041 | by = y >> 2; |
| 1042 | x = x & 3; |
| 1043 | y = y & 3; |
| 1044 | to = bx + by*(texture[number].sizeu >> 2); |
| 1045 | color0 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 0); |
| 1046 | color1 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 1); |
| 1047 | codes = *((UINT32 *)(((UINT64 *)texture[number].buffer) + to) + 1); |
| 1048 | s = (y << 3) + (x << 1); |
| 1049 | c = (codes >> s) & 3; |
| 1050 | c = c + (color0 > color1 ? 0 : 4); |
| 1051 | color0m2 = color0 << 1; |
| 1052 | color1m2 = color1 << 1; |
| 1053 | switch (c) { |
| 1054 | case 0: |
| 1055 | return 0xff000000 + convert_r5g6b5_r8g8b8(color0); |
| 1056 | case 1: |
| 1057 | return 0xff000000 + convert_r5g6b5_r8g8b8(color1); |
| 1058 | case 2: |
| 1059 | cb = pal5bit(((color0m2 & 0x003e) + (color1 & 0x001f)) / 3); |
| 1060 | cg = pal6bit(((color0m2 & 0x0fc0) + (color1 & 0x07e0)) / 3 >> 5); |
| 1061 | cr = pal5bit(((color0m2 & 0x1f000) + color1) / 3 >> 11); |
| 1062 | return 0xff000000 | (cr << 16) | (cg << 8) | (cb); |
| 1063 | case 3: |
| 1064 | cb = pal5bit(((color1m2 & 0x003e) + (color0 & 0x001f)) / 3); |
| 1065 | cg = pal6bit(((color1m2 & 0x0fc0) + (color0 & 0x07e0)) / 3 >> 5); |
| 1066 | cr = pal5bit(((color1m2 & 0x1f000) + color0) / 3 >> 11); |
| 1067 | return 0xff000000 | (cr << 16) | (cg << 8) | (cb); |
| 1068 | case 4: |
| 1069 | return 0xff000000 + convert_r5g6b5_r8g8b8(color0); |
| 1070 | case 5: |
| 1071 | return 0xff000000 + convert_r5g6b5_r8g8b8(color1); |
| 1072 | case 6: |
| 1073 | cb = pal5bit(((color0 & 0x001f) + (color1 & 0x001f)) / 2); |
| 1074 | cg = pal6bit(((color0 & 0x07e0) + (color1 & 0x07e0)) / 2 >> 5); |
| 1075 | cr = pal5bit(((color0 & 0xf800) + (color1 & 0xf800)) / 2 >> 11); |
| 1076 | return 0xff000000 | (cr << 16) | (cg << 8) | (cb); |
| 1077 | default: |
| 1078 | return 0xff000000; |
| 1079 | } |
| 1080 | case DXT3: |
| 1081 | bx = x >> 2; |
| 1082 | by = y >> 2; |
| 1083 | x = x & 3; |
| 1084 | y = y & 3; |
| 1085 | to = (bx + by*(texture[number].sizeu >> 2)) << 1; |
| 1086 | color0 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 4); |
| 1087 | color1 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 5); |
| 1088 | codes = *((UINT32 *)(((UINT64 *)texture[number].buffer) + to) + 3); |
| 1089 | alphas = *(((UINT64 *)texture[number].buffer) + to); |
| 1090 | s = (y << 3) + (x << 1); |
| 1091 | sa = ((y << 2) + x) << 2; |
| 1092 | c = (codes >> s) & 3; |
| 1093 | ca = (alphas >> sa) & 15; |
| 1094 | switch (c) { |
| 1095 | case 0: |
| 1096 | return ((ca + (ca << 4)) << 24) + convert_r5g6b5_r8g8b8(color0); |
| 1097 | case 1: |
| 1098 | return ((ca + (ca << 4)) << 24) + convert_r5g6b5_r8g8b8(color1); |
| 1099 | case 2: |
| 1100 | cb = pal5bit((2 * (color0 & 0x001f) + (color1 & 0x001f)) / 3); |
| 1101 | cg = pal6bit((2 * (color0 & 0x07e0) + (color1 & 0x07e0)) / 3 >> 5); |
| 1102 | cr = pal5bit((2 * (color0 & 0xf800) + (color1 & 0xf800)) / 3 >> 11); |
| 1103 | return ((ca + (ca << 4)) << 24) | (cr << 16) | (cg << 8) | (cb); |
| 1104 | default: |
| 1105 | cb = pal5bit(((color0 & 0x001f) + 2 * (color1 & 0x001f)) / 3); |
| 1106 | cg = pal6bit(((color0 & 0x07e0) + 2 * (color1 & 0x07e0)) / 3 >> 5); |
| 1107 | cr = pal5bit(((color0 & 0xf800) + 2 * (color1 & 0xf800)) / 3 >> 11); |
| 1108 | return ((ca + (ca << 4)) << 24) | (cr << 16) | (cg << 8) | (cb); |
| 1109 | } |
| 1110 | case A4R4G4B4: |
| 1111 | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 1112 | a4r4g4b4 = *(((UINT16 *)texture[number].buffer) + to); // get texel color |
| 1113 | return convert_a4r4g4b4_a8r8g8b8(a4r4g4b4); |
| 1114 | case A1R5G5B5: |
| 1115 | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 1116 | a1r5g5b5 = *(((UINT16 *)texture[number].buffer) + to); // get texel color |
| 1117 | return convert_a1r5g5b5_a8r8g8b8(a1r5g5b5); |
| 1118 | case R5G6B5: |
| 1119 | to = dilated0[texture[number].dilate][x] + dilated1[texture[number].dilate][y]; // offset of texel in texture memory |
| 1120 | r5g6b5 = *(((UINT16 *)texture[number].buffer) + to); // get texel color |
| 1121 | return 0xff000000 + convert_r5g6b5_r8g8b8(r5g6b5); |
| 1122 | case R8G8B8_RECT: |
| 1123 | to = texture[number].rectangle_pitch*y + (x << 2); |
| 1124 | return *((UINT32 *)(((UINT8 *)texture[number].buffer) + to)); |
| 1125 | case A8R8G8B8_RECT: |
| 1126 | to = texture[number].rectangle_pitch*y + (x << 2); |
| 1127 | return *((UINT32 *)(((UINT8 *)texture[number].buffer) + to)); |
| 1128 | case DXT5: |
| 1129 | bx = x >> 2; |
| 1130 | by = y >> 2; |
| 1131 | x = x & 3; |
| 1132 | y = y & 3; |
| 1133 | to = (bx + by*(texture[number].sizeu >> 2)) << 1; |
| 1134 | color0 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 4); |
| 1135 | color1 = *((UINT16 *)(((UINT64 *)texture[number].buffer) + to) + 5); |
| 1136 | codes = *((UINT32 *)(((UINT64 *)texture[number].buffer) + to) + 3); |
| 1137 | alpha0 = *((UINT8 *)(((UINT64 *)texture[number].buffer) + to) + 0); |
| 1138 | alpha1 = *((UINT8 *)(((UINT64 *)texture[number].buffer) + to) + 1); |
| 1139 | alphas = *(((UINT64 *)texture[number].buffer) + to); |
| 1140 | s = (y << 3) + (x << 1); |
| 1141 | sa = ((y << 2) + x) * 3; |
| 1142 | c = (codes >> s) & 3; |
| 1143 | ca = (alphas >> sa) & 7; |
| 1144 | ca = ca + (alpha0 > alpha1 ? 0 : 8); |
| 1145 | switch (ca) { |
| 1146 | case 0: |
| 1147 | ca = alpha0; |
| 1148 | break; |
| 1149 | case 1: |
| 1150 | ca = alpha1; |
| 1151 | break; |
| 1152 | case 2: |
| 1153 | ca = (6 * alpha0 + 1 * alpha1) / 7; |
| 1154 | break; |
| 1155 | case 3: |
| 1156 | ca = (5 * alpha0 + 2 * alpha1) / 7; |
| 1157 | break; |
| 1158 | case 4: |
| 1159 | ca = (4 * alpha0 + 3 * alpha1) / 7; |
| 1160 | break; |
| 1161 | case 5: |
| 1162 | ca = (3 * alpha0 + 4 * alpha1) / 7; |
| 1163 | break; |
| 1164 | case 6: |
| 1165 | ca = (2 * alpha0 + 5 * alpha1) / 7; |
| 1166 | break; |
| 1167 | case 7: |
| 1168 | ca = (1 * alpha0 + 6 * alpha1) / 7; |
| 1169 | break; |
| 1170 | case 8: |
| 1171 | ca = alpha0; |
| 1172 | break; |
| 1173 | case 9: |
| 1174 | ca = alpha1; |
| 1175 | break; |
| 1176 | case 10: |
| 1177 | ca = (4 * alpha0 + 1 * alpha1) / 5; |
| 1178 | break; |
| 1179 | case 11: |
| 1180 | ca = (3 * alpha0 + 2 * alpha1) / 5; |
| 1181 | break; |
| 1182 | case 12: |
| 1183 | ca = (2 * alpha0 + 3 * alpha1) / 5; |
| 1184 | break; |
| 1185 | case 13: |
| 1186 | ca = (1 * alpha0 + 4 * alpha1) / 5; |
| 1187 | break; |
| 1188 | case 14: |
| 1189 | ca = 0; |
| 1190 | break; |
| 1191 | case 15: |
| 1192 | ca = 255; |
| 1193 | break; |
| 1194 | } |
| 1195 | switch (c) { |
| 1196 | case 0: |
| 1197 | return (ca << 24) + convert_r5g6b5_r8g8b8(color0); |
| 1198 | case 1: |
| 1199 | return (ca << 24) + convert_r5g6b5_r8g8b8(color1); |
| 1200 | case 2: |
| 1201 | cb = pal5bit((2 * (color0 & 0x001f) + (color1 & 0x001f)) / 3); |
| 1202 | cg = pal6bit((2 * (color0 & 0x07e0) + (color1 & 0x07e0)) / 3 >> 5); |
| 1203 | cr = pal5bit((2 * (color0 & 0xf800) + (color1 & 0xf800)) / 3 >> 11); |
| 1204 | return (ca << 24) | (cr << 16) | (cg << 8) | (cb); |
| 1205 | default: |
| 1206 | cb = pal5bit(((color0 & 0x001f) + 2 * (color1 & 0x001f)) / 3); |
| 1207 | cg = pal6bit(((color0 & 0x07e0) + 2 * (color1 & 0x07e0)) / 3 >> 5); |
| 1208 | cr = pal5bit(((color0 & 0xf800) + 2 * (color1 & 0xf800)) / 3 >> 11); |
| 1209 | return (ca << 24) | (cr << 16) | (cg << 8) | (cb); |
| 1210 | } |
| 1211 | default: |
| 1212 | return 0xff00ff00; |
| 1213 | } |
| 1214 | } |
| 1215 | |
| 1216 | void nv2a_renderer::write_pixel(int x, int y, UINT32 color) |
| 1217 | { |
| 1218 | void *addr; |
| 1219 | UINT32 fbcolor; |
| 1220 | UINT32 c[4], fb[4], s[4], d[4], cc[4]; |
| 1221 | |
| 1222 | addr = this->fb.raw_pixptr(y, x); |
| 1223 | fbcolor = *((UINT32 *)addr); |
| 1224 | c[3] = color >> 24; |
| 1225 | c[2] = (color >> 16) & 255; |
| 1226 | c[1] = (color >> 8) & 255; |
| 1227 | c[0] = color & 255; |
| 1228 | fb[3] = fbcolor >> 24; |
| 1229 | fb[2] = (fbcolor >> 16) & 255; |
| 1230 | fb[1] = (fbcolor >> 8) & 255; |
| 1231 | fb[0] = fbcolor & 255; |
| 1232 | cc[3] = blend_color >> 24; |
| 1233 | cc[2] = (blend_color >> 16) & 255; |
| 1234 | cc[1] = (blend_color >> 8) & 255; |
| 1235 | cc[0] = blend_color & 255; |
| 1236 | // ownership test and scissor test not done |
| 1237 | // alpha test |
| 1238 | if (alpha_test_enabled) { |
| 1239 | switch (alpha_func) { |
| 1240 | case nv2a_renderer::NEVER: |
| 1241 | return; |
| 1242 | case nv2a_renderer::ALWAYS: |
| 1243 | default: |
| 1244 | break; |
| 1245 | case nv2a_renderer::LESS: |
| 1246 | if (c[3] >= alpha_reference) |
| 1247 | return; |
| 1248 | break; |
| 1249 | case nv2a_renderer::LEQUAL: |
| 1250 | if (c[3] > alpha_reference) |
| 1251 | return; |
| 1252 | break; |
| 1253 | case nv2a_renderer::EQUAL: |
| 1254 | if (c[3] != alpha_reference) |
| 1255 | return; |
| 1256 | break; |
| 1257 | case nv2a_renderer::GEQUAL: |
| 1258 | if (c[3] < alpha_reference) |
| 1259 | return; |
| 1260 | break; |
| 1261 | case nv2a_renderer::GREATER: |
| 1262 | if (c[3] <= alpha_reference) |
| 1263 | return; |
| 1264 | break; |
| 1265 | case nv2a_renderer::NOTEQUAL: |
| 1266 | if (c[3] == alpha_reference) |
| 1267 | return; |
| 1268 | break; |
| 1269 | } |
| 1270 | } |
| 1271 | // stencil test not done |
| 1272 | // depth buffer test not done |
| 1273 | // blending |
| 1274 | if (blending_enabled) { |
| 1275 | switch (blend_function_source) { |
| 1276 | case nv2a_renderer::ZERO: |
| 1277 | s[3] = s[2] = s[1] = s[0] = 0; |
| 1278 | break; |
| 1279 | case nv2a_renderer::ONE: |
| 1280 | default: |
| 1281 | s[3] = s[2] = s[1] = s[0] = 255; |
| 1282 | break; |
| 1283 | case nv2a_renderer::DST_COLOR: |
| 1284 | s[3] = fb[3]; |
| 1285 | s[2] = fb[2]; |
| 1286 | s[1] = fb[1]; |
| 1287 | s[0] = fb[0]; |
| 1288 | break; |
| 1289 | case nv2a_renderer::ONE_MINUS_DST_COLOR: |
| 1290 | s[3] = fb[3] ^ 255; |
| 1291 | s[2] = fb[2] ^ 255; |
| 1292 | s[1] = fb[1] ^ 255; |
| 1293 | s[0] = fb[0] ^ 255; |
| 1294 | break; |
| 1295 | case nv2a_renderer::SRC_ALPHA: |
| 1296 | s[3] = s[2] = s[1] = s[0] = c[3]; |
| 1297 | break; |
| 1298 | case nv2a_renderer::ONE_MINUS_SRC_ALPHA: |
| 1299 | s[3] = s[2] = s[1] = s[0] = c[3] ^ 255; |
| 1300 | break; |
| 1301 | case nv2a_renderer::DST_ALPHA: |
| 1302 | s[3] = s[2] = s[1] = s[0] = fb[3]; |
| 1303 | break; |
| 1304 | case nv2a_renderer::ONE_MINUS_DST_ALPHA: |
| 1305 | s[3] = s[2] = s[1] = s[0] = fb[3] ^ 255; |
| 1306 | break; |
| 1307 | case nv2a_renderer::CONSTANT_COLOR: |
| 1308 | s[3] = cc[3]; |
| 1309 | s[2] = cc[2]; |
| 1310 | s[1] = cc[1]; |
| 1311 | s[0] = cc[0]; |
| 1312 | break; |
| 1313 | case nv2a_renderer::ONE_MINUS_CONSTANT_COLOR: |
| 1314 | s[3] = cc[3] ^ 255; |
| 1315 | s[2] = cc[2] ^ 255; |
| 1316 | s[1] = cc[1] ^ 255; |
| 1317 | s[0] = cc[0] ^ 255; |
| 1318 | break; |
| 1319 | case nv2a_renderer::CONSTANT_ALPHA: |
| 1320 | s[3] = s[2] = s[1] = s[0] = cc[3]; |
| 1321 | break; |
| 1322 | case nv2a_renderer::ONE_MINUS_CONSTANT_ALPHA: |
| 1323 | s[3] = s[2] = s[1] = s[0] = cc[3] ^ 255; |
| 1324 | break; |
| 1325 | case nv2a_renderer::SRC_ALPHA_SATURATE: |
| 1326 | s[3] = 255; |
| 1327 | if (c[3] < (fb[3] ^ 255)) |
| 1328 | s[2] = c[3]; |
| 1329 | else |
| 1330 | s[2] = fb[3]; |
| 1331 | s[1] = s[0] = s[2]; |
| 1332 | break; |
| 1333 | } |
| 1334 | switch (blend_function_destination) { |
| 1335 | case nv2a_renderer::ZERO: |
| 1336 | default: |
| 1337 | d[3] = d[2] = d[1] = d[0] = 0; |
| 1338 | break; |
| 1339 | case nv2a_renderer::ONE: |
| 1340 | d[3] = d[2] = d[1] = d[0] = 255; |
| 1341 | break; |
| 1342 | case nv2a_renderer::SRC_COLOR: |
| 1343 | d[3] = c[3]; |
| 1344 | d[2] = c[2]; |
| 1345 | d[1] = c[1]; |
| 1346 | d[0] = c[0]; |
| 1347 | break; |
| 1348 | case nv2a_renderer::ONE_MINUS_SRC_COLOR: |
| 1349 | d[3] = c[3] ^ 255; |
| 1350 | d[2] = c[2] ^ 255; |
| 1351 | d[1] = c[1] ^ 255; |
| 1352 | d[0] = c[0] ^ 255; |
| 1353 | break; |
| 1354 | case nv2a_renderer::SRC_ALPHA: |
| 1355 | d[3] = d[2] = d[1] = d[0] = c[3]; |
| 1356 | break; |
| 1357 | case nv2a_renderer::ONE_MINUS_SRC_ALPHA: |
| 1358 | d[3] = d[2] = d[1] = d[0] = c[3] ^ 255; |
| 1359 | break; |
| 1360 | case nv2a_renderer::DST_ALPHA: |
| 1361 | d[3] = d[2] = d[1] = d[0] = fb[3]; |
| 1362 | break; |
| 1363 | case nv2a_renderer::ONE_MINUS_DST_ALPHA: |
| 1364 | d[3] = d[2] = d[1] = d[0] = fb[3] ^ 255; |
| 1365 | break; |
| 1366 | case nv2a_renderer::CONSTANT_COLOR: |
| 1367 | d[3] = cc[3]; |
| 1368 | d[2] = cc[2]; |
| 1369 | d[1] = cc[1]; |
| 1370 | d[0] = cc[0]; |
| 1371 | break; |
| 1372 | case nv2a_renderer::ONE_MINUS_CONSTANT_COLOR: |
| 1373 | d[3] = cc[3] ^ 255; |
| 1374 | d[2] = cc[2] ^ 255; |
| 1375 | d[1] = cc[1] ^ 255; |
| 1376 | d[0] = cc[0] ^ 255; |
| 1377 | break; |
| 1378 | case nv2a_renderer::CONSTANT_ALPHA: |
| 1379 | d[3] = d[2] = d[1] = d[0] = cc[3]; |
| 1380 | break; |
| 1381 | case nv2a_renderer::ONE_MINUS_CONSTANT_ALPHA: |
| 1382 | d[3] = d[2] = d[1] = d[0] = cc[3] ^ 255; |
| 1383 | break; |
| 1384 | } |
| 1385 | switch (blend_equation) { |
| 1386 | case nv2a_renderer::FUNC_ADD: |
| 1387 | c[3] = (c[3] * s[3] + fb[3] * d[3]) / 255; |
| 1388 | if (c[3] > 255) |
| 1389 | c[3] = 255; |
| 1390 | c[2] = (c[2] * s[2] + fb[2] * d[2]) / 255; |
| 1391 | if (c[2] > 255) |
| 1392 | c[2] = 255; |
| 1393 | c[1] = (c[1] * s[1] + fb[1] * d[1]) / 255; |
| 1394 | if (c[1] > 255) |
| 1395 | c[1] = 255; |
| 1396 | c[0] = (c[0] * s[0] + fb[0] * d[0]) / 255; |
| 1397 | if (c[0] > 255) |
| 1398 | c[0] = 255; |
| 1399 | break; |
| 1400 | case nv2a_renderer::FUNC_SUBTRACT: |
| 1401 | c[3] = (c[3] * s[3] - fb[3] * d[3]) / 255; |
| 1402 | if (c[3] < 0) |
| 1403 | c[3] = 255; |
| 1404 | c[2] = (c[2] * s[2] - fb[2] * d[2]) / 255; |
| 1405 | if (c[2] < 0) |
| 1406 | c[2] = 255; |
| 1407 | c[1] = (c[1] * s[1] - fb[1] * d[1]) / 255; |
| 1408 | if (c[1] < 0) |
| 1409 | c[1] = 255; |
| 1410 | c[0] = (c[0] * s[0] - fb[0] * d[0]) / 255; |
| 1411 | if (c[0] < 0) |
| 1412 | c[0] = 255; |
| 1413 | break; |
| 1414 | case nv2a_renderer::FUNC_REVERSE_SUBTRACT: |
| 1415 | c[3] = (fb[3] * d[3] - c[3] * s[3]) / 255; |
| 1416 | if (c[3] < 0) |
| 1417 | c[3] = 255; |
| 1418 | c[2] = (fb[2] * d[2] - c[2] * s[2]) / 255; |
| 1419 | if (c[2] < 0) |
| 1420 | c[2] = 255; |
| 1421 | c[1] = (fb[1] * d[1] - c[1] * s[1]) / 255; |
| 1422 | if (c[1] < 0) |
| 1423 | c[1] = 255; |
| 1424 | c[0] = (fb[0] * d[0] - c[0] * s[0]) / 255; |
| 1425 | if (c[0] < 0) |
| 1426 | c[0] = 255; |
| 1427 | break; |
| 1428 | case nv2a_renderer::MIN: |
| 1429 | c[3] = s[3]; |
| 1430 | if (d[3] < c[3]) |
| 1431 | c[3] = d[3]; |
| 1432 | c[2] = s[2]; |
| 1433 | if (d[2] < c[2]) |
| 1434 | c[2] = d[2]; |
| 1435 | c[1] = s[1]; |
| 1436 | if (d[1] < c[1]) |
| 1437 | c[1] = d[1]; |
| 1438 | c[0] = s[0]; |
| 1439 | if (d[0] < c[0]) |
| 1440 | c[0] = d[0]; |
| 1441 | break; |
| 1442 | case nv2a_renderer::MAX: |
| 1443 | c[3] = s[3]; |
| 1444 | if (d[3] > c[3]) |
| 1445 | c[3] = d[3]; |
| 1446 | c[2] = s[2]; |
| 1447 | if (d[2] > c[2]) |
| 1448 | c[2] = d[2]; |
| 1449 | c[1] = s[1]; |
| 1450 | if (d[1] > c[1]) |
| 1451 | c[1] = d[1]; |
| 1452 | c[0] = s[0]; |
| 1453 | if (d[0] > c[0]) |
| 1454 | c[0] = d[0]; |
| 1455 | break; |
| 1456 | } |
| 1457 | } |
| 1458 | // dithering not done |
| 1459 | // logical operation |
| 1460 | if (logical_operation_enabled) { |
| 1461 | switch (logical_operation) { |
| 1462 | case nv2a_renderer::CLEAR: |
| 1463 | c[3] = 0; |
| 1464 | c[2] = 0; |
| 1465 | c[1] = 0; |
| 1466 | c[0] = 0; |
| 1467 | break; |
| 1468 | case nv2a_renderer::AND: |
| 1469 | c[3] = c[3] & fb[3]; |
| 1470 | c[2] = c[2] & fb[2]; |
| 1471 | c[1] = c[1] & fb[1]; |
| 1472 | c[0] = c[0] & fb[0]; |
| 1473 | break; |
| 1474 | case nv2a_renderer::AND_REVERSE: |
| 1475 | c[3] = c[3] & (fb[3] ^ 255); |
| 1476 | c[2] = c[2] & (fb[2] ^ 255); |
| 1477 | c[1] = c[1] & (fb[1] ^ 255); |
| 1478 | c[0] = c[0] & (fb[0] ^ 255); |
| 1479 | break; |
| 1480 | case nv2a_renderer::COPY: |
| 1481 | default: |
| 1482 | break; |
| 1483 | case nv2a_renderer::AND_INVERTED: |
| 1484 | c[3] = (c[3] ^ 255) & fb[3]; |
| 1485 | c[2] = (c[2] ^ 255) & fb[2]; |
| 1486 | c[1] = (c[1] ^ 255) & fb[1]; |
| 1487 | c[0] = (c[0] ^ 255) & fb[0]; |
| 1488 | break; |
| 1489 | case nv2a_renderer::NOOP: |
| 1490 | c[3] = fb[3]; |
| 1491 | c[2] = fb[2]; |
| 1492 | c[1] = fb[1]; |
| 1493 | c[0] = fb[0]; |
| 1494 | break; |
| 1495 | case nv2a_renderer::XOR: |
| 1496 | c[3] = c[3] ^ fb[3]; |
| 1497 | c[2] = c[2] ^ fb[2]; |
| 1498 | c[1] = c[1] ^ fb[1]; |
| 1499 | c[0] = c[0] ^ fb[0]; |
| 1500 | break; |
| 1501 | case nv2a_renderer::OR: |
| 1502 | c[3] = c[3] | fb[3]; |
| 1503 | c[2] = c[2] | fb[2]; |
| 1504 | c[1] = c[1] | fb[1]; |
| 1505 | c[0] = c[0] | fb[0]; |
| 1506 | break; |
| 1507 | case nv2a_renderer::NOR: |
| 1508 | c[3] = (c[3] | fb[3]) ^ 255; |
| 1509 | c[2] = (c[2] | fb[2]) ^ 255; |
| 1510 | c[1] = (c[1] | fb[1]) ^ 255; |
| 1511 | c[0] = (c[0] | fb[0]) ^ 255; |
| 1512 | break; |
| 1513 | case nv2a_renderer::EQUIV: |
| 1514 | c[3] = (c[3] ^ fb[3]) ^ 255; |
| 1515 | c[2] = (c[2] ^ fb[2]) ^ 255; |
| 1516 | c[1] = (c[1] ^ fb[1]) ^ 255; |
| 1517 | c[0] = (c[0] ^ fb[0]) ^ 255; |
| 1518 | break; |
| 1519 | case nv2a_renderer::INVERT: |
| 1520 | c[3] = fb[3] ^ 255; |
| 1521 | c[2] = fb[2] ^ 255; |
| 1522 | c[1] = fb[1] ^ 255; |
| 1523 | c[0] = fb[0] ^ 255; |
| 1524 | break; |
| 1525 | case nv2a_renderer::OR_REVERSE: |
| 1526 | c[3] = c[3] | (fb[3] ^ 255); |
| 1527 | c[2] = c[2] | (fb[2] ^ 255); |
| 1528 | c[1] = c[1] | (fb[1] ^ 255); |
| 1529 | c[0] = c[0] | (fb[0] ^ 255); |
| 1530 | break; |
| 1531 | case nv2a_renderer::COPY_INVERTED: |
| 1532 | c[3] = c[3] ^ 255; |
| 1533 | c[2] = c[2] ^ 255; |
| 1534 | c[1] = c[1] ^ 255; |
| 1535 | c[0] = c[0] ^ 255; |
| 1536 | break; |
| 1537 | case nv2a_renderer::OR_INVERTED: |
| 1538 | c[3] = (c[3] ^ 255) | fb[3]; |
| 1539 | c[2] = (c[2] ^ 255) | fb[2]; |
| 1540 | c[1] = (c[1] ^ 255) | fb[1]; |
| 1541 | c[0] = (c[0] ^ 255) | fb[0]; |
| 1542 | break; |
| 1543 | case nv2a_renderer::NAND: |
| 1544 | c[3] = (c[3] & fb[3]) ^ 255; |
| 1545 | c[2] = (c[2] & fb[2]) ^ 255; |
| 1546 | c[1] = (c[1] & fb[1]) ^ 255; |
| 1547 | c[0] = (c[0] & fb[0]) ^ 255; |
| 1548 | break; |
| 1549 | case nv2a_renderer::SET: |
| 1550 | c[3] = 255; |
| 1551 | c[2] = 255; |
| 1552 | c[1] = 255; |
| 1553 | c[0] = 255; |
| 1554 | break; |
| 1555 | } |
| 1556 | } |
| 1557 | fbcolor = (c[3] << 24) | (c[2] << 16) | (c[1] << 8) | c[0]; |
| 1558 | *((UINT32 *)addr) = fbcolor; |
| 1559 | } |
| 1560 | |
| 1561 | void nv2a_renderer::render_color(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid) |
| 1562 | { |
| 1563 | int x; |
| 1564 | |
| 1565 | if ((extent.startx < 0) || (extent.stopx > 640)) |
| 1566 | return; |
| 1567 | x = extent.stopx - extent.startx - 1; // number of pixels to draw |
| 1568 | while (x >= 0) { |
| 1569 | UINT32 a8r8g8b8; |
| 1570 | int ca, cr, cg, cb; |
| 1571 | int xp = extent.startx + x; // x coordinate of current pixel |
| 1572 | |
| 1573 | cb = ((extent.param[0].start + (float)x*extent.param[0].dpdx))*255.0; |
| 1574 | cg = ((extent.param[1].start + (float)x*extent.param[1].dpdx))*255.0; |
| 1575 | cr = ((extent.param[2].start + (float)x*extent.param[2].dpdx))*255.0; |
| 1576 | ca = ((extent.param[3].start + (float)x*extent.param[3].dpdx))*255.0; |
| 1577 | a8r8g8b8 = (ca << 24) + (cr << 16) + (cg << 8) + cb; // pixel color obtained by interpolating the colors of the vertices |
| 1578 | write_pixel(xp, scanline, a8r8g8b8); |
| 1579 | x--; |
| 1580 | } |
| 1581 | } |
| 1582 | |
| 1583 | void nv2a_renderer::render_texture_simple(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid) |
| 1584 | { |
| 1585 | int x; |
| 1586 | UINT32 a8r8g8b8; |
| 1587 | |
| 1588 | if (!objectdata.data->texture[0].enabled) { |
| 1589 | return; |
| 1590 | } |
| 1591 | if ((extent.startx < 0) || (extent.stopx > 640)) |
| 1592 | return; |
| 1593 | x = extent.stopx - extent.startx - 1; |
| 1594 | while (x >= 0) { |
| 1595 | int up, vp; |
| 1596 | int xp = extent.startx + x; // x coordinate of current pixel |
| 1597 | |
| 1598 | up = (extent.param[4].start + (float)x*extent.param[4].dpdx)*(float)(objectdata.data->texture[0].sizeu - 1); // x coordinate of texel in texture |
| 1599 | vp = extent.param[5].start*(float)(objectdata.data->texture[0].sizev - 1); // y coordinate of texel in texture |
| 1600 | a8r8g8b8 = texture_get_texel(0, up, vp); |
| 1601 | write_pixel(xp, scanline, a8r8g8b8); |
| 1602 | x--; |
| 1603 | } |
| 1604 | } |
| 1605 | |
| 1606 | void nv2a_renderer::render_register_combiners(INT32 scanline, const extent_t &extent, const nvidia_object_data &objectdata, int threadid) |
| 1607 | { |
| 1608 | int x, xp; |
| 1609 | int up, vp; |
| 1610 | int ca, cr, cg, cb; |
| 1611 | UINT32 color[6]; |
| 1612 | UINT32 a8r8g8b8; |
| 1613 | int n;//,m,i,j,k; |
| 1614 | |
| 1615 | color[0] = color[1] = color[2] = color[3] = color[4] = color[5] = 0; |
| 1616 | |
| 1617 | if ((extent.startx < 0) || (extent.stopx > 640)) |
| 1618 | return; |
| 1619 | osd_lock_acquire(combiner.lock); // needed since multithreading is not supported yet |
| 1620 | x = extent.stopx - extent.startx - 1; // number of pixels to draw |
| 1621 | while (x >= 0) { |
| 1622 | xp = extent.startx + x; |
| 1623 | // 1: fetch data |
| 1624 | // 1.1: interpolated color from vertices |
| 1625 | cb = ((extent.param[0].start + (float)x*extent.param[0].dpdx))*255.0; |
| 1626 | cg = ((extent.param[1].start + (float)x*extent.param[1].dpdx))*255.0; |
| 1627 | cr = ((extent.param[2].start + (float)x*extent.param[2].dpdx))*255.0; |
| 1628 | ca = ((extent.param[3].start + (float)x*extent.param[3].dpdx))*255.0; |
| 1629 | color[0] = (ca << 24) + (cr << 16) + (cg << 8) + cb; // pixel color obtained by interpolating the colors of the vertices |
| 1630 | color[1] = 0; // lighting not yet |
| 1631 | // 1.2: color for each of the 4 possible textures |
| 1632 | for (n = 0; n < 4; n++) { |
| 1633 | if (texture[n].enabled) { |
| 1634 | up = (extent.param[4 + n * 2].start + (float)x*extent.param[4 + n * 2].dpdx)*(float)(objectdata.data->texture[n].sizeu - 1); |
| 1635 | vp = extent.param[5 + n * 2].start*(float)(objectdata.data->texture[n].sizev - 1); |
| 1636 | color[n + 2] = texture_get_texel(n, up, vp); |
| 1637 | } |
| 1638 | } |
| 1639 | // 2: compute |
| 1640 | // 2.1: initialize |
| 1641 | combiner_initialize_registers(color); |
| 1642 | // 2.2: general cmbiner stages |
| 1643 | for (n = 0; n < combiner.stages; n++) { |
| 1644 | // 2.2.1 initialize |
| 1645 | combiner_initialize_stage(n); |
| 1646 | // 2.2.2 map inputs |
| 1647 | combiner_map_input(n); |
| 1648 | // 2.2.3 compute possible outputs |
| 1649 | combiner_compute_rgb_outputs(n); |
| 1650 | combiner_compute_a_outputs(n); |
| 1651 | // 2.2.4 map outputs to registers |
| 1652 | combiner_map_output(n); |
| 1653 | } |
| 1654 | // 2.3: final cmbiner stage |
| 1655 | combiner_initialize_final(); |
| 1656 | combiner_map_final_input(); |
| 1657 | combiner_final_output(); |
| 1658 | a8r8g8b8 = combiner_float_argb8(combiner.output); |
| 1659 | // 3: write pixel |
| 1660 | write_pixel(xp, scanline, a8r8g8b8); |
| 1661 | x--; |
| 1662 | } |
| 1663 | osd_lock_release(combiner.lock); |
| 1664 | } |
| 1665 | |
| 1666 | #if 0 |
| 1667 | const char *rc_mapping_str[] = { |
| 1668 | "UNSIGNED_IDENTITY", |
| 1669 | "UNSIGNED_INVERT", |
| 1670 | "EXPAND_NORMAL", |
| 1671 | "EXPAND_NEGATE", |
| 1672 | "HALF_BIAS_NORMAL", |
| 1673 | "HALF_BIAS_NEGATE", |
| 1674 | "SIGNED_IDENTITY", |
| 1675 | "SIGNED_NEGATE" |
| 1676 | }; |
| 1677 | |
| 1678 | const char *rc_usage_rgb_str[] = { |
| 1679 | "RGB", |
| 1680 | "ALPHA" |
| 1681 | }; |
| 1682 | |
| 1683 | const char *rc_usage_alpha_str[] = { |
| 1684 | "BLUE", |
| 1685 | "ALPHA" |
| 1686 | }; |
| 1687 | |
| 1688 | const char *rc_variable_str[] = { |
| 1689 | "ZERO", |
| 1690 | "CONSTANT_COLOR0", |
| 1691 | "CONSTANT_COLOR1", |
| 1692 | "FOG", |
| 1693 | "PRIMARY_COLOR", |
| 1694 | "SECONDARY_COLOR", |
| 1695 | "???", |
| 1696 | "???", |
| 1697 | "TEXTURE0", |
| 1698 | "TEXTURE1", |
| 1699 | "TEXTURE2", |
| 1700 | "TEXTURE3", |
| 1701 | "SPARE0", |
| 1702 | "SPARE1", |
| 1703 | "SPARE0_PLUS_SECONDARY_COLOR", |
| 1704 | "E_TIMES_F" |
| 1705 | }; |
| 1706 | |
| 1707 | const char *rc_bias_str[] = { |
| 1708 | "NONE", |
| 1709 | "BIAS_BY_NEGATIVE_ONE_HALF" |
| 1710 | }; |
| 1711 | |
| 1712 | const char *rc_scale_str[] = { |
| 1713 | "NONE", |
| 1714 | "SCALE_BY_TWO", |
| 1715 | "SCALE_BY_FOUR", |
| 1716 | "SCALE_BY_ONE_HALF" |
| 1717 | }; |
| 1718 | |
| 1719 | /* Dump the current setup of the register combiners */ |
| 1720 | void dumpcombiners(UINT32 *m) |
| 1721 | { |
| 1722 | int a, b, n, v; |
| 1723 | |
| 1724 | n = m[0x1e60 / 4] & 0xf; |
| 1725 | printf("Combiners active: %d\n\r", n); |
| 1726 | for (a = 0; a < n; a++) { |
| 1727 | printf("Combiner %d\n\r", a + 1); |
| 1728 | printf(" RC_IN_ALPHA %08X\n\r", m[0x0260 / 4 + a]); |
| 1729 | for (b = 24; b >= 0; b = b - 8) { |
| 1730 | v = (m[0x0260 / 4 + a] >> b) & 0xf; |
| 1731 | printf(" %c_INPUT %s\n\r", 'A' + 3 - b / 8, rc_variable_str[v]); |
| 1732 | v = (m[0x0260 / 4 + a] >> (b + 4)) & 1; |
| 1733 | printf(" %c_COMPONENT_USAGE %s\n\r", 'A' + 3 - b / 8, rc_usage_alpha_str[v]); |
| 1734 | v = (m[0x0260 / 4 + a] >> (b + 5)) & 7; |
| 1735 | printf(" %c_MAPPING %s\n\r", 'A' + 3 - b / 8, rc_mapping_str[v]); |
| 1736 | } |
| 1737 | printf(" RC_IN_RGB %08X\n\r", m[0x0ac0 / 4 + a]); |
| 1738 | for (b = 24; b >= 0; b = b - 8) { |
| 1739 | v = (m[0x0ac0 / 4 + a] >> b) & 0xf; |
| 1740 | printf(" %c_INPUT %s\n\r", 'A' + 3 - b / 8, rc_variable_str[v]); |
| 1741 | v = (m[0x0ac0 / 4 + a] >> (b + 4)) & 1; |
| 1742 | printf(" %c_COMPONENT_USAGE %s\n\r", 'A' + 3 - b / 8, rc_usage_rgb_str[v]); |
| 1743 | v = (m[0x0ac0 / 4 + a] >> (b + 5)) & 7; |
| 1744 | printf(" %c_MAPPING %s\n\r", 'A' + 3 - b / 8, rc_mapping_str[v]); |
| 1745 | } |
| 1746 | printf(" RC_OUT_ALPHA %08X\n\r", m[0x0aa0 / 4 + a]); |
| 1747 | v = m[0x0aa0 / 4 + a] & 0xf; |
| 1748 | printf(" CD_OUTPUT %s\n\r", rc_variable_str[v]); |
| 1749 | v = (m[0x0aa0 / 4 + a] >> 4) & 0xf; |
| 1750 | printf(" AB_OUTPUT %s\n\r", rc_variable_str[v]); |
| 1751 | v = (m[0x0aa0 / 4 + a] >> 8) & 0xf; |
| 1752 | printf(" SUM_OUTPUT %s\n\r", rc_variable_str[v]); |
| 1753 | v = (m[0x0aa0 / 4 + a] >> 12) & 1; |
| 1754 | printf(" CD_DOT_PRODUCT %d\n\r", v); |
| 1755 | v = (m[0x0aa0 / 4 + a] >> 13) & 1; |
| 1756 | printf(" AB_DOT_PRODUCT %d\n\r", v); |
| 1757 | v = (m[0x0aa0 / 4 + a] >> 14) & 1; |
| 1758 | printf(" MUX_SUM %d\n\r", v); |
| 1759 | v = (m[0x0aa0 / 4 + a] >> 15) & 1; |
| 1760 | printf(" BIAS %s\n\r", rc_bias_str[v]); |
| 1761 | v = (m[0x0aa0 / 4 + a] >> 16) & 3; |
| 1762 | printf(" SCALE %s\n\r", rc_scale_str[v]); |
| 1763 | //v=(m[0x0aa0/4+a] >> 27) & 7; |
| 1764 | printf(" RC_OUT_RGB %08X\n\r", m[0x1e40 / 4 + a]); |
| 1765 | v = m[0x1e40 / 4 + a] & 0xf; |
| 1766 | printf(" CD_OUTPUT %s\n\r", rc_variable_str[v]); |
| 1767 | v = (m[0x1e40 / 4 + a] >> 4) & 0xf; |
| 1768 | printf(" AB_OUTPUT %s\n\r", rc_variable_str[v]); |
| 1769 | v = (m[0x1e40 / 4 + a] >> 8) & 0xf; |
| 1770 | printf(" SUM_OUTPUT %s\n\r", rc_variable_str[v]); |
| 1771 | v = (m[0x1e40 / 4 + a] >> 12) & 1; |
| 1772 | printf(" CD_DOT_PRODUCT %d\n\r", v); |
| 1773 | v = (m[0x1e40 / 4 + a] >> 13) & 1; |
| 1774 | printf(" AB_DOT_PRODUCT %d\n\r", v); |
| 1775 | v = (m[0x1e40 / 4 + a] >> 14) & 1; |
| 1776 | printf(" MUX_SUM %d\n\r", v); |
| 1777 | v = (m[0x1e40 / 4 + a] >> 15) & 1; |
| 1778 | printf(" BIAS %s\n\r", rc_bias_str[v]); |
| 1779 | v = (m[0x1e40 / 4 + a] >> 16) & 3; |
| 1780 | printf(" SCALE %s\n\r", rc_scale_str[v]); |
| 1781 | //v=(m[0x1e40/4+a] >> 27) & 7; |
| 1782 | printf("\n\r"); |
| 1783 | } |
| 1784 | printf("Combiner final %08X %08X\n\r", m[0x0288 / 4], m[0x028c / 4]); |
| 1785 | for (a = 24; a >= 0; a = a - 8) { |
| 1786 | n = (m[0x0288 / 4] >> a) & 0xf; |
| 1787 | printf(" %c_INPUT %s\n\r", 'A' + 3 - a / 8, rc_variable_str[n]); |
| 1788 | n = (m[0x0288 / 4] >> (a + 4)) & 1; |
| 1789 | printf(" %c_COMPONENT_USAGE %s\n\r", 'A' + 3 - a / 8, rc_usage_rgb_str[n]); |
| 1790 | n = (m[0x0288 / 4] >> (a + 5)) & 7; |
| 1791 | printf(" %c_MAPPING %s\n\r", 'A' + 3 - a / 8, rc_mapping_str[n]); |
| 1792 | } |
| 1793 | for (a = 24; a >= 8; a = a - 8) { |
| 1794 | n = (m[0x028c / 4] >> a) & 0xf; |
| 1795 | printf(" %c_INPUT %s\n\r", 'E' + 3 - a / 8, rc_variable_str[n]); |
| 1796 | n = (m[0x028c / 4] >> (a + 4)) & 1; |
| 1797 | printf(" %c_COMPONENT_USAGE %s\n\r", 'E' + 3 - a / 8, rc_usage_rgb_str[n]); |
| 1798 | n = (m[0x028c / 4] >> (a + 5)) & 7; |
| 1799 | printf(" %c_MAPPING %s\n\r", 'E' + 3 - a / 8, rc_mapping_str[n]); |
| 1800 | } |
| 1801 | n = (m[0x028c / 4] >> 7) & 1; |
| 1802 | printf(" color sum clamp: %d\n\r", n); |
| 1803 | } |
| 1804 | #endif |
| 1805 | |
| 1806 | void nv2a_renderer::read_vertex(address_space & space, offs_t address, vertex_nv &vertex, int attrib) |
| 1807 | { |
| 1808 | UINT32 u; |
| 1809 | int c, d, l; |
| 1810 | |
| 1811 | l = vertexbuffer_size[attrib]; |
| 1812 | switch (vertexbuffer_kind[attrib]) { |
| 1813 | case NV2A_VTXBUF_TYPE_FLOAT: |
| 1814 | default: |
| 1815 | vertex.attribute[attrib].fv[0] = 0; |
| 1816 | vertex.attribute[attrib].fv[1] = 0; |
| 1817 | vertex.attribute[attrib].fv[2] = 0; |
| 1818 | vertex.attribute[attrib].fv[3] = 1.0; |
| 1819 | for (c = d = 0; c < l; c++) { |
| 1820 | vertex.attribute[attrib].iv[c] = space.read_dword(address + d); |
| 1821 | d = d + 4; |
| 1822 | } |
| 1823 | break; |
| 1824 | case NV2A_VTXBUF_TYPE_UBYTE: |
| 1825 | break; |
| 1826 | case NV2A_VTXBUF_TYPE_UNKNOWN_0: |
| 1827 | u = space.read_dword(address + 0); |
| 1828 | for (c = 0; c < l; c++) { |
| 1829 | vertex.attribute[attrib].fv[c] = (u & 0xff) / 255.0; |
| 1830 | u = u >> 8; |
| 1831 | } |
| 1832 | break; |
| 1833 | case NV2A_VTXBUF_TYPE_UNKNOWN_6: // ??? |
| 1834 | u = space.read_dword(address + 0); |
| 1835 | vertex.attribute[attrib].fv[0] = (u & 0xff) / 255.0; // b |
| 1836 | vertex.attribute[attrib].fv[1] = ((u & 0xff00) >> 8) / 255.0; // g |
| 1837 | vertex.attribute[attrib].fv[2] = ((u & 0xff0000) >> 16) / 255.0; // r |
| 1838 | vertex.attribute[attrib].fv[3] = ((u & 0xff000000) >> 24) / 255.0; // a |
| 1839 | break; |
| 1840 | } |
| 1841 | } |
| 1842 | |
| 1843 | /* Read vertices data from system memory. Method 0x1810 */ |
| 1844 | int nv2a_renderer::read_vertices_0x1810(address_space & space, vertex_nv *destination, int offset, int limit) |
| 1845 | { |
| 1846 | UINT32 m; |
| 1847 | int a, b; |
| 1848 | |
| 1849 | #ifdef MAME_DEBUG |
| 1850 | memset(destination, 0, sizeof(vertex_nv)*limit); |
| 1851 | #endif |
| 1852 | for (m = 0; m < limit; m++) { |
| 1853 | b = enabled_vertex_attributes; |
| 1854 | for (a = 0; a < 16; a++) { |
| 1855 | if (b & 1) { |
| 1856 | read_vertex(space, vertexbuffer_address[a] + (m + offset)*vertexbuffer_stride[a], destination[m], a); |
| 1857 | } |
| 1858 | b = b >> 1; |
| 1859 | } |
| 1860 | } |
| 1861 | return m; |
| 1862 | } |
| 1863 | |
| 1864 | /* Read vertices data from system memory. Method 0x1800 */ |
| 1865 | int nv2a_renderer::read_vertices_0x1800(address_space & space, vertex_nv *destination, UINT32 address, int limit) |
| 1866 | { |
| 1867 | UINT32 data; |
| 1868 | UINT32 m, i, c; |
| 1869 | int a, b; |
| 1870 | |
| 1871 | #ifdef MAME_DEBUG |
| 1872 | memset(destination, 0, sizeof(vertex_nv)*limit); |
| 1873 | #endif |
| 1874 | c = 0; |
| 1875 | for (m = 0; m < limit; m++) { |
| 1876 | if (indexesleft_count == 0) { |
| 1877 | data = space.read_dword(address); |
| 1878 | i = (indexesleft_first + indexesleft_count) & 7; |
| 1879 | indexesleft[i] = data & 0xffff; |
| 1880 | indexesleft[(i + 1) & 7] = (data >> 16) & 0xffff; |
| 1881 | indexesleft_count = indexesleft_count + 2; |
| 1882 | address += 4; |
| 1883 | c++; |
| 1884 | } |
| 1885 | b = enabled_vertex_attributes; |
| 1886 | for (a = 0; a < 16; a++) { |
| 1887 | if (b & 1) { |
| 1888 | read_vertex(space, vertexbuffer_address[a] + indexesleft[indexesleft_first] * vertexbuffer_stride[a], destination[m], a); |
| 1889 | } |
| 1890 | b = b >> 1; |
| 1891 | } |
| 1892 | indexesleft_first = (indexesleft_first + 1) & 7; |
| 1893 | indexesleft_count--; |
| 1894 | } |
| 1895 | return (int)c; |
| 1896 | } |
| 1897 | |
| 1898 | /* Read vertices data from system memory. Method 0x1818 */ |
| 1899 | int nv2a_renderer::read_vertices_0x1818(address_space & space, vertex_nv *destination, UINT32 address, int limit) |
| 1900 | { |
| 1901 | UINT32 m, vwords; |
| 1902 | int a, b; |
| 1903 | |
| 1904 | #ifdef MAME_DEBUG |
| 1905 | memset(destination, 0, sizeof(vertex_nv)*limit); |
| 1906 | #endif |
| 1907 | vwords = vertex_attribute_words[15] + vertex_attribute_offset[15]; |
| 1908 | for (m = 0; m < limit; m++) { |
| 1909 | b = enabled_vertex_attributes; |
| 1910 | for (a = 0; a < 16; a++) { |
| 1911 | if (b & 1) { |
| 1912 | read_vertex(space, address + vertex_attribute_offset[a] * 4, destination[m], a); |
| 1913 | } |
| 1914 | b = b >> 1; |
| 1915 | } |
| 1916 | address = address + vwords * 4; |
| 1917 | } |
| 1918 | return (int)(m*vwords); |
| 1919 | } |
| 1920 | |
| 1921 | void nv2a_renderer::convert_vertices_poly(vertex_nv *source, vertex_t *destination, int count) |
| 1922 | { |
| 1923 | int m, u; |
| 1924 | |
| 1925 | // take each vertex with its attributes and obtain data for drawing |
| 1926 | // should use either the vertex program or transformation matrices |
| 1927 | if (vertex_pipeline == 4) { |
| 1928 | // transformation matrices |
| 1929 | // it is not implemented, so we pretend its always using screen coordinates |
| 1930 | for (m = 0; m < count; m++) { |
| 1931 | destination[m].x = source[m].attribute[0].fv[0]; |
| 1932 | destination[m].y = source[m].attribute[0].fv[1]; |
| 1933 | for (u = 0; u < 4; u++) // 0=b 1=g 2=r 3=a |
| 1934 | destination[m].p[u] = source[m].attribute[3].fv[u]; |
| 1935 | for (u = 0; u < 4; u++) { |
| 1936 | destination[m].p[4 + u * 2] = source[m].attribute[9 + u].fv[0]; |
| 1937 | destination[m].p[5 + u * 2] = source[m].attribute[9 + u].fv[1]; |
| 1938 | } |
| 1939 | } |
| 1940 | } |
| 1941 | else { |
| 1942 | // vertex program |
| 1943 | vertex_nv vert[4]; |
| 1944 | // run vertex program |
| 1945 | vertexprogram.exec.process(vertexprogram.start_instruction, source, vert, count); |
| 1946 | // copy data for poly.c |
| 1947 | for (m = 0; m < count; m++) { |
| 1948 | destination[m].x = vert[m].attribute[0].fv[0]; |
| 1949 | destination[m].y = vert[m].attribute[0].fv[1]; |
| 1950 | for (u = 0; u < 4; u++) // 0=b 1=g 2=r 3=a |
| 1951 | destination[m].p[u] = vert[m].attribute[3].fv[u]; |
| 1952 | for (u = 0; u < 4; u++) { |
| 1953 | destination[m].p[4 + u * 2] = vert[m].attribute[9 + u].fv[0]; |
| 1954 | destination[m].p[5 + u * 2] = vert[m].attribute[9 + u].fv[1]; |
| 1955 | } |
| 1956 | } |
| 1957 | } |
| 1958 | } |
| 1959 | |
| 1960 | void nv2a_renderer::geforce_exec_method(address_space & space, UINT32 chanel, UINT32 subchannel, UINT32 method, UINT32 address, int &countlen) |
| 1961 | { |
| 1962 | UINT32 maddress; |
| 1963 | UINT32 data; |
| 1964 | |
| 1965 | maddress = method * 4; |
| 1966 | data = space.read_dword(address); |
| 1967 | channel[chanel][subchannel].object.method[method] = data; |
| 1968 | if (maddress == 0x17fc) { |
| 1969 | indexesleft_count = 0; |
| 1970 | indexesleft_first = 0; |
| 1971 | primitives_count = 0; |
| 1972 | countlen--; |
| 1973 | } |
| 1974 | if (maddress == 0x1810) { |
| 1975 | // draw vertices |
| 1976 | int offset, count, type; |
| 1977 | UINT32 n; |
| 1978 | render_delegate renderspans; |
| 1979 | |
| 1980 | offset = data & 0xffffff; |
| 1981 | count = (data >> 24) & 0xff; |
| 1982 | type = channel[chanel][subchannel].object.method[0x17fc / 4]; |
| 1983 | if (((channel[chanel][subchannel].object.method[0x1e60 / 4] & 7) > 0) && (combiner.used != 0)) { |
| 1984 | renderspans = render_delegate(FUNC(nv2a_renderer::render_register_combiners), this); |
| 1985 | } |
| 1986 | else if (texture[0].enabled) { |
| 1987 | renderspans = render_delegate(FUNC(nv2a_renderer::render_texture_simple), this); |
| 1988 | } |
| 1989 | else |
| 1990 | renderspans = render_delegate(FUNC(nv2a_renderer::render_color), this); |
| 1991 | #ifdef LOG_NV2A |
| 1992 | printf("vertex %d %d %d\n\r", type, offset, count); |
| 1993 | #endif |
| 1994 | if (type == nv2a_renderer::QUADS) { |
| 1995 | for (n = 0; n <= count; n += 4) { |
| 1996 | vertex_nv vert[4]; |
| 1997 | vertex_t xy[4]; |
| 1998 | |
| 1999 | read_vertices_0x1810(space, vert, n + offset, 4); |
| 2000 | convert_vertices_poly(vert, xy, 4); |
| 2001 | render_polygon<4>(fb.cliprect(), renderspans, 4 + 4 * 2, xy); // 4 rgba, 4 texture units 2 uv |
| 2002 | } |
| 2003 | wait(); |
| 2004 | } |
| 2005 | else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 2006 | vertex_nv vert[4]; |
| 2007 | vertex_t xy[4]; |
| 2008 | |
| 2009 | read_vertices_0x1810(space, vert, offset, 2); |
| 2010 | convert_vertices_poly(vert, xy, 2); |
| 2011 | count = count - 2; |
| 2012 | offset = offset + 2; |
| 2013 | for (n = 0; n <= count; n++) { |
| 2014 | read_vertices_0x1810(space, vert + ((n + 2) & 3), offset + n, 1); |
| 2015 | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 1); |
| 2016 | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[((n & 1) + n) & 3], xy[((~n & 1) + n) & 3], xy[(2 + n) & 3]); |
| 2017 | } |
| 2018 | wait(); |
| 2019 | } |
| 2020 | else { |
| 2021 | logerror("Unsupported primitive %d for method 0x1810\n", type); |
| 2022 | } |
| 2023 | countlen--; |
| 2024 | } |
| 2025 | if (maddress == 0x1800) { |
| 2026 | UINT32 type, n; |
| 2027 | render_delegate renderspans; |
| 2028 | |
| 2029 | if (((channel[chanel][subchannel].object.method[0x1e60 / 4] & 7) > 0) && (combiner.used != 0)) { |
| 2030 | renderspans = render_delegate(FUNC(nv2a_renderer::render_register_combiners), this); |
| 2031 | } |
| 2032 | else if (texture[0].enabled) { |
| 2033 | renderspans = render_delegate(FUNC(nv2a_renderer::render_texture_simple), this); |
| 2034 | } |
| 2035 | else |
| 2036 | renderspans = render_delegate(FUNC(nv2a_renderer::render_color), this); |
| 2037 | // vertices are selected from the vertex buffer using an array of indexes |
| 2038 | // each dword after 1800 contains two 16 bit index values to select the vartices |
| 2039 | type = channel[chanel][subchannel].object.method[0x17fc / 4]; |
| 2040 | #ifdef LOG_NV2A |
| 2041 | printf("vertex %d %d %d\n\r", type, offset, count); |
| 2042 | #endif |
| 2043 | if (type == nv2a_renderer::QUADS) { |
| 2044 | while (1) { |
| 2045 | vertex_nv vert[4]; |
| 2046 | vertex_t xy[4]; |
| 2047 | int c; |
| 2048 | |
| 2049 | if ((countlen * 2 + indexesleft_count) < 4) |
| 2050 | break; |
| 2051 | c = read_vertices_0x1800(space, vert, address, 4); |
| 2052 | address = address + c * 4; |
| 2053 | countlen = countlen - c; |
| 2054 | convert_vertices_poly(vert, xy, 4); |
| 2055 | render_polygon<4>(fb.cliprect(), renderspans, 4 + 4 * 2, xy); // 4 rgba, 4 texture units 2 uv |
| 2056 | } |
| 2057 | while (countlen > 0) { |
| 2058 | data = space.read_dword(address); |
| 2059 | n = (indexesleft_first + indexesleft_count) & 7; |
| 2060 | indexesleft[n] = data & 0xffff; |
| 2061 | indexesleft[(n + 1) & 7] = (data >> 16) & 0xffff; |
| 2062 | indexesleft_count = indexesleft_count + 2; |
| 2063 | address += 4; |
| 2064 | countlen--; |
| 2065 | } |
| 2066 | wait(); |
| 2067 | } |
| 2068 | else if (type == nv2a_renderer::TRIANGLES) { |
| 2069 | while (1) { |
| 2070 | vertex_nv vert[3]; |
| 2071 | vertex_t xy[3]; |
| 2072 | int c; |
| 2073 | |
| 2074 | if ((countlen * 2 + indexesleft_count) < 3) |
| 2075 | break; |
| 2076 | c = read_vertices_0x1800(space, vert, address, 3); |
| 2077 | address = address + c * 4; |
| 2078 | countlen = countlen - c; |
| 2079 | convert_vertices_poly(vert, xy, 3); |
| 2080 | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[0], xy[1], xy[2]); // 4 rgba, 4 texture units 2 uv |
| 2081 | } |
| 2082 | while (countlen > 0) { |
| 2083 | data = space.read_dword(address); |
| 2084 | n = (indexesleft_first + indexesleft_count) & 7; |
| 2085 | indexesleft[n] = data & 0xffff; |
| 2086 | indexesleft[(n + 1) & 7] = (data >> 16) & 0xffff; |
| 2087 | indexesleft_count = indexesleft_count + 2; |
| 2088 | address += 4; |
| 2089 | countlen--; |
| 2090 | } |
| 2091 | wait(); |
| 2092 | } |
| 2093 | else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 2094 | if ((countlen * 2 + indexesleft_count) >= 3) { |
| 2095 | vertex_nv vert[4]; |
| 2096 | vertex_t xy[4]; |
| 2097 | int c, count; |
| 2098 | |
| 2099 | c = read_vertices_0x1800(space, vert, address, 2); |
| 2100 | convert_vertices_poly(vert, xy, 2); |
| 2101 | address = address + c * 4; |
| 2102 | countlen = countlen - c; |
| 2103 | count = countlen * 2 + indexesleft_count; |
| 2104 | for (n = 0; n < count; n++) { // <= |
| 2105 | c = read_vertices_0x1800(space, vert + ((n + 2) & 3), address, 1); |
| 2106 | address = address + c * 4; |
| 2107 | countlen = countlen - c; |
| 2108 | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 1); |
| 2109 | if (xy[(n + 2) & 3].y > 293800000.0) |
| 2110 | xy[(n + 2) & 3].y = xy[(n + 2) & 3].y + 1.0; |
| 2111 | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[((n & 1) + n) & 3], xy[((~n & 1) + n) & 3], xy[(2 + n) & 3]); |
| 2112 | } |
| 2113 | } |
| 2114 | while (countlen > 0) { |
| 2115 | data = space.read_dword(address); |
| 2116 | n = (indexesleft_first + indexesleft_count) & 7; |
| 2117 | indexesleft[n] = data & 0xffff; |
| 2118 | indexesleft[(n + 1) & 7] = (data >> 16) & 0xffff; |
| 2119 | indexesleft_count = indexesleft_count + 2; |
| 2120 | address += 4; |
| 2121 | countlen--; |
| 2122 | } |
| 2123 | wait(); |
| 2124 | } |
| 2125 | else { |
| 2126 | logerror("Unsupported primitive %d for method 0x1800\n", type); |
| 2127 | countlen = 0; |
| 2128 | } |
| 2129 | } |
| 2130 | if (maddress == 0x1818) { |
| 2131 | int n; |
| 2132 | int type; |
| 2133 | render_delegate renderspans; |
| 2134 | |
| 2135 | if (((channel[chanel][subchannel].object.method[0x1e60 / 4] & 7) > 0) && (combiner.used != 0)) { |
| 2136 | renderspans = render_delegate(FUNC(nv2a_renderer::render_register_combiners), this); |
| 2137 | } |
| 2138 | else if (texture[0].enabled) { |
| 2139 | renderspans = render_delegate(FUNC(nv2a_renderer::render_texture_simple), this); |
| 2140 | } |
| 2141 | else |
| 2142 | renderspans = render_delegate(FUNC(nv2a_renderer::render_color), this); |
| 2143 | // vertices are taken from the next words, not from a vertex buffer |
| 2144 | // first send primitive type with 17fc |
| 2145 | // then countlen number of dwords with 1818 |
| 2146 | // end with 17fc primitive type 0 |
| 2147 | // at 1760 16 words specify the vertex format:for each possible vertex attribute the number of components (0=not present) and type of each |
| 2148 | type = channel[chanel][subchannel].object.method[0x17fc / 4]; |
| 2149 | if (type == nv2a_renderer::TRIANGLE_FAN) { |
| 2150 | vertex_nv vert[3]; |
| 2151 | vertex_t xy[3]; |
| 2152 | int c; |
| 2153 | |
| 2154 | c = read_vertices_0x1818(space, vert, address, 2); |
| 2155 | convert_vertices_poly(vert, xy, 2); |
| 2156 | countlen = countlen - c; |
| 2157 | if (countlen < 0) { |
| 2158 | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 2159 | countlen = 0; |
| 2160 | return; |
| 2161 | } |
| 2162 | address = address + c * 4; |
| 2163 | for (n = 1; countlen > 0; n++) { |
| 2164 | c = read_vertices_0x1818(space, vert + ((n & 1) + 1), address, 1); |
| 2165 | countlen = countlen - c; |
| 2166 | if (countlen < 0) { |
| 2167 | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 2168 | countlen = 0; |
| 2169 | break; |
| 2170 | } |
| 2171 | address = address + c * 4; |
| 2172 | convert_vertices_poly(vert + ((n & 1) + 1), xy + ((n & 1) + 1), 1); |
| 2173 | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[0], xy[(~n & 1) + 1], xy[(n & 1) + 1]); |
| 2174 | } |
| 2175 | wait(); |
| 2176 | } |
| 2177 | else if (type == nv2a_renderer::TRIANGLE_STRIP) { |
| 2178 | vertex_nv vert[4]; |
| 2179 | vertex_t xy[4]; |
| 2180 | int c; |
| 2181 | |
| 2182 | c = read_vertices_0x1818(space, vert, address, 2); |
| 2183 | convert_vertices_poly(vert, xy, 2); |
| 2184 | countlen = countlen - c; |
| 2185 | if (countlen < 0) { |
| 2186 | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 2187 | countlen = 0; |
| 2188 | return; |
| 2189 | } |
| 2190 | address = address + c * 4; |
| 2191 | for (n = 0; countlen > 0; n++) { |
| 2192 | c = read_vertices_0x1818(space, vert + ((n + 2) & 3), address, 1); |
| 2193 | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 1); |
| 2194 | countlen = countlen - c; |
| 2195 | if (countlen < 0) { |
| 2196 | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 2197 | countlen = 0; |
| 2198 | break; |
| 2199 | } |
| 2200 | address = address + c * 4; |
| 2201 | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[((n & 1) + n) & 3], xy[((~n & 1) + n) & 3], xy[(2 + n) & 3]); |
| 2202 | } |
| 2203 | wait(); |
| 2204 | } |
| 2205 | else if (type == nv2a_renderer::QUADS) { |
| 2206 | while (countlen > 0) { |
| 2207 | vertex_nv vert[4]; |
| 2208 | vertex_t xy[4]; |
| 2209 | int c; |
| 2210 | |
| 2211 | c = read_vertices_0x1818(space, vert, address, 4); |
| 2212 | convert_vertices_poly(vert, xy, 4); |
| 2213 | countlen = countlen - c; |
| 2214 | if (countlen < 0) { |
| 2215 | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 2216 | countlen = 0; |
| 2217 | break; |
| 2218 | } |
| 2219 | address = address + c * 4; |
| 2220 | render_polygon<4>(fb.cliprect(), renderspans, 4 + 4 * 2, xy); // 4 rgba, 4 texture units 2 uv |
| 2221 | } |
| 2222 | wait(); |
| 2223 | } |
| 2224 | else if (type == nv2a_renderer::QUAD_STRIP) { |
| 2225 | vertex_nv vert[4]; |
| 2226 | vertex_t xy[4]; |
| 2227 | int c; |
| 2228 | |
| 2229 | c = read_vertices_0x1818(space, vert, address, 2); |
| 2230 | convert_vertices_poly(vert, xy, 2); |
| 2231 | countlen = countlen - c; |
| 2232 | if (countlen < 0) { |
| 2233 | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 2234 | countlen = 0; |
| 2235 | return; |
| 2236 | } |
| 2237 | address = address + c * 4; |
| 2238 | for (n = 0; countlen > 0; n += 2) { |
| 2239 | c = read_vertices_0x1818(space, vert + ((n + 2) & 3), address + ((n + 2) & 3), 2); |
| 2240 | convert_vertices_poly(vert + ((n + 2) & 3), xy + ((n + 2) & 3), 2); |
| 2241 | countlen = countlen - c; |
| 2242 | if (countlen < 0) { |
| 2243 | logerror("Method 0x1818 missing %d words to draw a complete primitive\n", -countlen); |
| 2244 | countlen = 0; |
| 2245 | return; |
| 2246 | } |
| 2247 | address = address + c * 4; |
| 2248 | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[n & 3], xy[(n + 1) & 3], xy[(n + 2) & 3]); |
| 2249 | render_triangle(fb.cliprect(), renderspans, 4 + 4 * 2, xy[(n + 2) & 3], xy[(n + 1) & 3], xy[(n + 3) & 3]); |
| 2250 | } |
| 2251 | wait(); |
| 2252 | } |
| 2253 | else { |
| 2254 | logerror("Unsupported primitive %d for method 0x1818\n", type); |
| 2255 | countlen = 0; |
| 2256 | } |
| 2257 | } |
| 2258 | if ((maddress >= 0x1720) && (maddress < 0x1760)) { |
| 2259 | int bit = method - 0x1720 / 4; |
| 2260 | |
| 2261 | if (data & 0x80000000) |
| 2262 | vertexbuffer_address[bit] = (data & 0x0fffffff) + dma_offset[1]; |
| 2263 | else |
| 2264 | vertexbuffer_address[bit] = (data & 0x0fffffff) + dma_offset[0]; |
| 2265 | } |
| 2266 | if ((maddress >= 0x1760) && (maddress < 0x17A0)) { |
| 2267 | int bit = method - 0x1760 / 4; |
| 2268 | |
| 2269 | vertexbuffer_stride[bit] = (data >> 8) & 255; |
| 2270 | vertexbuffer_kind[bit] = data & 15; |
| 2271 | vertexbuffer_size[bit] = (data >> 4) & 15; |
| 2272 | switch (vertexbuffer_kind[bit]) { |
| 2273 | case NV2A_VTXBUF_TYPE_UNKNOWN_0: |
| 2274 | vertex_attribute_words[bit] = (vertexbuffer_size[bit] * 1) >> 2; |
| 2275 | break; |
| 2276 | case NV2A_VTXBUF_TYPE_FLOAT: |
| 2277 | vertex_attribute_words[bit] = (vertexbuffer_size[bit] * 4) >> 2; |
| 2278 | break; |
| 2279 | case NV2A_VTXBUF_TYPE_UBYTE: |
| 2280 | vertex_attribute_words[bit] = (vertexbuffer_size[bit] * 1) >> 2; |
| 2281 | break; |
| 2282 | case NV2A_VTXBUF_TYPE_USHORT: |
| 2283 | vertex_attribute_words[bit] = (vertexbuffer_size[bit] * 2) >> 2; |
| 2284 | break; |
| 2285 | case NV2A_VTXBUF_TYPE_UNKNOWN_6: |
| 2286 | vertex_attribute_words[bit] = (vertexbuffer_size[bit] * 4) >> 2; |
| 2287 | break; |
| 2288 | default: |
| 2289 | vertex_attribute_words[bit] = 0; |
| 2290 | } |
| 2291 | if (vertexbuffer_size[bit] > 0) |
| 2292 | enabled_vertex_attributes |= (1 << bit); |
| 2293 | else |
| 2294 | enabled_vertex_attributes &= ~(1 << bit); |
| 2295 | for (int n = bit + 1; n < 16; n++) { |
| 2296 | if ((enabled_vertex_attributes & (1 << (n - 1))) != 0) |
| 2297 | vertex_attribute_offset[n] = vertex_attribute_offset[n - 1] + vertex_attribute_words[n - 1]; |
| 2298 | else |
| 2299 | vertex_attribute_offset[n] = vertex_attribute_offset[n - 1]; |
| 2300 | } |
| 2301 | countlen--; |
| 2302 | } |
| 2303 | if ((maddress == 0x1d6c) || (maddress == 0x1d70) || (maddress == 0x1a4)) |
| 2304 | countlen--; |
| 2305 | if (maddress == 0x019c) { |
| 2306 | geforce_read_dma_object(data, dma_offset[0], dma_size[0]); |
| 2307 | } |
| 2308 | if (maddress == 0x01a0) { |
| 2309 | geforce_read_dma_object(data, dma_offset[1], dma_size[1]); |
| 2310 | } |
| 2311 | if (maddress == 0x1d70) { |
| 2312 | // with 1d70 write the value at offest [1d6c] inside dma object [1a4] |
| 2313 | UINT32 offset, base; |
| 2314 | UINT32 dmahand, dmaoff, smasiz; |
| 2315 | |
| 2316 | offset = channel[chanel][subchannel].object.method[0x1d6c / 4]; |
| 2317 | dmahand = channel[chanel][subchannel].object.method[0x1a4 / 4]; |
| 2318 | geforce_read_dma_object(dmahand, dmaoff, smasiz); |
| 2319 | base = dmaoff; |
| 2320 | space.write_dword(base + offset, data); |
| 2321 | countlen--; |
| 2322 | } |
| 2323 | if (maddress == 0x1d94) { |
| 2324 | // possible buffers: color, depth, stencil, and accumulation |
| 2325 | // clear framebuffer |
| 2326 | if (data & 0xf0) { |
| 2327 | // clear colors |
| 2328 | UINT32 color = channel[chanel][subchannel].object.method[0x1d90 / 4]; |
| 2329 | fb.fill(color); |
| 2330 | //printf("clearscreen\n\r"); |
| 2331 | } |
| 2332 | if (data & 0x03) { |
| 2333 | // clear stencil+zbuffer |
| 2334 | } |
| 2335 | countlen--; |
| 2336 | } |
| 2337 | if (maddress == 0x0210) { |
| 2338 | // framebuffer offset ? |
| 2339 | countlen--; |
| 2340 | } |
| 2341 | if (maddress == 0x0214) { |
| 2342 | // zbuffer offset ? |
| 2343 | countlen--; |
| 2344 | } |
| 2345 | if (maddress == 0x0300) { |
| 2346 | alpha_test_enabled = data != 0; |
| 2347 | } |
| 2348 | if (maddress == 0x033c) { |
| 2349 | alpha_func = data; |
| 2350 | } |
| 2351 | if (maddress == 0x0340) { |
| 2352 | alpha_reference = data; |
| 2353 | } |
| 2354 | if (maddress == 0x0304) { |
| 2355 | if (logical_operation_enabled) |
| 2356 | blending_enabled = false; |
| 2357 | else |
| 2358 | blending_enabled = data != 0; |
| 2359 | } |
| 2360 | if (maddress == 0x0344) { |
| 2361 | blend_function_source = data; |
| 2362 | } |
| 2363 | if (maddress == 0x0348) { |
| 2364 | blend_function_destination = data; |
| 2365 | } |
| 2366 | if (maddress == 0x034c) { |
| 2367 | blend_color = data; |
| 2368 | } |
| 2369 | if (maddress == 0x0350) { |
| 2370 | blend_equation = data; |
| 2371 | } |
| 2372 | if (maddress == 0x0d40) { |
| 2373 | if (data != 0) |
| 2374 | blending_enabled = false; |
| 2375 | else |
| 2376 | blending_enabled = channel[chanel][subchannel].object.method[0x0304 / 4] != 0; |
| 2377 | logical_operation_enabled = data != 0; |
| 2378 | } |
| 2379 | if (maddress == 0x0d44) { |
| 2380 | logical_operation = data; |
| 2381 | } |
| 2382 | // Texture Units |
| 2383 | if ((maddress >= 0x1b00) && (maddress < 0x1c00)) { |
| 2384 | int unit;//,off; |
| 2385 | |
| 2386 | unit = (maddress >> 6) & 3; |
| 2387 | //off=maddress & 0xc0; |
| 2388 | maddress = maddress & ~0xc0; |
| 2389 | if (maddress == 0x1b00) { |
| 2390 | UINT32 offset;//,base; |
| 2391 | //UINT32 dmahand,dmaoff,dmasiz; |
| 2392 | |
| 2393 | offset = data; |
| 2394 | texture[unit].buffer = space.get_read_ptr(offset); |
| 2395 | /*if (dma0 != 0) { |
| 2396 | dmahand=channel[channel][subchannel].object.method[0x184/4]; |
| 2397 | geforce_read_dma_object(dmahand,dmaoff,smasiz); |
| 2398 | } else if (dma1 != 0) { |
| 2399 | dmahand=channel[channel][subchannel].object.method[0x188/4]; |
| 2400 | geforce_read_dma_object(dmahand,dmaoff,smasiz); |
| 2401 | }*/ |
| 2402 | } |
| 2403 | if (maddress == 0x1b04) { |
| 2404 | //int dma0,dma1,cubic,noborder,dims,mipmap; |
| 2405 | int basesizeu, basesizev, basesizew, format; |
| 2406 | |
| 2407 | //dma0=(data >> 0) & 1; |
| 2408 | //dma1=(data >> 1) & 1; |
| 2409 | //cubic=(data >> 2) & 1; |
| 2410 | //noborder=(data >> 3) & 1; |
| 2411 | //dims=(data >> 4) & 15; |
| 2412 | //mipmap=(data >> 19) & 1; |
| 2413 | format = (data >> 8) & 255; |
| 2414 | basesizeu = (data >> 20) & 15; |
| 2415 | basesizev = (data >> 24) & 15; |
| 2416 | basesizew = (data >> 28) & 15; |
| 2417 | texture[unit].sizeu = 1 << basesizeu; |
| 2418 | texture[unit].sizev = 1 << basesizev; |
| 2419 | texture[unit].sizew = 1 << basesizew; |
| 2420 | texture[unit].dilate = dilatechose[(basesizeu << 4) + basesizev]; |
| 2421 | texture[unit].format = format; |
| 2422 | if (debug_grab_texttype == format) { |
| 2423 | FILE *f; |
| 2424 | int written; |
| 2425 | |
| 2426 | debug_grab_texttype = -1; |
| 2427 | f = fopen(debug_grab_textfile, "wb"); |
| 2428 | if (f) { |
| 2429 | written = (int)fwrite(texture[unit].buffer, texture[unit].sizeu*texture[unit].sizev * 4, 1, f); |
| 2430 | fclose(f); |
| 2431 | logerror("Written %d bytes of texture to specified file\n", written); |
| 2432 | } |
| 2433 | else |
| 2434 | logerror("Unable to save texture to specified file\n"); |
| 2435 | } |
| 2436 | } |
| 2437 | if (maddress == 0x1b0c) { |
| 2438 | // enable texture |
| 2439 | int enable; |
| 2440 | |
| 2441 | enable = (data >> 30) & 1; |
| 2442 | texture[unit].enabled = enable; |
| 2443 | } |
| 2444 | if (maddress == 0x1b10) { |
| 2445 | texture[unit].rectangle_pitch = data >> 16; |
| 2446 | } |
| 2447 | countlen--; |
| 2448 | } |
| 2449 | // modelview matrix |
| 2450 | if ((maddress >= 0x0480) && (maddress < 0x04c0)) { |
| 2451 | maddress = (maddress - 0x0480) / 4; |
| 2452 | *(UINT32 *)(&matrix.modelview[maddress]) = data; |
| 2453 | countlen--; |
| 2454 | } |
| 2455 | // inverse modelview matrix |
| 2456 | if ((maddress >= 0x0580) && (maddress < 0x05c0)) { |
| 2457 | maddress = (maddress - 0x0580) / 4; |
| 2458 | *(UINT32 *)(&matrix.modelview_inverse[maddress]) = data; |
| 2459 | countlen--; |
| 2460 | } |
| 2461 | // projection matrix |
| 2462 | if ((maddress >= 0x0680) && (maddress < 0x06c0)) { |
| 2463 | maddress = (maddress - 0x0680) / 4; |
| 2464 | *(UINT32 *)(&matrix.projection[maddress]) = data; |
| 2465 | countlen--; |
| 2466 | } |
| 2467 | // viewport translate |
| 2468 | if ((maddress >= 0x0a20) && (maddress < 0x0a30)) { |
| 2469 | maddress = (maddress - 0x0a20) / 4; |
| 2470 | *(UINT32 *)(&matrix.translate[maddress]) = data; |
| 2471 | // set corresponding vertex shader constant too |
| 2472 | vertexprogram.exec.c_constant[59].iv[maddress] = data; // constant -37 |
| 2473 | countlen--; |
| 2474 | } |
| 2475 | // viewport scale |
| 2476 | if ((maddress >= 0x0af0) && (maddress < 0x0b00)) { |
| 2477 | maddress = (maddress - 0x0af0) / 4; |
| 2478 | *(UINT32 *)(&matrix.scale[maddress]) = data; |
| 2479 | // set corresponding vertex shader constant too |
| 2480 | vertexprogram.exec.c_constant[58].iv[maddress] = data; // constant -38 |
| 2481 | countlen--; |
| 2482 | } |
| 2483 | // Vertex program (shader) |
| 2484 | if (maddress == 0x1e94) { |
| 2485 | /*if (data == 2) |
| 2486 | logerror("Enabled vertex program\n"); |
| 2487 | else if (data == 4) |
| 2488 | logerror("Enabled fixed function pipeline\n"); |
| 2489 | else if (data == 6) |
| 2490 | logerror("Enabled both fixed function pipeline and vertex program ?\n"); |
| 2491 | else |
| 2492 | logerror("Unknown value %d to method 0x1e94\n",data);*/ |
| 2493 | vertex_pipeline = data & 6; |
| 2494 | countlen--; |
| 2495 | } |
| 2496 | if (maddress == 0x1e9c) { |
| 2497 | //logerror("VP_UPLOAD_FROM_ID %d\n",data); |
| 2498 | vertexprogram.upload_instruction_index = data; |
| 2499 | vertexprogram.upload_instruction_component = 0; |
| 2500 | countlen--; |
| 2501 | } |
| 2502 | if (maddress == 0x1ea0) { |
| 2503 | //logerror("VP_START_FROM_ID %d\n",data); |
| 2504 | vertexprogram.instructions = vertexprogram.upload_instruction_index; |
| 2505 | vertexprogram.start_instruction = data; |
| 2506 | countlen--; |
| 2507 | } |
| 2508 | if (maddress == 0x1ea4) { |
| 2509 | //logerror("VP_UPLOAD_CONST_ID %d\n",data); |
| 2510 | vertexprogram.upload_parameter_index = data; |
| 2511 | vertexprogram.upload_parameter_component = 0; |
| 2512 | countlen--; |
| 2513 | } |
| 2514 | if ((maddress >= 0x0b00) && (maddress < 0x0b80)) { |
| 2515 | //logerror("VP_UPLOAD_INST\n"); |
| 2516 | if (vertexprogram.upload_instruction_index < 192) { |
| 2517 | vertexprogram.exec.op[vertexprogram.upload_instruction_index].i[vertexprogram.upload_instruction_component] = data; |
| 2518 | vertexprogram.exec.op[vertexprogram.upload_instruction_index].modified |= (1 << vertexprogram.upload_instruction_component); |
| 2519 | } |
| 2520 | else |
| 2521 | logerror("Need to increase size of vertexprogram.instruction to %d\n\r", vertexprogram.upload_instruction_index); |
| 2522 | if (vertexprogram.exec.op[vertexprogram.upload_instruction_index].modified == 15) { |
| 2523 | vertexprogram.exec.op[vertexprogram.upload_instruction_index].modified = 0; |
| 2524 | vertexprogram.exec.decode_instruction(vertexprogram.upload_instruction_index); |
| 2525 | } |
| 2526 | vertexprogram.upload_instruction_component++; |
| 2527 | if (vertexprogram.upload_instruction_component >= 4) { |
| 2528 | vertexprogram.upload_instruction_component = 0; |
| 2529 | vertexprogram.upload_instruction_index++; |
| 2530 | } |
| 2531 | } |
| 2532 | if ((maddress >= 0x0b80) && (maddress < 0x0c00)) { |
| 2533 | //logerror("VP_UPLOAD_CONST\n"); |
| 2534 | if (vertexprogram.upload_parameter_index < 256) |
| 2535 | vertexprogram.exec.c_constant[vertexprogram.upload_parameter_index].iv[vertexprogram.upload_parameter_component] = data; |
| 2536 | else |
| 2537 | logerror("Need to increase size of vertexprogram.parameter to %d\n\r", vertexprogram.upload_parameter_index); |
| 2538 | vertexprogram.upload_parameter_component++; |
| 2539 | if (vertexprogram.upload_parameter_component >= 4) { |
| 2540 | vertexprogram.upload_parameter_component = 0; |
| 2541 | vertexprogram.upload_parameter_index++; |
| 2542 | } |
| 2543 | } |
| 2544 | // Register combiners |
| 2545 | if (maddress == 0x1e60) { |
| 2546 | combiner.stages = data & 15; |
| 2547 | countlen--; |
| 2548 | } |
| 2549 | if (maddress == 0x0288) { |
| 2550 | combiner.final.mapin_rgbD_input = data & 15; |
| 2551 | combiner.final.mapin_rgbD_component = (data >> 4) & 1; |
| 2552 | combiner.final.mapin_rgbD_mapping = (data >> 5) & 7; |
| 2553 | combiner.final.mapin_rgbC_input = (data >> 8) & 15; |
| 2554 | combiner.final.mapin_rgbC_component = (data >> 12) & 1; |
| 2555 | combiner.final.mapin_rgbC_mapping = (data >> 13) & 7; |
| 2556 | combiner.final.mapin_rgbB_input = (data >> 16) & 15; |
| 2557 | combiner.final.mapin_rgbB_component = (data >> 20) & 1; |
| 2558 | combiner.final.mapin_rgbB_mapping = (data >> 21) & 7; |
| 2559 | combiner.final.mapin_rgbA_input = (data >> 24) & 15; |
| 2560 | combiner.final.mapin_rgbA_component = (data >> 28) & 1; |
| 2561 | combiner.final.mapin_rgbA_mapping = (data >> 29) & 7; |
| 2562 | countlen--; |
| 2563 | } |
| 2564 | if (maddress == 0x028c) { |
| 2565 | combiner.final.color_sum_clamp = (data >> 7) & 1; |
| 2566 | combiner.final.mapin_aG_input = (data >> 8) & 15; |
| 2567 | combiner.final.mapin_aG_component = (data >> 12) & 1; |
| 2568 | combiner.final.mapin_aG_mapping = (data >> 13) & 7; |
| 2569 | combiner.final.mapin_rgbF_input = (data >> 16) & 15; |
| 2570 | combiner.final.mapin_rgbF_component = (data >> 20) & 1; |
| 2571 | combiner.final.mapin_rgbF_mapping = (data >> 21) & 7; |
| 2572 | combiner.final.mapin_rgbE_input = (data >> 24) & 15; |
| 2573 | combiner.final.mapin_rgbE_component = (data >> 28) & 1; |
| 2574 | combiner.final.mapin_rgbE_mapping = (data >> 29) & 7; |
| 2575 | countlen--; |
| 2576 | } |
| 2577 | if (maddress == 0x1e20) { |
| 2578 | combiner_argb8_float(data, combiner.final.register_constantcolor0); |
| 2579 | countlen--; |
| 2580 | } |
| 2581 | if (maddress == 0x1e24) { |
| 2582 | combiner_argb8_float(data, combiner.final.register_constantcolor1); |
| 2583 | countlen--; |
| 2584 | } |
| 2585 | if ((maddress >= 0x0260) && (maddress < 0x0280)) { |
| 2586 | int n; |
| 2587 | |
| 2588 | n = (maddress - 0x0260) >> 2; |
| 2589 | combiner.stage[n].mapin_aD_input = data & 15; |
| 2590 | combiner.stage[n].mapin_aD_component = (data >> 4) & 1; |
| 2591 | combiner.stage[n].mapin_aD_mapping = (data >> 5) & 7; |
| 2592 | combiner.stage[n].mapin_aC_input = (data >> 8) & 15; |
| 2593 | combiner.stage[n].mapin_aC_component = (data >> 12) & 1; |
| 2594 | combiner.stage[n].mapin_aC_mapping = (data >> 13) & 7; |
| 2595 | combiner.stage[n].mapin_aB_input = (data >> 16) & 15; |
| 2596 | combiner.stage[n].mapin_aB_component = (data >> 20) & 1; |
| 2597 | combiner.stage[n].mapin_aB_mapping = (data >> 21) & 7; |
| 2598 | combiner.stage[n].mapin_aA_input = (data >> 24) & 15; |
| 2599 | combiner.stage[n].mapin_aA_component = (data >> 28) & 1; |
| 2600 | combiner.stage[n].mapin_aA_mapping = (data >> 29) & 7; |
| 2601 | countlen--; |
| 2602 | } |
| 2603 | if ((maddress >= 0x0ac0) && (maddress < 0x0ae0)) { |
| 2604 | int n; |
| 2605 | |
| 2606 | n = (maddress - 0x0ac0) >> 2; |
| 2607 | combiner.stage[n].mapin_rgbD_input = data & 15; |
| 2608 | combiner.stage[n].mapin_rgbD_component = (data >> 4) & 1; |
| 2609 | combiner.stage[n].mapin_rgbD_mapping = (data >> 5) & 7; |
| 2610 | combiner.stage[n].mapin_rgbC_input = (data >> 8) & 15; |
| 2611 | combiner.stage[n].mapin_rgbC_component = (data >> 12) & 1; |
| 2612 | combiner.stage[n].mapin_rgbC_mapping = (data >> 13) & 7; |
| 2613 | combiner.stage[n].mapin_rgbB_input = (data >> 16) & 15; |
| 2614 | combiner.stage[n].mapin_rgbB_component = (data >> 20) & 1; |
| 2615 | combiner.stage[n].mapin_rgbB_mapping = (data >> 21) & 7; |
| 2616 | combiner.stage[n].mapin_rgbA_input = (data >> 24) & 15; |
| 2617 | combiner.stage[n].mapin_rgbA_component = (data >> 28) & 1; |
| 2618 | combiner.stage[n].mapin_rgbA_mapping = (data >> 29) & 7; |
| 2619 | countlen--; |
| 2620 | } |
| 2621 | if ((maddress >= 0x0a60) && (maddress < 0x0a80)) { |
| 2622 | int n; |
| 2623 | |
| 2624 | n = (maddress - 0x0a60) >> 2; |
| 2625 | combiner_argb8_float(data, combiner.stage[n].register_constantcolor0); |
| 2626 | countlen--; |
| 2627 | } |
| 2628 | if ((maddress >= 0x0a80) && (maddress < 0x0aa0)) { |
| 2629 | int n; |
| 2630 | |
| 2631 | n = (maddress - 0x0a80) >> 2; |
| 2632 | combiner_argb8_float(data, combiner.stage[n].register_constantcolor1); |
| 2633 | countlen--; |
| 2634 | } |
| 2635 | if ((maddress >= 0x0aa0) && (maddress < 0x0ac0)) { |
| 2636 | int n; |
| 2637 | |
| 2638 | n = (maddress - 0x0aa0) >> 2; |
| 2639 | combiner.stage[n].mapout_aCD_output = data & 15; |
| 2640 | combiner.stage[n].mapout_aAB_output = (data >> 4) & 15; |
| 2641 | combiner.stage[n].mapout_aSUM_output = (data >> 8) & 15; |
| 2642 | combiner.stage[n].mapout_aCD_dotproduct = (data >> 12) & 1; |
| 2643 | combiner.stage[n].mapout_aAB_dotproduct = (data >> 13) & 1; |
| 2644 | combiner.stage[n].mapout_a_muxsum = (data >> 14) & 1; |
| 2645 | combiner.stage[n].mapout_a_bias = (data >> 15) & 1; |
| 2646 | combiner.stage[n].mapout_a_scale = (data >> 16) & 3; |
| 2647 | //combiner.=(data >> 27) & 7; |
| 2648 | countlen--; |
| 2649 | } |
| 2650 | if ((maddress >= 0x1e40) && (maddress < 0x1e60)) { |
| 2651 | int n; |
| 2652 | |
| 2653 | n = (maddress - 0x1e40) >> 2; |
| 2654 | combiner.stage[n].mapout_rgbCD_output = data & 15; |
| 2655 | combiner.stage[n].mapout_rgbAB_output = (data >> 4) & 15; |
| 2656 | combiner.stage[n].mapout_rgbSUM_output = (data >> 8) & 15; |
| 2657 | combiner.stage[n].mapout_rgbCD_dotproduct = (data >> 12) & 1; |
| 2658 | combiner.stage[n].mapout_rgbAB_dotproduct = (data >> 13) & 1; |
| 2659 | combiner.stage[n].mapout_rgb_muxsum = (data >> 14) & 1; |
| 2660 | combiner.stage[n].mapout_rgb_bias = (data >> 15) & 1; |
| 2661 | combiner.stage[n].mapout_rgb_scale = (data >> 16) & 3; |
| 2662 | //combiner.=(data >> 27) & 7; |
| 2663 | countlen--; |
| 2664 | } |
| 2665 | } |
| 2666 | |
| 2667 | int nv2a_renderer::toggle_register_combiners_usage() |
| 2668 | { |
| 2669 | combiner.used = 1 - combiner.used; |
| 2670 | return combiner.used; |
| 2671 | } |
| 2672 | |
| 2673 | void nv2a_renderer::debug_grab_texture(int type, const char *filename) |
| 2674 | { |
| 2675 | debug_grab_texttype = type; |
| 2676 | if (debug_grab_textfile == NULL) |
| 2677 | debug_grab_textfile = (char *)malloc(128); |
| 2678 | strncpy(debug_grab_textfile, filename, 127); |
| 2679 | } |
| 2680 | |
| 2681 | void nv2a_renderer::debug_grab_vertex_program_slot(int slot, UINT32 *instruction) |
| 2682 | { |
| 2683 | if (slot >= 1024 / 4) |
| 2684 | return; |
| 2685 | instruction[0] = vertexprogram.exec.op[slot].i[0]; |
| 2686 | instruction[1] = vertexprogram.exec.op[slot].i[1]; |
| 2687 | instruction[2] = vertexprogram.exec.op[slot].i[2]; |
| 2688 | instruction[3] = vertexprogram.exec.op[slot].i[3]; |
| 2689 | } |
| 2690 | |
| 2691 | void nv2a_renderer::savestate_items() |
| 2692 | { |
| 2693 | } |
| 2694 | |
| 2695 | void nv2a_renderer::combiner_argb8_float(UINT32 color, float reg[4]) |
| 2696 | { |
| 2697 | reg[0] = (float)(color & 0xff) / 255.0; |
| 2698 | reg[1] = (float)((color >> 8) & 0xff) / 255.0; |
| 2699 | reg[2] = (float)((color >> 16) & 0xff) / 255.0; |
| 2700 | reg[3] = (float)((color >> 24) & 0xff) / 255.0; |
| 2701 | } |
| 2702 | |
| 2703 | UINT32 nv2a_renderer::combiner_float_argb8(float reg[4]) |
| 2704 | { |
| 2705 | UINT32 r, g, b, a; |
| 2706 | |
| 2707 | a = reg[3] * 255.0; |
| 2708 | b = reg[2] * 255.0; |
| 2709 | g = reg[1] * 255.0; |
| 2710 | r = reg[0] * 255.0; |
| 2711 | return (a << 24) | (r << 16) | (g << 8) | b; |
| 2712 | } |
| 2713 | |
| 2714 | float nv2a_renderer::combiner_map_input_select(int code, int index) |
| 2715 | { |
| 2716 | switch (code) { |
| 2717 | case 0: |
| 2718 | default: |
| 2719 | return combiner.register_zero[index]; |
| 2720 | case 1: |
| 2721 | return combiner.register_color0[index]; |
| 2722 | case 2: |
| 2723 | return combiner.register_color1[index]; |
| 2724 | case 3: |
| 2725 | return combiner.register_fogcolor[index]; |
| 2726 | case 4: |
| 2727 | return combiner.register_primarycolor[index]; |
| 2728 | case 5: |
| 2729 | return combiner.register_secondarycolor[index]; |
| 2730 | case 8: |
| 2731 | return combiner.register_texture0color[index]; |
| 2732 | case 9: |
| 2733 | return combiner.register_texture1color[index]; |
| 2734 | case 10: |
| 2735 | return combiner.register_texture2color[index]; |
| 2736 | case 11: |
| 2737 | return combiner.register_texture3color[index]; |
| 2738 | case 12: |
| 2739 | return combiner.register_spare0[index]; |
| 2740 | case 13: |
| 2741 | return combiner.register_spare1[index]; |
| 2742 | case 14: |
| 2743 | return combiner.variable_sumclamp[index]; |
| 2744 | case 15: |
| 2745 | return combiner.variable_EF[index]; |
| 2746 | } |
| 2747 | |
| 2748 | // never executed |
| 2749 | //return 0; |
| 2750 | } |
| 2751 | |
| 2752 | float *nv2a_renderer::combiner_map_input_select3(int code) |
| 2753 | { |
| 2754 | switch (code) { |
| 2755 | case 0: |
| 2756 | default: |
| 2757 | return combiner.register_zero; |
| 2758 | case 1: |
| 2759 | return combiner.register_color0; |
| 2760 | case 2: |
| 2761 | return combiner.register_color1; |
| 2762 | case 3: |
| 2763 | return combiner.register_fogcolor; |
| 2764 | case 4: |
| 2765 | return combiner.register_primarycolor; |
| 2766 | case 5: |
| 2767 | return combiner.register_secondarycolor; |
| 2768 | case 8: |
| 2769 | return combiner.register_texture0color; |
| 2770 | case 9: |
| 2771 | return combiner.register_texture1color; |
| 2772 | case 10: |
| 2773 | return combiner.register_texture2color; |
| 2774 | case 11: |
| 2775 | return combiner.register_texture3color; |
| 2776 | case 12: |
| 2777 | return combiner.register_spare0; |
| 2778 | case 13: |
| 2779 | return combiner.register_spare1; |
| 2780 | case 14: |
| 2781 | return combiner.variable_sumclamp; |
| 2782 | case 15: |
| 2783 | return combiner.variable_EF; |
| 2784 | } |
| 2785 | |
| 2786 | // never executed |
| 2787 | //return 0; |
| 2788 | } |
| 2789 | |
| 2790 | float *nv2a_renderer::combiner_map_output_select3(int code) |
| 2791 | { |
| 2792 | switch (code) { |
| 2793 | case 0: |
| 2794 | return 0; |
| 2795 | case 1: |
| 2796 | return 0; |
| 2797 | case 2: |
| 2798 | return 0; |
| 2799 | case 3: |
| 2800 | return 0; |
| 2801 | case 4: |
| 2802 | return combiner.register_primarycolor; |
| 2803 | case 5: |
| 2804 | return combiner.register_secondarycolor; |
| 2805 | case 8: |
| 2806 | return combiner.register_texture0color; |
| 2807 | case 9: |
| 2808 | return combiner.register_texture1color; |
| 2809 | case 10: |
| 2810 | return combiner.register_texture2color; |
| 2811 | case 11: |
| 2812 | return combiner.register_texture3color; |
| 2813 | case 12: |
| 2814 | return combiner.register_spare0; |
| 2815 | case 13: |
| 2816 | return combiner.register_spare1; |
| 2817 | case 14: |
| 2818 | return 0; |
| 2819 | case 15: |
| 2820 | default: |
| 2821 | return 0; |
| 2822 | } |
| 2823 | } |
| 2824 | |
| 2825 | float nv2a_renderer::combiner_map_input_function(int code, float value) |
| 2826 | { |
| 2827 | float t; |
| 2828 | |
| 2829 | switch (code) { |
| 2830 | case 0: |
| 2831 | return MAX(0.0, value); |
| 2832 | case 1: |
| 2833 | t = MAX(value, 0.0); |
| 2834 | return 1.0 - MIN(t, 1.0); |
| 2835 | case 2: |
| 2836 | return 2.0 * MAX(0.0, value) - 1.0; |
| 2837 | case 3: |
| 2838 | return -2.0 * MAX(0.0, value) + 1.0; |
| 2839 | case 4: |
| 2840 | return MAX(0.0, value) - 0.5; |
| 2841 | case 5: |
| 2842 | return -MAX(0.0, value) + 0.5; |
| 2843 | case 6: |
| 2844 | return value; |
| 2845 | case 7: |
| 2846 | default: |
| 2847 | return -value; |
| 2848 | } |
| 2849 | |
| 2850 | // never executed |
| 2851 | //return 0; |
| 2852 | } |
| 2853 | |
| 2854 | void nv2a_renderer::combiner_map_input_function3(int code, float *data) |
| 2855 | { |
| 2856 | float t; |
| 2857 | |
| 2858 | switch (code) { |
| 2859 | case 0: |
| 2860 | data[0] = MAX(0.0, data[0]); |
| 2861 | data[1] = MAX(0.0, data[1]); |
| 2862 | data[2] = MAX(0.0, data[2]); |
| 2863 | break; |
| 2864 | case 1: |
| 2865 | t = MAX(data[0], 0.0); |
| 2866 | data[0] = 1.0 - MIN(t, 1.0); |
| 2867 | t = MAX(data[1], 0.0); |
| 2868 | data[1] = 1.0 - MIN(t, 1.0); |
| 2869 | t = MAX(data[2], 0.0); |
| 2870 | data[2] = 1.0 - MIN(t, 1.0); |
| 2871 | break; |
| 2872 | case 2: |
| 2873 | data[0] = 2.0 * MAX(0.0, data[0]) - 1.0; |
| 2874 | data[1] = 2.0 * MAX(0.0, data[1]) - 1.0; |
| 2875 | data[2] = 2.0 * MAX(0.0, data[2]) - 1.0; |
| 2876 | break; |
| 2877 | case 3: |
| 2878 | data[0] = -2.0 * MAX(0.0, data[0]) + 1.0; |
| 2879 | data[1] = -2.0 * MAX(0.0, data[1]) + 1.0; |
| 2880 | data[2] = -2.0 * MAX(0.0, data[2]) + 1.0; |
| 2881 | break; |
| 2882 | case 4: |
| 2883 | data[0] = MAX(0.0, data[0]) - 0.5; |
| 2884 | data[1] = MAX(0.0, data[1]) - 0.5; |
| 2885 | data[2] = MAX(0.0, data[2]) - 0.5; |
| 2886 | break; |
| 2887 | case 5: |
| 2888 | data[0] = -MAX(0.0, data[0]) + 0.5; |
| 2889 | data[1] = -MAX(0.0, data[1]) + 0.5; |
| 2890 | data[2] = -MAX(0.0, data[2]) + 0.5; |
| 2891 | break; |
| 2892 | case 6: |
| 2893 | return; |
| 2894 | case 7: |
| 2895 | default: |
| 2896 | data[0] = -data[0]; |
| 2897 | data[1] = -data[1]; |
| 2898 | data[2] = -data[2]; |
| 2899 | break; |
| 2900 | } |
| 2901 | } |
| 2902 | |
| 2903 | void nv2a_renderer::combiner_initialize_registers(UINT32 argb8[6]) |
| 2904 | { |
| 2905 | combiner_argb8_float(argb8[0], combiner.register_primarycolor); |
| 2906 | combiner_argb8_float(argb8[1], combiner.register_secondarycolor); |
| 2907 | combiner_argb8_float(argb8[2], combiner.register_texture0color); |
| 2908 | combiner_argb8_float(argb8[3], combiner.register_texture1color); |
| 2909 | combiner_argb8_float(argb8[4], combiner.register_texture2color); |
| 2910 | combiner_argb8_float(argb8[5], combiner.register_texture3color); |
| 2911 | combiner.register_spare0[3] = combiner.register_texture0color[3]; |
| 2912 | combiner.register_zero[0] = combiner.register_zero[1] = combiner.register_zero[2] = combiner.register_zero[3] = 0; |
| 2913 | } |
| 2914 | |
| 2915 | void nv2a_renderer::combiner_initialize_stage(int stage_number) |
| 2916 | { |
| 2917 | int n = stage_number; |
| 2918 | |
| 2919 | // put register_constantcolor0 in register_color0 |
| 2920 | combiner.register_color0[0] = combiner.stage[n].register_constantcolor0[0]; |
| 2921 | combiner.register_color0[1] = combiner.stage[n].register_constantcolor0[1]; |
| 2922 | combiner.register_color0[2] = combiner.stage[n].register_constantcolor0[2]; |
| 2923 | combiner.register_color0[3] = combiner.stage[n].register_constantcolor0[3]; |
| 2924 | // put register_constantcolor1 in register_color1 |
| 2925 | combiner.register_color1[0] = combiner.stage[n].register_constantcolor1[0]; |
| 2926 | combiner.register_color1[1] = combiner.stage[n].register_constantcolor1[1]; |
| 2927 | combiner.register_color1[2] = combiner.stage[n].register_constantcolor1[2]; |
| 2928 | combiner.register_color1[3] = combiner.stage[n].register_constantcolor1[3]; |
| 2929 | } |
| 2930 | |
| 2931 | void nv2a_renderer::combiner_initialize_final() |
| 2932 | { |
| 2933 | // put register_constantcolor0 in register_color0 |
| 2934 | combiner.register_color0[0] = combiner.final.register_constantcolor0[0]; |
| 2935 | combiner.register_color0[1] = combiner.final.register_constantcolor0[1]; |
| 2936 | combiner.register_color0[2] = combiner.final.register_constantcolor0[2]; |
| 2937 | combiner.register_color0[3] = combiner.final.register_constantcolor0[3]; |
| 2938 | // put register_constantcolor1 in register_color1 |
| 2939 | combiner.register_color1[0] = combiner.final.register_constantcolor1[0]; |
| 2940 | combiner.register_color1[1] = combiner.final.register_constantcolor1[1]; |
| 2941 | combiner.register_color1[2] = combiner.final.register_constantcolor1[2]; |
| 2942 | combiner.register_color1[3] = combiner.final.register_constantcolor1[3]; |
| 2943 | } |
| 2944 | |
| 2945 | void nv2a_renderer::combiner_map_input(int stage_number) |
| 2946 | { |
| 2947 | int n = stage_number; |
| 2948 | int c, d, i; |
| 2949 | float v, *pv; |
| 2950 | |
| 2951 | // A |
| 2952 | v = combiner_map_input_select(combiner.stage[n].mapin_aA_input, 2 + combiner.stage[n].mapin_aA_component); |
| 2953 | combiner.variable_A[3] = combiner_map_input_function(combiner.stage[n].mapin_aA_mapping, v); |
| 2954 | // B |
| 2955 | v = combiner_map_input_select(combiner.stage[n].mapin_aB_input, 2 + combiner.stage[n].mapin_aB_component); |
| 2956 | combiner.variable_B[3] = combiner_map_input_function(combiner.stage[n].mapin_aB_mapping, v); |
| 2957 | // C |
| 2958 | v = combiner_map_input_select(combiner.stage[n].mapin_aC_input, 2 + combiner.stage[n].mapin_aC_component); |
| 2959 | combiner.variable_C[3] = combiner_map_input_function(combiner.stage[n].mapin_aC_mapping, v); |
| 2960 | // D |
| 2961 | v = combiner_map_input_select(combiner.stage[n].mapin_aD_input, 2 + combiner.stage[n].mapin_aD_component); |
| 2962 | combiner.variable_D[3] = combiner_map_input_function(combiner.stage[n].mapin_aD_mapping, v); |
| 2963 | |
| 2964 | // A |
| 2965 | pv = combiner_map_input_select3(combiner.stage[n].mapin_rgbA_input); |
| 2966 | c = combiner.stage[n].mapin_rgbA_component * 3; |
| 2967 | i = ~combiner.stage[n].mapin_rgbA_component & 1; |
| 2968 | for (d = 0; d < 3; d++) { |
| 2969 | combiner.variable_A[d] = pv[c]; |
| 2970 | c = c + i; |
| 2971 | } |
| 2972 | combiner_map_input_function3(combiner.stage[n].mapin_rgbA_mapping, combiner.variable_A); |
| 2973 | // B |
| 2974 | pv = combiner_map_input_select3(combiner.stage[n].mapin_rgbB_input); |
| 2975 | c = combiner.stage[n].mapin_rgbB_component * 3; |
| 2976 | i = ~combiner.stage[n].mapin_rgbB_component & 1; |
| 2977 | for (d = 0; d < 3; d++) { |
| 2978 | combiner.variable_B[d] = pv[c]; |
| 2979 | c = c + i; |
| 2980 | } |
| 2981 | combiner_map_input_function3(combiner.stage[n].mapin_rgbB_mapping, combiner.variable_B); |
| 2982 | // C |
| 2983 | pv = combiner_map_input_select3(combiner.stage[n].mapin_rgbC_input); |
| 2984 | c = combiner.stage[n].mapin_rgbC_component * 3; |
| 2985 | i = ~combiner.stage[n].mapin_rgbC_component & 1; |
| 2986 | for (d = 0; d < 3; d++) { |
| 2987 | combiner.variable_C[d] = pv[c]; |
| 2988 | c = c + i; |
| 2989 | } |
| 2990 | combiner_map_input_function3(combiner.stage[n].mapin_rgbC_mapping, combiner.variable_C); |
| 2991 | // D |
| 2992 | pv = combiner_map_input_select3(combiner.stage[n].mapin_rgbD_input); |
| 2993 | c = combiner.stage[n].mapin_rgbD_component * 3; |
| 2994 | i = ~combiner.stage[n].mapin_rgbD_component & 1; |
| 2995 | for (d = 0; d < 3; d++) { |
| 2996 | combiner.variable_D[d] = pv[c]; |
| 2997 | c = c + i; |
| 2998 | } |
| 2999 | combiner_map_input_function3(combiner.stage[n].mapin_rgbD_mapping, combiner.variable_D); |
| 3000 | } |
| 3001 | |
| 3002 | void nv2a_renderer::combiner_map_output(int stage_number) |
| 3003 | { |
| 3004 | int n = stage_number; |
| 3005 | float *f; |
| 3006 | |
| 3007 | // rgb |
| 3008 | f = combiner_map_output_select3(combiner.stage[n].mapout_rgbAB_output); |
| 3009 | if (f) { |
| 3010 | f[0] = combiner.function_RGBop1[0]; |
| 3011 | f[1] = combiner.function_RGBop1[1]; |
| 3012 | f[2] = combiner.function_RGBop1[2]; |
| 3013 | } |
| 3014 | f = combiner_map_output_select3(combiner.stage[n].mapout_rgbCD_output); |
| 3015 | if (f) { |
| 3016 | f[0] = combiner.function_RGBop2[0]; |
| 3017 | f[1] = combiner.function_RGBop2[1]; |
| 3018 | f[2] = combiner.function_RGBop2[2]; |
| 3019 | } |
| 3020 | if ((combiner.stage[n].mapout_rgbAB_dotproduct | combiner.stage[n].mapout_rgbCD_dotproduct) == 0) { |
| 3021 | f = combiner_map_output_select3(combiner.stage[n].mapout_rgbSUM_output); |
| 3022 | if (f) { |
| 3023 | f[0] = combiner.function_RGBop3[0]; |
| 3024 | f[1] = combiner.function_RGBop3[1]; |
| 3025 | f[2] = combiner.function_RGBop3[2]; |
| 3026 | } |
| 3027 | } |
| 3028 | // a |
| 3029 | f = combiner_map_output_select3(combiner.stage[n].mapout_aAB_output); |
| 3030 | if (f) |
| 3031 | f[3] = combiner.function_Aop1; |
| 3032 | f = combiner_map_output_select3(combiner.stage[n].mapout_aCD_output); |
| 3033 | if (f) |
| 3034 | f[3] = combiner.function_Aop2; |
| 3035 | f = combiner_map_output_select3(combiner.stage[n].mapout_aSUM_output); |
| 3036 | if (f) |
| 3037 | f[3] = combiner.function_Aop3; |
| 3038 | } |
| 3039 | |
| 3040 | void nv2a_renderer::combiner_map_final_input() |
| 3041 | { |
| 3042 | int i, c, d; |
| 3043 | float *pv; |
| 3044 | |
| 3045 | // E |
| 3046 | pv = combiner_map_input_select3(combiner.final.mapin_rgbE_input); |
| 3047 | c = combiner.final.mapin_rgbE_component * 3; |
| 3048 | i = ~combiner.final.mapin_rgbE_component & 1; |
| 3049 | for (d = 0; d < 3; d++) { |
| 3050 | combiner.variable_E[d] = pv[c]; |
| 3051 | c = c + i; |
| 3052 | } |
| 3053 | combiner_map_input_function3(combiner.final.mapin_rgbE_mapping, combiner.variable_E); |
| 3054 | // F |
| 3055 | pv = combiner_map_input_select3(combiner.final.mapin_rgbF_input); |
| 3056 | c = combiner.final.mapin_rgbF_component * 3; |
| 3057 | i = ~combiner.final.mapin_rgbF_component & 1; |
| 3058 | for (d = 0; d < 3; d++) { |
| 3059 | combiner.variable_F[d] = pv[c]; |
| 3060 | c = c + i; |
| 3061 | } |
| 3062 | combiner_map_input_function3(combiner.final.mapin_rgbF_mapping, combiner.variable_F); |
| 3063 | // EF |
| 3064 | combiner.variable_EF[0] = combiner.variable_E[0] * combiner.variable_F[0]; |
| 3065 | combiner.variable_EF[1] = combiner.variable_E[1] * combiner.variable_F[1]; |
| 3066 | combiner.variable_EF[2] = combiner.variable_E[2] * combiner.variable_F[2]; |
| 3067 | // sumclamp |
| 3068 | combiner.variable_sumclamp[0] = MAX(0, combiner.register_spare0[0]) + MAX(0, combiner.register_secondarycolor[0]); |
| 3069 | combiner.variable_sumclamp[1] = MAX(0, combiner.register_spare0[1]) + MAX(0, combiner.register_secondarycolor[1]); |
| 3070 | combiner.variable_sumclamp[2] = MAX(0, combiner.register_spare0[2]) + MAX(0, combiner.register_secondarycolor[2]); |
| 3071 | if (combiner.final.color_sum_clamp != 0) { |
| 3072 | combiner.variable_sumclamp[0] = MIN(combiner.variable_sumclamp[0], 1.0); |
| 3073 | combiner.variable_sumclamp[1] = MIN(combiner.variable_sumclamp[1], 1.0); |
| 3074 | combiner.variable_sumclamp[2] = MIN(combiner.variable_sumclamp[2], 1.0); |
| 3075 | } |
| 3076 | // A |
| 3077 | pv = combiner_map_input_select3(combiner.final.mapin_rgbA_input); |
| 3078 | c = combiner.final.mapin_rgbA_component * 3; |
| 3079 | i = ~combiner.final.mapin_rgbA_component & 1; |
| 3080 | for (d = 0; d < 3; d++) { |
| 3081 | combiner.variable_A[d] = pv[c]; |
| 3082 | c = c + i; |
| 3083 | } |
| 3084 | combiner_map_input_function3(combiner.final.mapin_rgbA_mapping, combiner.variable_A); |
| 3085 | // B |
| 3086 | pv = combiner_map_input_select3(combiner.final.mapin_rgbB_input); |
| 3087 | c = combiner.final.mapin_rgbB_component * 3; |
| 3088 | i = ~combiner.final.mapin_rgbB_component & 1; |
| 3089 | for (d = 0; d < 3; d++) { |
| 3090 | combiner.variable_B[d] = pv[c]; |
| 3091 | c = c + i; |
| 3092 | } |
| 3093 | combiner_map_input_function3(combiner.final.mapin_rgbB_mapping, combiner.variable_B); |
| 3094 | // C |
| 3095 | pv = combiner_map_input_select3(combiner.final.mapin_rgbC_input); |
| 3096 | c = combiner.final.mapin_rgbC_component * 3; |
| 3097 | i = ~combiner.final.mapin_rgbC_component & 1; |
| 3098 | for (d = 0; d < 3; d++) { |
| 3099 | combiner.variable_C[d] = pv[c]; |
| 3100 | c = c + i; |
| 3101 | } |
| 3102 | combiner_map_input_function3(combiner.final.mapin_rgbC_mapping, combiner.variable_C); |
| 3103 | // D |
| 3104 | pv = combiner_map_input_select3(combiner.final.mapin_rgbD_input); |
| 3105 | c = combiner.final.mapin_rgbD_component * 3; |
| 3106 | i = ~combiner.final.mapin_rgbD_component & 1; |
| 3107 | for (d = 0; d < 3; d++) { |
| 3108 | combiner.variable_D[d] = pv[c]; |
| 3109 | c = c + i; |
| 3110 | } |
| 3111 | combiner_map_input_function3(combiner.final.mapin_rgbD_mapping, combiner.variable_D); |
| 3112 | // G |
| 3113 | combiner.variable_G = combiner_map_input_select(combiner.final.mapin_aG_input, 2 + combiner.final.mapin_aG_component); |
| 3114 | } |
| 3115 | |
| 3116 | void nv2a_renderer::combiner_final_output() |
| 3117 | { |
| 3118 | // rgb |
| 3119 | combiner.output[0] = combiner.variable_A[0] * combiner.variable_B[0] + (1.0 - combiner.variable_A[0])*combiner.variable_C[0] + combiner.variable_D[0]; |
| 3120 | combiner.output[1] = combiner.variable_A[1] * combiner.variable_B[1] + (1.0 - combiner.variable_A[1])*combiner.variable_C[1] + combiner.variable_D[1]; |
| 3121 | combiner.output[2] = combiner.variable_A[2] * combiner.variable_B[2] + (1.0 - combiner.variable_A[2])*combiner.variable_C[2] + combiner.variable_D[2]; |
| 3122 | combiner.output[0] = MIN(combiner.output[0], 1.0); |
| 3123 | combiner.output[1] = MIN(combiner.output[1], 1.0); |
| 3124 | combiner.output[2] = MIN(combiner.output[2], 1.0); |
| 3125 | // a |
| 3126 | combiner.output[3] = combiner_map_input_function(combiner.final.mapin_aG_mapping, combiner.variable_G); |
| 3127 | } |
| 3128 | |
| 3129 | void nv2a_renderer::combiner_function_AB(float result[4]) |
| 3130 | { |
| 3131 | result[0] = combiner.variable_A[0] * combiner.variable_B[0]; |
| 3132 | result[1] = combiner.variable_A[1] * combiner.variable_B[1]; |
| 3133 | result[2] = combiner.variable_A[2] * combiner.variable_B[2]; |
| 3134 | } |
| 3135 | |
| 3136 | void nv2a_renderer::combiner_function_AdotB(float result[4]) |
| 3137 | { |
| 3138 | result[0] = combiner.variable_A[0] * combiner.variable_B[0] + combiner.variable_A[1] * combiner.variable_B[1] + combiner.variable_A[2] * combiner.variable_B[2]; |
| 3139 | result[1] = result[0]; |
| 3140 | result[2] = result[0]; |
| 3141 | } |
| 3142 | |
| 3143 | void nv2a_renderer::combiner_function_CD(float result[4]) |
| 3144 | { |
| 3145 | result[0] = combiner.variable_C[0] * combiner.variable_D[0]; |
| 3146 | result[1] = combiner.variable_C[1] * combiner.variable_D[1]; |
| 3147 | result[2] = combiner.variable_C[2] * combiner.variable_D[2]; |
| 3148 | } |
| 3149 | |
| 3150 | void nv2a_renderer::combiner_function_CdotD(float result[4]) |
| 3151 | { |
| 3152 | result[0] = combiner.variable_C[0] * combiner.variable_D[0] + combiner.variable_C[1] * combiner.variable_D[1] + combiner.variable_C[2] * combiner.variable_D[2]; |
| 3153 | result[1] = result[0]; |
| 3154 | result[2] = result[0]; |
| 3155 | } |
| 3156 | |
| 3157 | void nv2a_renderer::combiner_function_ABmuxCD(float result[4]) |
| 3158 | { |
| 3159 | if (combiner.register_spare0[3] >= 0.5) |
| 3160 | combiner_function_AB(result); |
| 3161 | else |
| 3162 | combiner_function_CD(result); |
| 3163 | } |
| 3164 | |
| 3165 | void nv2a_renderer::combiner_function_ABsumCD(float result[4]) |
| 3166 | { |
| 3167 | result[0] = combiner.variable_A[0] * combiner.variable_B[0] + combiner.variable_C[0] * combiner.variable_D[0]; |
| 3168 | result[1] = combiner.variable_A[1] * combiner.variable_B[1] + combiner.variable_C[1] * combiner.variable_D[1]; |
| 3169 | result[2] = combiner.variable_A[2] * combiner.variable_B[2] + combiner.variable_C[2] * combiner.variable_D[2]; |
| 3170 | } |
| 3171 | |
| 3172 | void nv2a_renderer::combiner_compute_rgb_outputs(int stage_number) |
| 3173 | { |
| 3174 | int n = stage_number; |
| 3175 | int m; |
| 3176 | float biasrgb, scalergb; |
| 3177 | |
| 3178 | if (combiner.stage[n].mapout_rgb_bias) |
| 3179 | biasrgb = -0.5; |
| 3180 | else |
| 3181 | biasrgb = 0; |
| 3182 | switch (combiner.stage[n].mapout_rgb_scale) { |
| 3183 | case 0: |
| 3184 | default: |
| 3185 | scalergb = 1.0; |
| 3186 | break; |
| 3187 | case 1: |
| 3188 | scalergb = 2.0; |
| 3189 | break; |
| 3190 | case 2: |
| 3191 | scalergb = 4.0; |
| 3192 | break; |
| 3193 | case 3: |
| 3194 | scalergb = 0.5; |
| 3195 | break; |
| 3196 | } |
| 3197 | if (combiner.stage[n].mapout_rgbAB_dotproduct) { |
| 3198 | m = 1; |
| 3199 | combiner_function_AdotB(combiner.function_RGBop1); |
| 3200 | } |
| 3201 | else { |
| 3202 | m = 0; |
| 3203 | combiner_function_AB(combiner.function_RGBop1); |
| 3204 | } |
| 3205 | combiner.function_RGBop1[0] = MAX(MIN((combiner.function_RGBop1[0] + biasrgb) * scalergb, 1.0), -1.0); |
| 3206 | combiner.function_RGBop1[1] = MAX(MIN((combiner.function_RGBop1[1] + biasrgb) * scalergb, 1.0), -1.0); |
| 3207 | combiner.function_RGBop1[2] = MAX(MIN((combiner.function_RGBop1[2] + biasrgb) * scalergb, 1.0), -1.0); |
| 3208 | if (combiner.stage[n].mapout_rgbCD_dotproduct) { |
| 3209 | m = m | 1; |
| 3210 | combiner_function_CdotD(combiner.function_RGBop2); |
| 3211 | } |
| 3212 | else |
| 3213 | combiner_function_CD(combiner.function_RGBop2); |
| 3214 | combiner.function_RGBop2[0] = MAX(MIN((combiner.function_RGBop2[0] + biasrgb) * scalergb, 1.0), -1.0); |
| 3215 | combiner.function_RGBop2[1] = MAX(MIN((combiner.function_RGBop2[1] + biasrgb) * scalergb, 1.0), -1.0); |
| 3216 | combiner.function_RGBop2[2] = MAX(MIN((combiner.function_RGBop2[2] + biasrgb) * scalergb, 1.0), -1.0); |
| 3217 | if (m == 0) { |
| 3218 | if (combiner.stage[n].mapout_rgb_muxsum) |
| 3219 | combiner_function_ABmuxCD(combiner.function_RGBop3); |
| 3220 | else |
| 3221 | combiner_function_ABsumCD(combiner.function_RGBop3); |
| 3222 | combiner.function_RGBop3[0] = MAX(MIN((combiner.function_RGBop3[0] + biasrgb) * scalergb, 1.0), -1.0); |
| 3223 | combiner.function_RGBop3[1] = MAX(MIN((combiner.function_RGBop3[1] + biasrgb) * scalergb, 1.0), -1.0); |
| 3224 | combiner.function_RGBop3[2] = MAX(MIN((combiner.function_RGBop3[2] + biasrgb) * scalergb, 1.0), -1.0); |
| 3225 | } |
| 3226 | } |
| 3227 | |
| 3228 | void nv2a_renderer::combiner_compute_a_outputs(int stage_number) |
| 3229 | { |
| 3230 | int n = stage_number; |
| 3231 | float biasa, scalea; |
| 3232 | |
| 3233 | if (combiner.stage[n].mapout_a_bias) |
| 3234 | biasa = -0.5; |
| 3235 | else |
| 3236 | biasa = 0; |
| 3237 | switch (combiner.stage[n].mapout_a_scale) { |
| 3238 | case 0: |
| 3239 | default: |
| 3240 | scalea = 1.0; |
| 3241 | break; |
| 3242 | case 1: |
| 3243 | scalea = 2.0; |
| 3244 | break; |
| 3245 | case 2: |
| 3246 | scalea = 4.0; |
| 3247 | break; |
| 3248 | case 3: |
| 3249 | scalea = 0.5; |
| 3250 | break; |
| 3251 | } |
| 3252 | combiner.function_Aop1 = combiner.variable_A[3] * combiner.variable_B[3]; |
| 3253 | combiner.function_Aop1 = MAX(MIN((combiner.function_Aop1 + biasa) * scalea, 1.0), -1.0); |
| 3254 | combiner.function_Aop2 = combiner.variable_C[3] * combiner.variable_D[3]; |
| 3255 | combiner.function_Aop2 = MAX(MIN((combiner.function_Aop2 + biasa) * scalea, 1.0), -1.0); |
| 3256 | if (combiner.stage[n].mapout_a_muxsum) { |
| 3257 | if (combiner.register_spare0[3] >= 0.5) |
| 3258 | combiner.function_Aop3 = combiner.variable_A[3] * combiner.variable_B[3]; |
| 3259 | else |
| 3260 | combiner.function_Aop3 = combiner.variable_C[3] * combiner.variable_D[3]; |
| 3261 | } |
| 3262 | else |
| 3263 | combiner.function_Aop3 = combiner.variable_A[3] * combiner.variable_B[3] + combiner.variable_C[3] * combiner.variable_D[3]; |
| 3264 | combiner.function_Aop3 = MAX(MIN((combiner.function_Aop3 + biasa) * scalea, 1.0), -1.0); |
| 3265 | } |
| 3266 | |
| 3267 | bool nv2a_renderer::vblank_callback(screen_device &screen, bool state) |
| 3268 | { |
| 3269 | //printf("vblank_callback\n\r"); |
| 3270 | if (state == true) |
| 3271 | pcrtc[0x100 / 4] |= 1; |
| 3272 | else |
| 3273 | pcrtc[0x100 / 4] &= ~1; |
| 3274 | if (pcrtc[0x100 / 4] & pcrtc[0x140 / 4]) |
| 3275 | pmc[0x100 / 4] |= 0x1000000; |
| 3276 | else |
| 3277 | pmc[0x100 / 4] &= ~0x1000000; |
| 3278 | if ((pmc[0x100 / 4] != 0) && (pmc[0x140 / 4] != 0)) { |
| 3279 | // send interrupt |
| 3280 | return true; |
| 3281 | } |
| 3282 | else |
| 3283 | return false; |
| 3284 | } |
| 3285 | |
| 3286 | UINT32 nv2a_renderer::screen_update_callback(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 3287 | { |
| 3288 | UINT32 *dst = (UINT32 *)bitmap.raw_pixptr(0, 0); |
| 3289 | UINT32 *src = (UINT32 *)fb.raw_pixptr(0, 0); |
| 3290 | |
| 3291 | //printf("updatescreen\n\r"); |
| 3292 | memcpy(dst, src, bitmap.rowbytes()*bitmap.height()); |
| 3293 | return 0; |
| 3294 | } |
| 3295 | |
| 3296 | READ32_MEMBER(nv2a_renderer::geforce_r) |
| 3297 | { |
| 3298 | static int x, ret; |
| 3299 | |
| 3300 | ret = 0; |
| 3301 | if (offset == 0x1804f6) { |
| 3302 | x = x ^ 0x08080808; |
| 3303 | ret = x; |
| 3304 | } |
| 3305 | if ((offset >= 0x00101000 / 4) && (offset < 0x00102000 / 4)) { |
| 3306 | //logerror("NV_2A: read STRAPS[%06X] mask %08X value %08X\n",offset*4-0x00101000,mem_mask,ret); |
| 3307 | } |
| 3308 | else if ((offset >= 0x00002000 / 4) && (offset < 0x00004000 / 4)) { |
| 3309 | ret = pfifo[offset - 0x00002000 / 4]; |
| 3310 | // PFIFO.CACHE1.STATUS or PFIFO.RUNOUT_STATUS |
| 3311 | if ((offset == 0x3214 / 4) || (offset == 0x2400 / 4)) |
| 3312 | ret = 0x10; |
| 3313 | //logerror("NV_2A: read PFIFO[%06X] value %08X\n",offset*4-0x00002000,ret); |
| 3314 | } |
| 3315 | else if ((offset >= 0x00700000 / 4) && (offset < 0x00800000 / 4)) { |
| 3316 | ret = ramin[offset - 0x00700000 / 4]; |
| 3317 | //logerror("NV_2A: read PRAMIN[%06X] value %08X\n",offset*4-0x00700000,ret); |
| 3318 | } |
| 3319 | else if ((offset >= 0x00400000 / 4) && (offset < 0x00402000 / 4)) { |
| 3320 | //logerror("NV_2A: read PGRAPH[%06X] value %08X\n",offset*4-0x00400000,ret); |
| 3321 | } |
| 3322 | else if ((offset >= 0x00600000 / 4) && (offset < 0x00601000 / 4)) { |
| 3323 | ret = pcrtc[offset - 0x00600000 / 4]; |
| 3324 | //logerror("NV_2A: read PCRTC[%06X] value %08X\n",offset*4-0x00600000,ret); |
| 3325 | } |
| 3326 | else if ((offset >= 0x00000000 / 4) && (offset < 0x00001000 / 4)) { |
| 3327 | ret = pmc[offset - 0x00000000 / 4]; |
| 3328 | //logerror("NV_2A: read PMC[%06X] value %08X\n",offset*4-0x00000000,ret); |
| 3329 | } |
| 3330 | else if ((offset >= 0x00800000 / 4) && (offset < 0x00900000 / 4)) { |
| 3331 | // 32 channels size 0x10000 each, 8 subchannels per channel size 0x2000 each |
| 3332 | int chanel, subchannel, suboffset; |
| 3333 | |
| 3334 | suboffset = offset - 0x00800000 / 4; |
| 3335 | chanel = (suboffset >> (16 - 2)) & 31; |
| 3336 | subchannel = (suboffset >> (13 - 2)) & 7; |
| 3337 | suboffset = suboffset & 0x7ff; |
| 3338 | if (suboffset < 0x80 / 4) |
| 3339 | ret = channel[chanel][subchannel].regs[suboffset]; |
| 3340 | //logerror("NV_2A: read channel[%02X,%d,%04X]=%08X\n",chanel,subchannel,suboffset*4,ret); |
| 3341 | return ret; |
| 3342 | } |
| 3343 | else; |
| 3344 | //logerror("NV_2A: read at %08X mask %08X value %08X\n",0xfd000000+offset*4,mem_mask,ret); |
| 3345 | return ret; |
| 3346 | } |
| 3347 | |
| 3348 | WRITE32_MEMBER(nv2a_renderer::geforce_w) |
| 3349 | { |
| 3350 | if ((offset >= 0x00101000 / 4) && (offset < 0x00102000 / 4)) { |
| 3351 | //logerror("NV_2A: write STRAPS[%06X] mask %08X value %08X\n",offset*4-0x00101000,mem_mask,data); |
| 3352 | } |
| 3353 | else if ((offset >= 0x00002000 / 4) && (offset < 0x00004000 / 4)) { |
| 3354 | int e = offset - 0x00002000 / 4; |
| 3355 | if (e >= (sizeof(pfifo) / sizeof(UINT32))) |
| 3356 | return; |
| 3357 | COMBINE_DATA(pfifo + e); |
| 3358 | //logerror("NV_2A: read PFIFO[%06X]=%08X\n",offset*4-0x00002000,data & mem_mask); // 2210 pfifo ramht & 1f0 << 12 |
| 3359 | } |
| 3360 | else if ((offset >= 0x00700000 / 4) && (offset < 0x00800000 / 4)) { |
| 3361 | int e = offset - 0x00700000 / 4; |
| 3362 | if (e >= (sizeof(ramin) / sizeof(UINT32))) |
| 3363 | return; |
| 3364 | COMBINE_DATA(ramin + e); |
| 3365 | //logerror("NV_2A: write PRAMIN[%06X]=%08X\n",offset*4-0x00700000,data & mem_mask); |
| 3366 | } |
| 3367 | else if ((offset >= 0x00400000 / 4) && (offset < 0x00402000 / 4)) { |
| 3368 | //logerror("NV_2A: write PGRAPH[%06X]=%08X\n",offset*4-0x00400000,data & mem_mask); |
| 3369 | } |
| 3370 | else if ((offset >= 0x00600000 / 4) && (offset < 0x00601000 / 4)) { |
| 3371 | int e = offset - 0x00600000 / 4; |
| 3372 | if (e >= (sizeof(pcrtc) / sizeof(UINT32))) |
| 3373 | return; |
| 3374 | COMBINE_DATA(pcrtc + e); |
| 3375 | //logerror("NV_2A: write PCRTC[%06X]=%08X\n",offset*4-0x00600000,data & mem_mask); |
| 3376 | } |
| 3377 | else if ((offset >= 0x00000000 / 4) && (offset < 0x00001000 / 4)) { |
| 3378 | int e = offset - 0x00000000 / 4; |
| 3379 | if (e >= (sizeof(pmc) / sizeof(UINT32))) |
| 3380 | return; |
| 3381 | COMBINE_DATA(pmc + e); |
| 3382 | //logerror("NV_2A: write PMC[%06X]=%08X\n",offset*4-0x00000000,data & mem_mask); |
| 3383 | } |
| 3384 | else if ((offset >= 0x00800000 / 4) && (offset < 0x00900000 / 4)) { |
| 3385 | // 32 channels size 0x10000 each, 8 subchannels per channel size 0x2000 each |
| 3386 | int chanel, subchannel, suboffset; |
| 3387 | int method, count, handle, objclass; |
| 3388 | #ifdef LOG_NV2A |
| 3389 | int subch; |
| 3390 | #endif |
| 3391 | |
| 3392 | suboffset = offset - 0x00800000 / 4; |
| 3393 | chanel = (suboffset >> (16 - 2)) & 31; |
| 3394 | subchannel = (suboffset >> (13 - 2)) & 7; |
| 3395 | suboffset = suboffset & 0x7ff; |
| 3396 | //logerror("NV_2A: write channel[%02X,%d,%04X]=%08X\n",chanel,subchannel,suboffset*4,data & mem_mask); |
| 3397 | if (suboffset >= 0x80 / 4) |
| 3398 | return; |
| 3399 | COMBINE_DATA(&channel[chanel][subchannel].regs[suboffset]); |
| 3400 | if ((suboffset == 0x40 / 4) || (suboffset == 0x44 / 4)) { // DMA_PUT or DMA_GET |
| 3401 | UINT32 *dmaput, *dmaget; |
| 3402 | UINT32 cmd, cmdtype; |
| 3403 | int countlen; |
| 3404 | |
| 3405 | dmaput = &channel[chanel][subchannel].regs[0x40 / 4]; |
| 3406 | dmaget = &channel[chanel][subchannel].regs[0x44 / 4]; |
| 3407 | //printf("dmaget %08X dmaput %08X\n\r",*dmaget,*dmaput); |
| 3408 | if ((*dmaput == 0x048cf000) && (*dmaget == 0x07f4d000)) |
| 3409 | *dmaget = *dmaput; |
| 3410 | while (*dmaget != *dmaput) { |
| 3411 | cmd = space.read_dword(*dmaget); |
| 3412 | *dmaget += 4; |
| 3413 | cmdtype = geforce_commandkind(cmd); |
| 3414 | switch (cmdtype) |
| 3415 | { |
| 3416 | case 6: // jump |
| 3417 | #ifdef LOG_NV2A |
| 3418 | printf("jump dmaget %08X", *dmaget); |
| 3419 | #endif |
| 3420 | *dmaget = cmd & 0xfffffffc; |
| 3421 | #ifdef LOG_NV2A |
| 3422 | printf(" -> %08X\n\r", *dmaget); |
| 3423 | #endif |
| 3424 | break; |
| 3425 | case 0: // increasing method |
| 3426 | method = (cmd >> 2) & 2047; // method*4 is address // if method >= 0x40 send it to assigned object |
| 3427 | #ifdef LOG_NV2A |
| 3428 | subch = (cmd >> 13) & 7; |
| 3429 | #endif |
| 3430 | count = (cmd >> 18) & 2047; |
| 3431 | if ((method == 0) && (count == 1)) { |
| 3432 | handle = space.read_dword(*dmaget); |
| 3433 | handle = geforce_object_offset(handle); |
| 3434 | #ifdef LOG_NV2A |
| 3435 | logerror(" assign to subchannel %d object at %d\n", subch, handle); |
| 3436 | #endif |
| 3437 | channel[chanel][subchannel].object.objhandle = handle; |
| 3438 | handle = ramin[handle / 4]; |
| 3439 | objclass = handle & 0xff; |
| 3440 | channel[chanel][subchannel].object.objclass = objclass; |
| 3441 | *dmaget += 4; |
| 3442 | } |
| 3443 | else { |
| 3444 | #ifdef LOG_NV2A |
| 3445 | logerror(" subch. %d method %04x offset %04x count %d\n", subch, method, method * 4, count); |
| 3446 | #endif |
| 3447 | while (count > 0) { |
| 3448 | countlen = 1; |
| 3449 | geforce_exec_method(space, chanel, subchannel, method, *dmaget, countlen); |
| 3450 | count--; |
| 3451 | method++; |
| 3452 | *dmaget += 4; |
| 3453 | } |
| 3454 | } |
| 3455 | break; |
| 3456 | case 5: // non-increasing method |
| 3457 | method = (cmd >> 2) & 2047; |
| 3458 | #ifdef LOG_NV2A |
| 3459 | subch = (cmd >> 13) & 7; |
| 3460 | #endif |
| 3461 | count = (cmd >> 18) & 2047; |
| 3462 | if ((method == 0) && (count == 1)) { |
| 3463 | #ifdef LOG_NV2A |
| 3464 | logerror(" assign channel %d\n", subch); |
| 3465 | #endif |
| 3466 | handle = space.read_dword(*dmaget); |
| 3467 | handle = geforce_object_offset(handle); |
| 3468 | #ifdef LOG_NV2A |
| 3469 | logerror(" assign to subchannel %d object at %d\n", subch, handle); |
| 3470 | #endif |
| 3471 | channel[chanel][subchannel].object.objhandle = handle; |
| 3472 | handle = ramin[handle / 4]; |
| 3473 | objclass = handle & 0xff; |
| 3474 | channel[chanel][subchannel].object.objclass = objclass; |
| 3475 | *dmaget += 4; |
| 3476 | } |
| 3477 | else { |
| 3478 | #ifdef LOG_NV2A |
| 3479 | logerror(" subch. %d method %04x offset %04x count %d\n", subch, method, method * 4, count); |
| 3480 | #endif |
| 3481 | while (count > 0) { |
| 3482 | countlen = count; |
| 3483 | geforce_exec_method(space, chanel, subchannel, method, *dmaget, countlen); |
| 3484 | *dmaget += 4 * (count - countlen); |
| 3485 | count = countlen; |
| 3486 | } |
| 3487 | } |
| 3488 | break; |
| 3489 | case 3: // long non-increasing method |
| 3490 | method = (cmd >> 2) & 2047; |
| 3491 | #ifdef LOG_NV2A |
| 3492 | subch = (cmd >> 13) & 7; |
| 3493 | #endif |
| 3494 | count = space.read_dword(*dmaget); |
| 3495 | *dmaget += 4; |
| 3496 | if ((method == 0) && (count == 1)) { |
| 3497 | handle = space.read_dword(*dmaget); |
| 3498 | handle = geforce_object_offset(handle); |
| 3499 | #ifdef LOG_NV2A |
| 3500 | logerror(" assign to subchannel %d object at %d\n", subch, handle); |
| 3501 | #endif |
| 3502 | channel[chanel][subchannel].object.objhandle = handle; |
| 3503 | handle = ramin[handle / 4]; |
| 3504 | objclass = handle & 0xff; |
| 3505 | channel[chanel][subchannel].object.objclass = objclass; |
| 3506 | *dmaget += 4; |
| 3507 | } |
| 3508 | else { |
| 3509 | #ifdef LOG_NV2A |
| 3510 | logerror(" subch. %d method %04x offset %04x count %d\n", subch, method, method * 4, count); |
| 3511 | #endif |
| 3512 | while (count > 0) { |
| 3513 | countlen = count; |
| 3514 | geforce_exec_method(space, chanel, subchannel, method, *dmaget, countlen); |
| 3515 | *dmaget += 4 * (count - countlen); |
| 3516 | count = countlen; |
| 3517 | } |
| 3518 | } |
| 3519 | break; |
| 3520 | default: |
| 3521 | logerror(" unimplemented command %08X\n", cmd); |
| 3522 | } |
| 3523 | } |
| 3524 | } |
| 3525 | } |
| 3526 | else; |
| 3527 | // logerror("NV_2A: write at %08X mask %08X value %08X\n",0xfd000000+offset*4,mem_mask,data); |
| 3528 | } |