Copperline 0.9. Amigowy emulator w Ruście bierze się na poważnie za FPU
Nowy gracz na scenie: emulator Amigi napisany w Ruście, z bootromem AROS w komplecie. Wersja 0.9 celuje w to, czego inni nie lubią — matematyczne bebechy koprocesorów 68881 i 68882.
Świat amigowych emulatorów przez lata kręcił się wokół rdzenia UAE i jego pochodnych. Copperline idzie inną drogą — to emulator pisany od zera w Ruście, przez człowieka podpisującego się LinuxJedi. 2 lipca 2026 wyszła wersja 0.9.0 i widać, że projekt zaczyna dorastać.
Dostępny jest na trzy fronty: macOS (przez Homebrew albo uniwersalny DMG), Linux (AppImage) i Windows (przenośna paczka x64). Kto woli, buduje ze źródeł przez Cargo. W komplecie leci bootrom AROS, więc do pierwszego uruchomienia nie potrzebujesz oryginalnego Kickstartu — dopiero komercyjne oprogramowanie wymaga prawdziwych ROM-ów i obrazów nośników.
Motyw przewodni 0.9 to koprocesor arytmetyczny. Copperline bierze się za emulację jednostek zmiennoprzecinkowych Motoroli 68881 i 68882 — tych układów, które siedziały w mocniejszych konfiguracjach Amigi i liczyły dla programów użytkowych, matematyki, renderingu i cięższych zadań. To niewdzięczna, mrówcza robota, którą łatwo olać, bo mało kto ją testuje.
A lista jest długa: operacje o rozszerzonej precyzji, instrukcje monadyczne, funkcje wykładnicze, logarytmiczne, trygonometryczne i hiperboliczne. Do tego zaokrąglanie FPCR i raportowanie wyjątków FPSR, dokładne stałe FMOVECR oraz obsługa reszty w FMOD i FREM. Kto nie pisał nigdy nic pod FPU, ten spokojnie może przewinąć — ale kto pisał, ten wie, ile diabłów siedzi w tych szczegółach.
Poza koprocesorem doszły poprawki taktowania sprzętu w CIA, Pauli, klawiaturze, Denise, sprite'ach i układzie wyświetlania. Widoczność timerów CIA, stan silnika stacji dyskietek, uściski dłoni z mikrokontrolerem klawiatury, wykrywanie kolizji — czyli dokładnie te miejsca, w których emulacja albo siada blisko krzemu, albo się rozjeżdża.
Do tego garść wygodnych drobiazgów: sterowanie trybem wejścia joysticka, wczytywanie stanów gry bez ROM-u, nadpisywanie nazw woluminów dysku twardego i raportowanie zegara RTC w czasie lokalnym. Wersja 0.9 to jeszcze nie „jedynka”, ale numer mówi wprost, że autor uważa projekt za bliski dojrzałości.
Mam słabość do takich prób. Pisanie emulatora Amigi od zera, w dodatku w Ruście, kiedy istnieje dopieszczany od dekad rdzeń UAE, to trochę wchodzenie pod górę na własne życzenie. Ale właśnie z takich uporów rodzą się rzeczy, których UAE nigdy by nie zrobił — bo po co, skoro działa.
To na razie projekt dla ciekawskich i ludzi lubiących świeże podejście, nie zamiennik WinUAE na produkcję. Ale to, że ktoś w 0.9 bierze się akurat za FPU — najbardziej niewdzięczny, najrzadziej testowany kawałek — mówi mi, że autor nie idzie na skróty. Pobrałem, AROS wstał bez ROM-u w trzy sekundy. Jestem ciekaw, dokąd to zajdzie.