Emulator C64S

Jacek Fijołek
grimm@interia.pl

Miha Peternel  - 1995 rok Zastanawiam, się właśnie, dlaczego dałem się wrobić w ten artykuł... Miha Peternel miał 20 lat (1995), kiedy świat ujrzał jego emulator. Szczerze mówiąc myślałem, że to jakiś bogaty Fin, opływający w dostatki, garściami czerpiący z zachodniej literatury, podczas gdy w Polsce mapa pamięci C64 była szczytem marzeń. Być może dlatego sam nie napisałem emulatora. Miha Peternel to w rzeczywistości młody człowiek ze Słowenii, kraju w którym Stalin miał nieco mniej do powiedzenia niż w Polsce, niemniej Jugosławia nie była rajem... Na Jugosławię spadały bomby i choć najmniej dotknęło to właśnie Słowenię, to jednak wokół było dość gorąco. I w takim tyglu, jeszcze przed wojną, powstał mój ulubiony emulator C64S. Skoro więc on zrobił tak dużo, to ja też mogę, choć nie aż tyle.

Środowisko

C64S jest emulatorem DOSowym. Wprawdzie da się go uruchomić pod windozą, jednak będzie wtedy działał bardzo wolno. Powodem jest intensywne odwoływanie się emulatora do zegara. Aby zagwarantować kompatybilność z oryginałem C64S odwołuje się do Timera od 300 do 16000 razy na sekundę (takie liczby podaje Peternel). Windows pozwala na maksymalnie 1000 odwołań. Jeśli założy się, że 486 to komputer optymalny dla tego emulatora, należy również przyjąć, że jest on wstanie obsłużyć taką liczbę przerwań. W systemie  Windows powinien być więc 16 razy wolniejszy. Załóżmy też nasz procesor to Pentium 133 - Na takim również testowałem C64S. Już na pierwszy rzut oka jest przynajmniej 2x szybszy, co wynika z arytmetyki. W rzeczywistości jest jeszcze szybszy. Czy Pentium 133 będzie pracował szybciej?  Otóż nie - nadal będzie pracował nawet 16 razy wolniej niż 486, bo.... Liczba przerwań na jakie pozwala Windows nie wzrosła... dalej wynosi 1000. Nawet mój Athlon 1800+ chodzi wolniej niż 486, bo liczba przerwań jest stała i jest zależna od systemu, a nie od sprzętu. Cóż... C64S powstał w 1995, Win95  torował sobie dopiero drogę, a przed Win95 nikt poważny pod Windows gier nie pisał. Reasumując - nie należy używać C64S w systemie Windows. Na szczęście Windows9x proponuje uruchomienie emulatora w czystym DOSie. Użytkownicy WinMe powinni zaopatrzyć się w DOSową łatkę, Win2000/XP skazani są na dyskietkę startową z systemem DOS. Mój ulubiony Linux nie doczekał się swojej wersji. 

Wymagania

Procesor - 386 40MHz. Mój 486DX266MHz jest aż nadto dobry. Nawet pełna emulacja stacji dysków, o której sam autor pisze, że jest boleśnie powolna, nie powoduje znacznych opóźnień

Grafika - Autor podaje, że musi to być szybka karta VGA. Moja S386C805 z 1MB pamięci powala z nóg. (slot VLB-VesaLoacalBus pod wspomnianym wyżej komputerem) Jak wykazały moje testy wystarczy nawet półmegowa karta pod slot ISA (Trident9000), jednak należy wtedy ustawić compatible mode w menu configuracyjnym karty graficznej.

Dźwięk - Wystarczy głośniczek PC, jak się ma lutownicę, można zbudować COVOX, choć większość dzisiejszych użytkowników PC nawet nie wie, co to jest. C64S działa z powodzeniem z kartą SoundBlaster 16, YamahaOPL3Sax. Bez problemu pójdzie też pod zapomnianym już Gravisem UltraSound. Nie oczekujmy cudów - syntezatora mowy nie uruchomimy, podobnie zresztą jak pod VICE 1.7 czy CCS64.

Emulacja IO

Joystick - emulowany na definiowalnej klawiaturze. Można wykorzystać też Joystick spod PC.

Datassette - C64S obsługuje format *.t64. Do wersji pełnej dołączony jest obraz kasety z naszą ulubioną GianaSisters.

