Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Pegasus (Pegazus) - naprawa, przeróbka, ulepszenie

02 Sty 2010 17:02 9486 9
  • Admin DIY, Automatyka
    Witam,

    na wielu forach internetowych ciągną się długie dyskusje na temat tej ponadczasowej "konsoli". U nas na Elce tylko dwa wątki na ten temat w dodatku zakończone na niczym. Kilka tygodni temu wpadł mi w ręce jakiś stary połamany klon pegasusa - Liko system czy jakoś tak. Postanowiłem się temu urządzeniu bliżej przyjrzeć. Zainteresował mnie temat rozpoczęty przez jednego z kolegów co by dorobić do tej gierki dodatkowe wejście na inny nośnik. Rozebrałem kilka tych cartridge'y i w większości jest jeden glut i to wszysko. Mam jednak nośnik 168 in 1 (znany i lubiany) i tu są 4 cmosy 74ls..., jedna 32 nóżkowa kość ss8001 12967A-A s9310 - nie mam pojęcia co to jest oraz pamięc UM6164. Wynika z tego, że Pegasus jest 8 bitowym urządzeniem. Zapowiada się ciekawie - tylko na razie za mało informacji...

    Jest w internecie kilka stron z którym można pobrać pliki o rozszerzeniu *.nes. Doczytałem się na jednym z forów, że to niby jest wsad do cartridge - ale jakoś w to wątpię.

    Ponadto dostępne są poprzerabiane wersje najpopularniejszych gier np. Mario i tu pytanie: Czym edytować ten plik *.nes ? W czym to jest napisane ?

    Może ktoś ma już jakieś doświadczenie z przerabianiem tej niby konsoli. Powiem szczerze, że jak dorwałem tego pegasusa to zakręciła mi się łza z sentymentu i tak pomyślałem, że może ją trochę udoskonalę :)

    Będę wdzięczny za wypowiedzi.

    Paweł
  • Poziom 22  
    Chcesz oryginalnego pegazusa za 20 zł prześle ci w ramach świąt;p
  • Poziom 29  
    bestler napisał:
    (...) Rozebrałem kilka tych cartridge'y i w większości jest jeden glut i to wszysko. Mam jednak nośnik 168 in 1 (znany i lubiany) i tu są 4 cmosy 74ls..., jedna 32 nóżkowa kość ss8001 12967A-A s9310 - nie mam pojęcia co to jest oraz pamięc UM6164. Wynika z tego, że Pegasus jest 8 bitowym urządzeniem (...)


    Z tymi glutami nic nie zrobisz. Co najwyżej można zczytać ich zawartość. Ten 32 nóżkowy układ to jest pamięć ROM, natomiast pozostałe układy tworzą specjalny układ adresujący tą pamięć. RAM 6264 jest wykorzystywana przez układ graficzny. Oczywiście jest to ośmiobitowa konsola.

    Cytat:
    Jest w internecie kilka stron z którym można pobrać pliki o rozszerzeniu *.nes. Doczytałem się na jednym z forów, że to niby jest wsad do cartridge - ale jakoś w to wątpię.


    Jak najbardziej, jest to wsad do cartridge'a. Plik NES jest "zrzutem" zawartości pamięci ROM znajdującej się na karcie + 16 bajtowy nagłówek, zawierający informacje dla emulatorów.

    Cytat:
    Ponadto dostępne są poprzerabiane wersje najpopularniejszych gier np. Mario i tu pytanie: Czym edytować ten plik *.nes ? W czym to jest napisane ?


    Plik NES składa się z dwóch sekcji. Jedna z nich zawiera główny kod maszynowy (assembler 6502), druga zawiera dane graficzne i widzialna jest tylko przez procesor graficzny (VROM). Dostęp z poziomu kodu maszynowego do VROM odbywa się przez kilka rejestrów (portów) procesora graficznego. W tej części są zaimplementowane bitmapy, czcionki, itp.

    Co do realizacji hardwarowej karty pojawiają się problemy. Pamięć ROM i VROM podzielona jest na banki (sekcje np. po 8 czy 16kB). Wybór odpowiedniej sekcji dla pamięci programu i pamięci grafiki jest realizowany przez specjalne układy logiczne znajdujące się wewnątrz cartridge-a (Memory Mapper Controller - MMC). Czasami są to TTL-ki 74ls..., a czasami układy ASIC (MMC2, MMC3). Oznacza to, iż gra napisana dla architektury z układami adresującymi np. MMC2 nie będzie działać z żadnym innym układem, nawet jeżeli pamięci ROM mają taką samą wielkość.
  • Admin DIY, Automatyka
    No dobrze. A co z biosem ? Przecież bez cartridga ten pegasus jest dosłownie martwy - nic się nie wyświetla. Wynika z tego, że w tej pamięci (czy w tym pliku *.NES) są nie tylko gry właściwe ale coś ala bios - mam na myśli menu główne oraz jakiś sterownik grafiki ?

    Na jednym z forów user twierdzi, że kiedyś znał ludzi co "nagrywali" cartridge i sprzedawali na szeroką skalę - ciekawe czy to tylko bujda czy tak faktycznie było.

    Kolego Velsper - skąd masz masz taką wiedzę ? Ja sporo szukam w internecie i jakoś niewiele znajduje...
  • Poziom 34  
    Witam. Tam nie ma czegoś takiego jak BIOS. W zasadzie w tym wypadku można powiedzieć, że BIOS=ROM=GRA:). Kod maszynowy z pamięci ROM ( z cartridge) jest uruchamiany jako pierwszy i jedyny. Nie ma tam też czegoś takiego jak sterownik grafiki, ani niczego innego bo kod pisany jest dla określonego zawsze takiego samego hardware i odwołuje się bezpośrednio do niego. Informacje na ten temat są w internecie ogólnodostępne. Szukaj pod hasłami "NES" "HARDWARE" "ARCHITECTURE". PEGASUS to klon NES'a. Pozdrawiam.
  • Poziom 29  
    Zgadzam się z moim przedmówcą.

    Hardware NES-a to w zasadzie dwa układy : CPU (główny procesor, klon 6502) i specjalny układ graficzny (PPU). Dodatkowo jest tam 2x 2kB RAM-u jako bufor danych dla poszczególnych układów.

    Linie adresowe dla CPU i PPU są wyprowadzone na złącze karty - osobne dla CPU i osobne dla PPU. Linie danych są wspólne (przełączane między CPU i PPU przez bufory TTL). Sygnały audio generowane są przez CPU. Reszta logiki siedzi w karcie, gdzie specjalne układy adresujące przydzielają odpowiednie fragmenty ROM-u dla CPU (z kodem) i dla PPU (dane graficzne). Oczywiście z racji tego, że do obu pamięci idą osobne linie adresowe, pamięć przeznaczona dla CPU nie jest widoczna dla PPU, i na odwrót. BIOSu więc nie ma - procesor po włączeniu zasilania zaczyna wykonywać bezpośrednio kod gry zaszyty wewnątrz swojej części ROM-u.

    Pierwsze wersje kart do NES-a (Pegasusa) zawierały po prostu dwa odrębne układy pamięci - jedna dla CPU (32kB max) i jedna dla PPU (2kB). Jeżeli kod gry musiał być większy niż 32kB stosowano specjalne układy, dzielące większą pamięć na bloki. Dla przykładu 64kB można podzielić na 4 bloki po 16kB : pierwsze 16kB było zawsze stałe (blok 0), natomiast drugie 16kB mogło być programowo przełączane (blok 1-3), z racji tego iż procesor widzi tylko 32kB pamięci (15 linii adresowych). Analogiczne przełączanie bloków mogło być zastosowane dla PPU. Wybór odpowiednich bloków był realizowany przez odpowiednie układy scalone (czasami na bazie TTL 74xx, a czasami na bazie specjalizowanych układów scalonych, zwanych MMC). Więcej informacji znajdziesz tutaj : http://en.wikipedia.org/wiki/Memory_Management_Controller

    Co się z tym wiąże : każda gra posiada swój własny MMC i będzie działać tylko z takim układem adresującym na jaki została zaprojektowana. Oczywiście mając np. cartridge z MMC2 można "włożyć" tam każdą grę, która została zaprojektowana pod MMC2 - kwestia wyciągnięcia ROMu, zastąpienia EPROM-em czy Flashem, zaprogramowania i powinno to chodzić. Natomiast co do "emulacji" odpowiednich MMC, to bez programowalnej logiki się nie obejdzie (MMC1 to z tego co pamiętam PAL20V8, pozostałe są już bardziej rozbudowane).

    Podsumowywując : jest możliwość przeprogramowania karty, trzeba mieć tylko kilka bazowych kart z różnymi MMC, EPROM-y czy Flash-e i można kombinować. Do tego celu nadają się tylko karty, gdzie układy scalone są w obudowach przewlekanych czy też SMD. Zalane żywicą niestety odpadają.

    Skąd to wiem? Ano kiedyś próbowałem się tym bawić i szperałem mocno w sieci na ten temat. Udało mi się nawet zaprogramować jakąś kartę na bazie MMC3, a konkretnie jego "pirackiej" wersji AX5202P w DIP40 (oryginalny MMC3 jest w obudowie QFP).

    PS. Trochę ciekawych informacji jest tutaj : http://www.nesforum.e9.pl/index.php?board=18.0
  • Poziom 15  
    a jakby wsadzić tam mikrokontroler któryby sterował tym co ma sie pojawiać na wyjściu stykow od kardridża? z niego zrobić jakiśtaki "bios" założyć kartę pamięci i na nią wrzucać romy? dałoby radę? tylko czy jest sens takie coś robić? Bo to praktycznie to samo co zbudowanie konsoli od zera.
  • Poziom 29  
    :arrow:mrowaa
    Raczej tak jak piszesz - to w zasadzie zbudowanie konsoli od nowa. Nie jest to jednak niemożliwe, ale napewno pracochłonne.
    Niezła sprawa to wykorzystanie FPGA i zrobienie hardwarowego emulatora, jak np. tutaj :

    http://www.tripoint.org/kevtris/Projects/console/index.html
    http://cegt201.bradley.edu/projgrad/proj2006/fpganes/

    Projekty interesujące, ale FPGA to jeszcze nie dla mnie. Może kiedyś...

    :arrow:gregrzesiek
    Ale tylko MMC1... nie każdą grę tam wrzucisz. No i oczywiście trzeba mieć "bazową" kartę, która takowy układ posiada.
  • Poziom 21  
    Dźwięków pegasusa można słuchać w stereo- nóżka 1 i 2 cpu.
    Tutaj Przeróbka na RGB.