Efekt powolności zaś to skutek tego, gdy po zabraniu cykli dostępu Coppera i Blittera, jak mało przepustowości zostanie dla CPU (on ma najniższy priorytet). A przecież CPU musi wypełnić sensowną treścią to co Lisa wyrzuci na ekran.
DMA Blittera oraz DMA Coppera można swobodnie wyłączyć i wówczas nie mają one dostępu do pamięci graficznej Amigi. Pytanie tylko czemu to robić? Nie ma potrzeby ich wyłączać. Oba koprocesory graficzne wspomagają operacje rysownicze i wideo. Co więcej zwiększają wydajność grafiki odciążając procesor.
Copper zajmuje się ustawieniem rejestrów sprzętowych. Co ramkę (klatkę animacji) ładowana jest copperlista. Copper może wywołać przerwanie procesora, jeżeli zestaw jego instrukcji jest niewystarczający.
Blitter natomiast jest koprocesorem który jest relatywnie szybki, bo przerzuci troszkę mniej niż ~4MB/s, czyli dwukrotność całej pamięci graficznej Amigi 1200 w ciągu sekundy.
Bitmapy w Amidze tym róznią się od PC że są podzielone na bitplany, ale nadal dostęp jest w postaci prostokątów. Po prostu wypełnimy ekran grafiką szybciej, bo możemy optymalizować liczbę kopiowanych bitplanach. Szerokość operacji musi wynosić przynajmniej 16 pikseli by było to efektywne.
Niestety w pojedynczym buforowaniu może wyglądać to słabiej, bo widać proces rysowniczy. Po użyciu podwójnego buforowania problem znika. Po użyciu bitmap interleaved problem w pojedynczym buforowaniu jest zmniejszony.
Bitmapy w wysokich rozdzielczościach są podzielone na bitplany więc wypełnianie może być bardzo szybkie, szczególnie jak zastosujemy optymalizację.
Przykład Settlers II na Amiga OS pokazuje, że rozwiązanie w postaci siłowego wykorzystania procesora głównego (CPU) może skończyć się bardzo wysokimi wymaganiami, nawet na Amidze z PPC lub NG.
Bo ta gra pochodzi z roku 1996 i w oryginale z PC wymagała 486DX/66 MHz dla wysokich rozdzielczości. Wspominam tylko dlatego, że porównujemy platformy i architektury graficzne z tamtych lat.
Ja rozumiem, że dzisiaj silniki obrosły w różne dodatkowe warstwy, które zwiększają wymagania.
Gra typu Settlers II opiera się na bitmapie dwuwymiarowej. Tutaj nie trzeba wysyłać całego bufora co ramkę. Mamy efekty typu przesuw mapy, przesuw okienek oraz animacje - drzewek, budynków i osadników. Jak się przyjrzymy, to zobaczymy, że osadnicy na pewno nie są animowani w 50 fps, tylko rzadziej (chodzą po ścieżkach bardziej skokowo).
Z tego co wiem, w takich grach obsługa obiektów odbywa się właśnie rzadziej, dzięki czemu możemy obsłużyć bardzo dużo takich obiektów.
Przesuw, animacja bitmapy to domena Amigi.
Dodam, że w Amidze operacja zapisu pikseli w postaci chunky korzysta z bufora o rozmiarze jednej linijki. Piksele są konwertowane, a następnie Blitter kopiuje tę linijkę na bitmapę docelową. Chunky przydaje się do mapowania pikseli, ale z powodzeniem możemy w takich grach korzystać z bitmap już skonwertowanych dla Blittera.
Wydaje mi się, że Amiga 4000/040 powinna obsłużyć taką grę natywnie, szczególnie właśnie po zastosowaniu optymalizacji.
Wykorzystanie AHI wysoko-poziomowo i kopiowanie całego bufora zamiast animowanej części może mieć negatywny wpływ na szybkość działania gry.
Ja cieszę sie, że u Kolegów gra Settlers II działa dobrze na Warp1260/100MHz, PiStorm czy Vampire.
Ja chętnie przyjąłbym choć Settlers I w 256 kolorach, który natywnie z pewnością śmigałby na 68030/50MHz i nawet mniej niż 16 MB RAM, który posiadam w swojej głównej Amidze.
Ostatnia aktualizacja: 27.10.2025 22:33:05 przez Hexmage960