commodore c64: emulator Vice

Macie ochotę pobawić się w stylu retro… bez wydawania pieniędzy? Nie ma problemu. Wystarczy zainstalować  odpowiedni emulator. Oczywiście to nie będzie całkiem to samo – ale da pewien „przedsmak”… który być może zaowocuje decyzją o zakupie prawdziwego sprzętu:)

Przedmiotem tego tekstu będzie emulator commodore 64 – VICE.

Instalacja

VICE to jeden z najpopularniejszych (choć nie jedyny) emulator commodore c64. Strona domowa projektu znajduje się tutaj: VICE: the Versatile Commodore Emulator.

Dla Windows

Pobierzcie plik WinVICE-.7z. Dostępne są wersje 32 – i 64- bitowe – wybierzcie odpowiednią, dla używanego przez Was systemu. Instalator spakowany jest programem 7zip – musicie go pobrać osobno.

Po rozpakowaniu… po prostu uruchomcie plik x64.exe.

Dla Linux

Pakiet Vice dostępny jest przez repozytoria Debiana. Niestety oferowana dystrybucja nie zawiera kilku części, co do których… powiedzmy, że są kontrowersje co do praw autorskich. Dlatego lepiej przekompilować ją sobie samodzielnie. Opieram się tu na instrukcjach znalezionych na forum ask ubuntu.

  1. Pobierzcie kod źródłowy z repo.
  2. Rozpakujcie go do katalogu jakiegoś katalogu:
  3. Doinstalujcie zależności

    A w instrukcji brakuje:
  4. Teraz pozostaje kompilacja:

Teraz wystarczy wywołać:

I gotowe:

BASIC

To co widzicie teraz na ekranie, to interfejs do interpretera basic (Beginner’s All-purpose Symbolic Instruction Code) – chyba najbardziej podstawowego języka programowania. Na pierwszy strzał możecie spróbować operacji matematycznych:

PRINT 5+8

PRINT 5/8

Z BASIC możecie pracować w dwóch trybach: bezpośrednim (direct, jak powyżej) i programowania. Jeżeli wpiszecie polecenie i wciśnięcie enter (cóż, return) – komenda zostanie wykonana natychmiast (tryb direct). Jeżeli jednak linię zaczniecie od numeru, jak 10, 20 czy 30 – wtedy BASIC uzna, że wpisujecie program. Możecie go potem uruchomić kolejną komendą RUN a zatrzymać wciskając klawisz [ESC].

Przykładowo, ciąg fibonacciego: 1, 1, 2, 3, 5, 8…, możecie wygenerować następującym programem:

Teraz wystarczy wpisać komendę RUN:

Przy liczbie 1.27E+38 (czyli 1.27 * 10^38) wystąpił błąd przepełnienia.

I tu uwaga: basic zakłada, że każda zmienna jest typu rzeczywistego. Stąd zmienne łańcuchowe (napisy) powinny kończyć się znakiem ‚$’ a całkowite – ‚%’. Jeżeli napiszecie:

Program zakończy się przepełnieniem… nawet szybciej niż poprzednio:

Kilka uwag na temat wpisywania programów:

  • każdą linijkę zaczynajcie od unikalnego numeru – np. 10, 20, 30
  • linie układane są zgodnie z ich numerami, możecie więc wpisać linię 10, potem 20 – a następnie 15, którą kompilator umieści między 10 a 20,
  • jeżeli dwa razy użyjecie tego samego numeru linii – poprzednia zawartość tej linii zostanie nadpisana; w ten sposób możecie poprawiać swoje programy,
  • znak „:” pozwala na rozdzielenie komend w linii
  • linia programu nie może być dłuższa niż 80 znaków,
  • nazwy zmiennych mogą być dowolnie długie, ale basic używa tylko 2 pierwszych liter; przykładowo XMA i XMB będą dla basica tą samą zmienną
  • basic zakłada, że każda zmienna jest typu rzeczywistego; stąd zmienne łańcuchowe (napisy) powinny kończyć się znakiem ‚$’ a całkowite – ‚%’
  • komenda LIST wypisuje program
  • komenda RUN uruchamia program

Basic potrafi zrozumieć 65 słów kluczowych. Niektóre kartridże (jak polski black box III) potrafią dodawać kolejne polecenia.

Jakaś gierka?

Ok, ale 20 milionów c64 nie kupiono tylko do pisania programów w basicu:) ROMów z grami do c64 znajdziecie w Sieci wiele. Większość z nich narusza prawa autorskie… Nie oszukujcie się – nawet jeżeli oryginalna firma, która wydała daną grę/program już dawno nie istnieje – prawa do tytułów na pewno zostały przekazane kolejnej. I kolejnej… i następnej.

Dosłownie dzień po publikacji tego tekstu… EmuParadise – jeden z największych serwisów oferujących ROM’y – usuną wiekszość swoich zbiorów. Powodem są potencjalne pozwy związane z prawami autorskimi.

Istnieje jednak nadzieja:) W Sieci znajdziecie wiele gier i programów w domenie publicznej – lub tzw. abandonware, do którego nikt się już nie przyznaje, wygasły do nich prawa itp.

Kilka uwag na temat grania na emulatorze:

  • Uruchomienie emulatora z ROM-em:

    … lub z menu głównego: File/Smart attach disk/tape, wskażcie plik ROM. W oknie emulatora wpiszcie polecenie ‚LOAD’. Teraz wystarczy wcisnąć ‚play’ na kaseciaku (  File/Datasette control/ Play):)
  • Settings: Enable Warp Mode: przydatne przy wgrywaniu, ale później lepiej wyłączyć. Znacznie ‚przyspiesza’ pracę emulatora.
  • Snapshot: kilka opcji, które pozwalają na zapisanie stanu gry. Na oryginalnym sprzęcie uruchamiającym program z magnetofonu, opcja taka nie jest dostępna – dopiero na stacjach dysków.

Emulator umożliwia zmianę mapowania klawiszy „joysticka”, zmianę parametrów SID’a – i innych parametrów.

Podsumowanie

Oczywiście emulator to nie to samo co prawdziwy sprzęt:) Ale wydaje mi się, że jeżeli myślicie o zakupie sprzętu retro – warto się z nim pobawić. Po prostu… może się okazać, że to nie do końca to, czego szukaliście:)

Skomentuj na facebook

Źródła

  • Instrukcja
  • http://www.c64.cc/Emulators/
  • http://www.c64.cc/
  • http://www.c64.org/
  • http://www.c64.com/
  • http://www.lemon64.com/
  • http://www.lemon64.com/forum/viewtopic.php?t=52808&sid=c44e70673b6ec70f0329bc1d6caf0887
  • http://www.classiccmp.org/cini/pdf/Commodore/C64%20Programmer’s%20Reference%20Guide.pdf
  • http://c64scene.plhttp://c64power.comhttp://c64.com.pl
  • http://www.lincade.org/sd2iec-on-atmega32-easier-data-exchange-with-my-c128/
  • https://atmegan.blogspot.com/2015/06/spotkanie-z-historia-commodore-64.html?m=0
  • http://files.commodore.software/Reference%20Material/Miscellaneous%20Stuff/Commodore%20Buyers%20Guide%20Vol.3.pdf
  • https://www.ppe.pl/publicystyka/493/okiem-dinozaura-commodore-vs-atari-czyli-wieczna-wojna-dwoch-dalekich-krewnych.html?page=1
  • http://personalpages.tds.net/~rcarlsen/cbm.html
  • http://derbian.webs.com/c64diag/
  • https://pclab.pl/news75254.html