A udawanie 68k na ARM to nie jest żadna sprzętowa emulacja tylko programowa. I może dotyczyć wybranego aspektu (jak np. samego ISA), ale również całego procesora (łącznie z sygnałami i timingami), a nawet platformy jako całości (winuae).
Czy to nie wynika z innej budowy obu procesorów?
O ile dobrze rozumiem zależności konstrukcyjne sposób adresowania pamięci w procesorach 680xx jest inny od tego stosowanego w ARM. Jeżeli więc programujemy chip FPGA do pracy w określony sposób to nie zmieniamy jego budowy, a jedynie wprowadzamy "translację" adresów na poziomie programowym. Jeżeli w jakiś sposób udało by się to wykonać na poziomie sprzętowym (dedykowany chipset lub karta rozszerzeń) wówczas mieli byśmy do czynienia z emulacją sprzętową?
Jednak czy z punktu widzenia końcowego użytkownika nie jest to obojętne? Jasne - WinUAE to nie to samo co Vampire (choć końcowy efekt jest ten sam: uruchomienie oprogramowania). Patrząc w ten sposób to nawet zastosowanie kart rozszerzeń PPC będzie emulacją sprzętową sprzętowo - programową, bo sterownik karty jest niezbędny do "translacji" adresów procesora.
Na obecnym etapie możemy więc rozróżnić następujące rodzaje sytuacji:
- oryginalna Amiga z rozszerzeniami pamięci/kooprocesorem (pełnoprawny sprzęt natywny pracujący z kartami rozszerzeń),
- oryginalna Amiga pracująca z kartami PPC (sprzęt natywny pełni tutaj funkcję emulatora sprzętowego pracującego pod kontrolą jednostki PPC, zapewniając zgodność z OS em oraz oprogramowaniem pisanym dla procesorów 68xxx,
- sprzęt PPC pracujący pod kontrolą systemów NG (tu zachodzi sytuacja, w której natywnie działa system operacyjny napisany dla PPC, jednak zgodność programowa ze starszym oprogramowaniem jest zapewniana na poziomie emulacji programowej),
- sprzęt FPGA zapewniający zgodność z oprogramowaniem 68xxx przez emulację programową chipów,
- emulatory programowe działające pod kontrolą zewnętrznego systemu operacyjnego,
Każda z tych sytuacji ma zalety i wady, przy czym największą zgodność z oprogramowaniem zapewniają urządzenia działające natywnie (Amigi klasyczne oraz - w przypadku kodu napisanego dla PPC - komputery Mac / Amiga NG [to już zależnie od wersji systemu NG]). Z drugiej strony system korzystający z FPGA daje spore możliwości aktualizacji oprogramowania, zwiększającego jego wydajność czy kompatybilność (tu przychodzi mi na myśl porównanie do aktualizacji BIOSU w celu poprawy stabilności pracy czy rozpoznawania nowych podzespołów). W przypadku emulacji programowej wystarczy spojrzeć na rozwój tego typu oprogramowania na przestrzeni ostatnich lat.
I znów zadam pytanie - jaka jest różnica dla zwykłego użytkownika, który chce odpalić Super Froga, czy Wings of Fury? Dobrze przygotowana paczka emulatora programowego (patrz AF8) zapewni praktycznie identyczne wrażenia jak Vampire SA. Zgodziłbym się, że jest różnica w przypadku gdyby Vampire sprzedawano w obudowie podobnej do oryginalnej A1200 ze stacją FDD, czy (żeby już nie być tak wymagającym) w obudowie podobnej do A4000D wraz z klawiaturą. Wówczas mamy inne wrażenia: wkładam dyskietkę, odczytuje ją... to są inne odczucia. Jednak w sytuacji gdy i w AF i w Vampire SA końcowo korzystam z plików ADF...
Ok. Vampir dla bardzo upartych daje możliwość uzyskania opisanej przeze mnie sytuacji - w końcu drukowanie 3D jest dzisiaj dostępne dla każdego, a klawiaturę osadzić w wydrukowanej obudowie też można, nawet - przy odrobinie chęci da się załatwić obsługę stacji dyskietek (choć tu nie wiem jak rozwiązać kwestie zgodności FDD HD / DD, że nie wspomnę o standardzie 880MB, ale jak sądzę jak bym pogrzebał w zasobach sieci i to dało by się rozwiązać). Tyle tylko, że jak ktoś się bardzo uprze to praktycznie identyczny efekt uzyska w przypadku komputerków SBC, które kosztują 1/3 ceny Vampira.
Więc gdzie jest zaleta Vampira? Przede wszystkim zgodność z A1200 out of box (jeżeli faktycznie taka będzie). Bez konieczności kombinowania z emulacją przez użytkownika końcowego. Zakładając podany wyżej przykład Vampira po prostu wkładam do obudowy, podpinam odpowiednie kable pod złącza skręcam i instaluje AOS 3.1 lub 3.1.4, i to jest faktycznie istotną wartością - choć dla każdego będzie ona miała inną cenę.
Podsumowując nieco przydługi wpis - czy jest sens spierać się o rodzaj emulacji? Jedne kupi Vamipira i będzie się świetnie bawił w amigowanie, drugi to samo zrobi na oryginalnej A1200, którą "dopieszcza" na wszelkie możliwe sposoby, trzeci odpali Debiana na RPi, skonfiguruje całość w sposób transparentny i będzie się świetnie bawił korzystając z emulacji, a każdy z nich będzie pracował na tym samym systemie skonfigurowanym pod siebie :)
Choć przyznam się, że wymiana poglądów między kolegami dostarcza sporo fajnych informacji - gratuluję (a i nieco zazdraszczam wiedzy i umiejętności) :)
Pozdrawiam.