Floppy - 1541 w trybie szybkim, lub pełnym. Do gier wystarczy ten pierwszy, ale FastLoadery z Geosa będą wymagały tego drugiego. Niespotykaną gdzie indziej ciekawostką jest to, że gry możemy wczytywać bezpośrednio z prawdziwego napędu 1541... Jak podaje Miha - będą działać także inne, ale tego nie sprawdziłem. Aby tego dokonać trzeba wyłączyć pełną emulację 1541, przejść do sekcji LPT Connector i tam włączyć obsługę zewnętrznego napędu 1541. Potrzebny będzie jedynie kabelek X1541 - sprawdziłem - działa!!!. C64S obsługuje obrazy dyskietek w standardzie *.d64.



Schemat Connectora.


Praktyczne wykonanie.
Mój wisi na kabelkach.

Z tego Connectora skorzysta także StarCommander oraz dwa ciekawe programiki - jeden nazywa się ptap, a drugi mtap. C64S pomoże nam ustawić głowicę Datassette, potem włączamy mtap i zaczyna się rippowanie kasety w trybie raw. MicrusCopy w takim przypadku nam nie straszny. Do odczytania polecam VICe, bo naprawdę ładnie chłopaki zabrały się za emulację Datassette. Poczujemy sią jak przy prawdziwym magnetofonie i nawet licznik będzie cykał.

Myszka - Konfigurator przewiduje przechwytywanie myszki PC.

Printer - Istnieje możliwość podłączenia prawdziwej drukarki CBM, można też używać zwykłej drukarki PC, jednak wyłącznie w trybie znakowym.

Dodatki

Com1541 - umożliwia rippowanie dyskietek poprzez X1541. Nazwałbym go okrojoną i tekstową wersją StarCommandera. A ponieważ SC jest o wiele lepszy, nie ma sensu bliżej przedstawiać tego programu.

Konfiguracja C64s

Main Menu

Menu Główne

Soundcard & Settings

Ustawienia Karty Dźwiękowej

Video Mode

Ustawienia Karty Graficznej

Joystick Settings

Ustawienia Joysticka

LPT64 connector

PC Peripherials

Port LPT64

Peryferia PC

Emulation

Emulacja

Save & Quit

Zapamiętaj i Wyjdź

Soundcard & Settings

Ustawienia Karty Dźwiękowej

Select Soundcard

Wybierz Kartę Dźwiękową

Sound Qualty

Jakość Dźwięku

Sound Volume

Głośność

Sound Synchronisation

Synchronizacja Dźwięku

Playback Speed Tuning

Ustawienia Szybkości Odtwarzania

Jakość dźwięku wpływa na szybkość emulacji... im lepsza jakość, tym wolniejsza emulacja. Synchronizacja dźwięku nie dotyczy kart SundBlaster - one zawsze pracują synchronicznie. Głośniczek PC może jednak się zagrać ni w pięć ni w dziesięć. Jeśli tak jest włącz synchronizację i ustaw Playback Speed Tunning eksperymentując. By przyspieszyć emulację, synchronizację należy wałączyć.

Select Soundcard

Wybierz Kartę Dźwiękową

Autodetect

Autodetekcja

PC Speaker

Głośniczek PC

SoundBlaster

SoundBlaster

Gravis Ultrasound

Gravis Ultrasound

Covox / LPT DAC

Covox / LPT DAC

Pro Audio Spectrum

Pro Audio Spectrum

No Sound

Bez Dźwięku

C64S jako jedyny obsługuje głośniczek PC. Covox to takie urządzenie z mnóstwem rezystorów podłączane do portu LPT. W dawnych czasach była to "karta muzyczna dla biednych", którą zlutować mógł prawie każdy.

Sound Blaster

Sound Blaster

Autodetect Type

Automatycznie Wykryj Typ

SB 1.0 or clone

SB 1.0 lub klon

SB 2.0 / SB Pro

SB 2.0 / SB Pro

SB 16 / SB AWE 32

SB 16 / SB AWE 32

By użyć Soundblastera lub kompatybilnej karty upewnij się, że została ustawiona zmienna środowiskowa w autoexec.bat. Jeśli używasz SB16/AWE wraz ze sterownikiem pamięci EMM386 i nic nie słyszysz, zmień ustawiania karty na SB 2.0, gdy nie pomoże SB 1.0.

Video Mode

Tryb Graficzny

Compatible 320*200

Kompatybilny 320*200

Extended VGA 368*240

Extended VGA 368*240

Pierwszy z trybów zadziała na każdej karcie, jednak stracimy znaną z C64 ramkę. (Test - Trident 9000) 520kB. Drugi tryb całkiem dobrze przypomina to, co znamy z C64. Ale wymagania są większe. S3 86C85 radzi sobie z tym wyśmienicie. Prawdopodobnie ogromna większość nowych kart nie odmówi pracy.

Joystick Settings

Ustawienia Joysticka

Number Of Joystick

