Commodore 64 Ultimate sterowany AI – nowa Era C64

Cześć! Dzisiaj opowiem Wam, jak można stworzyć — a dokładniej wypromtować — oprogramowanie do sterowania C64 Ultimate.



Ultimate64, Ultimate-II+L czy teraz wypuszczony Commodore 64 Ultimate wystawiają RestApi do pobierania konfiguracji czy sterowania komputerem. Chciałem to wykorzystać, ale … w niestandardowy sposób … tak aby można było nim sterować za pomocą Agenta IA ! Postanowiłem napisać program w C# do tego celu, tak aby był łącznikiem pomiędzy Agentem AI a Commodore 64 Ultimate. Do tego celu są tzw. MCP Serwery – Model Context Protocol – ujednolicony standard w świecie IA. MCP Serwer udostepnia m.in. narzędzia dla Agenta AI. To co wystawia Ultimate chciałem opakować jako narzędzia w MCP Serwerze.

Ale nie tak szybko … dodatkowo chciałem podnieść poprzeczkę dla tego eksperymentu – tak aby IA (Agent + LLM) napisało ten Serwer MCP : Programy piszą Programy. Nie było to łatwe, ponieważ modele AI posiadają po pierwsze obciętą wiedzę do konkretnego czasu, a ten standard MCP jest bardzo dynamiczny. Dodatkowo to miało być napisane w C# – mało popularnym języku w świecie AI.

Ok, do dzieła! Visual Studio code oraz Agent Github Copilot podołały temu zadaniu. Oczywiście to nie było od razu. Testowałem wiele agentów oraz modeli AI. Musiałem mu dać wsad dot. tego z jakim RestApi ma mieć do czynienia, z jakich bibliotek ma skorzystać, dawać mu wskazówki jak to ma wyglądać i działać. Nie zawsze mu to dobrze szło, a nieraz nawet cofał się w rozwoju … było wiele momentów, że zastanawiałem się nad tym czy samemu tego nie napisać. Dzięki temu, że co chwile dostawał wskazówki co i jak ma robic dotarliśmy do celu. Dodatkowo chciałem, aby także napisał dokumentację do projektu, zrobił strukturę pod konteneryzację projektu i wystawił to jako docker compose, tak aby było łatwo to uruchomić na innych komputerach.
Dodatkowo postanowiłem dodać tool, który umożliwiał kompilowanie w locie kodu źródłowego w Basic do postaci pliku PRG, który następnie mozna wgrać do C64 ultimate.
Projekt jest całkowicie darmo, ma posiada otwarte źródła i znajduje się tutaj : https://github.com/ch0mik/C64UltimateMcpServer .
C64 Ultimate MCP Server – Dostępne Narzędzia
Machine Control (Kontrola Maszyny)
- ultimate_reset_machine – Miękki reset C64 (zachowuje konfigurację)
- ultimate_reboot_device – Pełny restart urządzenia (reinicjalizacja kartridża)
- ultimate_pause_machine – Wstrzymanie pracy maszyny
- ultimate_resume_machine – Wznowienie pracy maszyny
- ultimate_power_off – Wyłączenie C64
Program Management (Zarządzanie Programami)
- ultimate_generate_basic_prg – Generowanie PRG z kodu BASIC z konwersją do tokenów
- ultimate_load_program – Ładowanie programu PRG z systemu plików
- ultimate_run_program – Uruchomienie programu PRG z dysku
- ultimate_run_prg_binary – Uruchomienie programu z danych binarnych, URL lub pliku
- ultimate_run_cartridge – Uruchomienie kartridża
- ultimate_menu_button – Symulacja naciśnięcia przycisku menu
Memory Management (Zarządzanie Pamięcią)
- ultimate_read_memory – Odczyt zawartości pamięci RAM
- ultimate_write_memory – Zapis do pamięci RAM
- ultimate_write_memory_binary – Zapis danych binarnych do pamięci
- ultimate_get_debug_register – Odczyt rejestru debugowania
- ultimate_set_debug_register – Zapis do rejestru debugowania
Audio Playback (Odtwarzanie Dźwięku)
- ultimate_play_sid – Odtwarzanie pliku SID z wskazanym numerem piosenki
- ultimate_play_sid_binary – Odtwarzanie SID z danych binarnych, URL lub pliku
- ultimate_play_mod – Odtwarzanie pliku MOD
- ultimate_start_stream – Uruchomienie strumienia audio
- ultimate_stop_stream – Zatrzymanie strumienia audio
Drive Management (Zarządzanie Stacjami Dysków)
- ultimate_get_drives – Pobranie informacji o wszystkich stacjach dysków
- ultimate_mount_disk – Zamontowanie obrazu dysku z systemu plików lub danych binarnych
- ultimate_unmount_disk – Odmontowanie obrazu dysku
- ultimate_reset_drive – Reset wybranej stacji dysków
- ultimate_set_drive_mode – Zmiana trybu pracy stacji
- ultimate_turn_drive_on – Włączenie stacji dysków
- ultimate_turn_drive_off – Wyłączenie stacji dysków
Disk Creation (Tworzenie Dysków)
- ultimate_create_d64 – Tworzenie obrazu dysku 1541 (D64)
- ultimate_create_d71 – Tworzenie obrazu dysku 1571 (D71)
- ultimate_create_d81 – Tworzenie obrazu dysku 1581 (D81)
- ultimate_create_dnp – Tworzenie obrazu dysku Native Partition (DNP)
ROM Management (Zarządzanie ROM-ami)
- ultimate_load_drive_rom – Załadowanie niestandardowego ROM-u do stacji dysków
File Management (Zarządzanie Plikami)
- ultimate_get_file_info – Pobranie informacji o pliku
Configuration Management (Zarządzanie Konfiguracją)
- ultimate_get_config_categories – Pobranie listy dostępnych kategorii konfiguracyjnych
- ultimate_get_config_category – Pobranie ustawień całej kategorii
- ultimate_get_config_item – Pobranie wartości pojedynczego ustawienia
- ultimate_set_config_item – Zmiana wartości ustawienia
- ultimate_bulk_config_update – Masowa zmiana wielu ustawień jednocześnie
- ultimate_load_config – Załadowanie konfiguracji
- ultimate_save_config – Zapisanie konfiguracji
Connection Management (Zarządzanie Połączeniem)
- ultimate_get_connection – Pobranie aktualnych ustawień połączenia
- ultimate_set_connection – Zmiana hosta/portu do nawiązania połączenia
System Information (Informacje Systemowe)
- ultimate_version – Pobranie wersji C64 Ultimate
Razem: 45 narzędzi dostępnych w C64 Ultimate MCP Server
Tym poleceniem możecie uruchomić C64 Ultimate MCP Server :
docker run -p 8080:8080 -e ASPNETCORE_URLS=http://+:8080 -e Ultimate__BaseUrl=http://192.168.0.120 -d sq7mru/c64ultimatemcpserver:latest
Więcej dowiecie się z filmiku na YT :
Zapraszam do pobrania i korzystania !
Filed under: AI,C64,Commodore,MCP,Ultimate - @ 30 stycznia, 2026 15:36