Emulator C64S
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
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ć.
|