Liczba Joysticków

Scanning Mode

Tryb Skanowania

Jeśli PC nie wykrywa Joysticków, pierwsza opcja pomoże ustawić ich liczbę, możemy też wrócić do wykrywania automatycznego.
Tryb Skanowania - Kompatybilny działa zawsze, jednak tryb Compensating jest szybszy.

LPT64 Connector

Port LPT64

Connector Port

Numer Portu LPT

Device Redirection

Przekierowanie urządzenia

External CBM Disk

Zewnętrzny urządzenie (np. 1541)

External CBM Printer

Zewnętrzna Drukarka

Ta opcja czyni C64S wyjątkowym!!! Nie możesz jej używać przy pełnej emulacji 1541!!! jeśli chcesz używać prawdziwej stacji dysków dla C64 przez kabelek X1541 ustaw tu wszystko na autodetect.
Adres portu LPT najłatwiej odczytać w ramce podczas bootowania komputera, można też sprawdzić w BIOSIE.
CBM = Commodore Business Machines

PC Peripherials

Peryferia PC

Printer Port

Port Drukarki

Use PC Printer

Użyj Drukarki PC

Use PC Mouse

Użyj Myszki PC

Opcje te pozwalają nam przechwycić sprzęt podłączony do PC. Tutaj też podajemy, gzie podłączona jest Drukarka, niestety nie ma portu USB. Jeśli jednak używasz drukarki pod USB, masz wolny port LPT, pod który bez problemu podłączyć się da magnetofon lub stację dysków.

Emulation

Emulacja

1541 Emulation Mode

Tryb Emulacji 1541

REU 1750 Emulation

Emulacja REU 1750

Use PC Mouse

Użyj Myszki PC

C64S pracuje w dwóch trybach emulacji stacji dysków. Pamiętajmy, że stacja 1541 to właściwie pełnoprawny komputer ze swoim procesorem i pamięcią RAM, dlatego też jej emulowanie kosztuje sporo czasu. Można tu ustawić dwie opcje - Full (pełna) lub Fast (szybka). Opcja pełna sprawdza się przy używaniu GEOSA... normalnie jednak jest zbędna - bardzo mało gier używa własnych fastloadreów. Druga - szybka opcja - otwiera nasze gry w okamgnieniu. Musimy ją też uaktywnić, jeśli używamy prawdziwej stacji dysków!
Emulacja REU 1750 dodaje nam 512 kb RAM do naszych 64. Korzysta z tego właściwie tylko GEOS, a kto w Polsce Ludowej widział GEOSA? Gry nie używają tej dodatkowej pamięci.

TAPEIO - umożliwia rippowanie kaset poprzez podłączenie prawdziwego Datassette do PC przy pomocy X1541. Zawiera urządzenie do ustawienia głowicy, działa w trybie Normal i Turbo. Niestety nie radzi sobie z zabezpieczeniem MicrusCopy. TAPEIO skanuje również pliki wav, ale w takim przypadku nie da rady ustawić głowicy. Szczerze mówiąc nie udało i się zrobić nic sensownego w tym trybie. Także programy innych autorów udowadniają, że metoda ta nie uwzględnia luźnej śrubki od głowicy.

TapeIO 2.0 - C64 tape loader for PC
(C) Miha Peternel 1995, (C) Seattle Lab 1995

I .. Select Input Device (LPT Potr at 378)

Wybierz Port LPT (domyślnie 378)

T .. Select tape image file (tapeio.t64)

Wybierz Nazwę Obrazu Kasety

Mniej więcej tak powinny wyglądać paski przy taśmie turbo. Uwaga! Nie jest to snapshot, tylko mój rysunek!

M .. Monitor incoming data

Monitor Sygnału Wejściowego

L .. Load from input device

 Ładuj z Urządzenia Wejściowego

C64S nie pozwala na bezpośrednie korzystanie z magnetofonu. Zawiera jednak narzędzie do tworzenia obrazów kaset w formacie *.t64 i monitor ustawienia głowicy. Tak jak w C64 staramy się by paski były jak najwęższe. Kiedy nam się to uda, czas zająć się synchronizacją. Paski próbujemy kursorami ustawić tak jak na rysunku. Na moim 486 DX2 66MHz okazało się to niemożliwe. Do dziś nie wiem, co jest tego powodem, w sieci można jednak znaleźć kod źródłowy i to jest pole do popisu dla wielu z Was. Ja rozwiązałem ten problem w ten sposób, że wsadziłem kawałek spinacza w dziurkę do regulacji obrotów silniczka. Silnik wyraźnie  przyspieszył, a żółte linie znalazły się we właściwym miejscu. Nie radzę kręcić potencjometrem do obrotów - C64 nie przeczyta źle ustawionych obrotów. Wystarczy wsadzić spinacz i zewrzeć go z masą. Silnik aż zadudni. Niestety nie wiem, czy to pomoże na innych - szybszych komputerach. Nie mam odwagi eksperymentować na maszynach, z których żyję. Dodam jeszcze, że zwolnienie przycisku turbo (Nowe maszyny takiego nie mają) w niczym nie pomaga. Po ustawieniu głowicy, wciskamy "L". Na czarnym tle pojawią się komunikaty jak z C64. (Searching, Found, Loading), zacznie też migać ramka jak w starym dobrym turbo. Udało mi się jednak znaleźć wadę. Programy najwyraźniej ładowane są od komórki 2048 (jak w C64). Niestety nie wszystkie programy tak się ładują w praktyce. Dotyczy to kaset z autostartem, niektórych narzędzi i niestety programów zabezpieczonych np. systemem MicrusCopy, chyba najbardziej popularnym w Polsce. Sam Micrus jest w zasadzie prymitywny, ale i skuteczny dla milionów ludzi. Niestety mój 486 wyzionął ducha i nie mogę podać konkretnych Poke, choć wystarczą zaledwie dwa..., zwyczajnie nie mam na czym sprawdzić.

Braki

Interface C64 ma całkiem przejrzysty interface - uruchamiany klawiszem F9 i F10. Wyjątkiem jest tu zamykanie programu. Skąd autor wziął sekwencję CTRL+ALT+BREAK, nie mam pojęcia. Jeśli ktoś uruchamia ten program bez znajomości tej sekwencji, przeżyje stres, przeleci wszystkie znane kombinacje klawiszy, aż w końcu dojedzie do CTRL+ALT+DEL i wtedy zresetuje wirtualny komputer, zabawa zacznie się od nowa, a skończy się zapewne na przycisku power. Zdenerwowani raczej nie czytają HELPa. Kolejnym brakiem jest to, że C64S nie obsługuje w żaden sposób cartridgey. Możemy zapomnieć o wtykaniu wirtualnego finala. Obsługuje podanto tylko jeden napęd 1541.

Dla kogo przeznaczony jest C64S?

C64S ma jak widać wady... Napisałem gdzieś wyżej, że to mój ulubiony emulator. Ulubiony wcale nie oznacza jednak najlepszy.

Wyobraźmy więc sobie, że mamy kasetę z ulubioną grą. Gra ta krąży w Internecie, ale jest uszkodzona. Dziwnym trafem okazuje się, że wszyscy mają na swych witrynach tę samą wersję. Doświadczyłem tego sam na przykładzie gry Elephant Antic. Już pomyślałem, że widocznie emulatory nie są zbyt dobre... Dość jednak dygresji - mamy to w końcu na kasecie. Podłączamy Datassette do naszego portu LPT, kabelek X1541 musieliśmy zlutować sami, więc tak na 100% nie wiemy, czy dobrze, Datassette leżał 4 lata w piwnicy... No ale podłączamy go do naszego Pentium 1,5 GHz... a potem drukarka już nigdy na tym porcie nie ruszy. Przełączymy ją może na USB, ale gwarantuję, że od tej chwili maszyna będzie się wieszać. Zasilacze CBM to ostatnia nędza, co z tego że kochamy jeden z komputerów tej firmy!!! Nie ryzykujmy podłączenia stacji dysków pod komputer, na który wydaliśmy ostatnie oszczędności. Z doświadczenia wiem, co może się stać. Wielu z nas ma jednak gdzieś w kącie drugi komputer, albo i trzeci... C64S przerobi go na Commodora!!! Zrobi to świetnie... jesteśmy szaleni, więc zapragniemy usłyszeć cykanie naszej starej stacji dysków i wetkniemy kabelek X1541 do portu LPT i dawno zakurzone dyski zaczną się kręcić, zabuczy magnetofon u boku naszego peceta - to naprawdę większa frajda niż same gry. A jeśli coś nam nie wyjdzie... To przecież C64S i tak chodził na złomie!!! Muszę się pochwalić, że sam zlutowałem taki kabelek. Wszystkie moje gry mam teraz na CDROMie i są to nasze, polskie gry, jakie były tu kiedyś w naszych sklepach. Odpalę kiedyś wnukom! A jak pozbyć się Micrusa... może kiedyś napiszę, bo gdy C64 nazywany był jeszcze komputerem, udało mi się go złamać.

 © 1999-2019 Wszystkie prawa zastrzeżone
 Webmaster: Mariusz "Flooder" Młynek