Hej, ja nie pisałem nigdy na Amidze 500, ani dla Amigi 500, więc rzeczywiście nie mam tu doświadczenia.
Na Amidze 1200 z HDD, pamięcią FAST oraz CD-ROMem programuje mi się wygodnie zarówno w C, jak i innych językach, zaś programy mogę od razu testować na prawdziwym sprzęcie.
Również nie programowałem nigdy programów dla Amigi na PC.
Mam jednakże doświadczenie podobne Twojemu. Miewałem problemy z szybką i płynną animacją na Amidze 1200, kiedy kodowałem w języku C.
Przy czym ja wybrałem inne lekarstwo na ten problem - próbowałem po prostu optymalizować programy, przerzucając część kodu do asemblera (głównie funkcje odpowiedzialne za grafikę), ale nie schodziłem niżej z wykorzystaniem sprzętu, tj. nie wyłączałem systemu i nie robiłem własnych copperlist. Dało to dobre rezultaty.
Ty wybrałeś drogę polegającą na tym, by wykorzystać ogromną moc przerobową PC-ta z najnowszym GCC, który dał minimalny czas kompilacji. Możesz błyskawicznie kompilować nawet złożony kod.
Prócz tego, z powodu słabych osiągów funkcji systemowych postanowiłeś z nich zrezygnować stopniowo na rzecz wyłączania systemu i modyfikowania rejestrów sprzętowych bezpośrednio. A na koniec zacząłeś zastanawiać się jak tu manipulować czasem DMA Amigi.
Która droga jest lepsza? Ciężko to jednoznacznie ocenić, ale zauważ że wygoda kompilowania na PC-cie przekłada się negatywnie we wrażenia z testowania gry na emulowanej Amidze, ponieważ oczekujesz dużej prędkości działania. A ponieważ Amiga 500 ma zegar 7Mhz, zaś Amiga 1200 ma zegar 14MHz lub z kartą turbo 50Mhz to wiadome jest, że nie będzie to działać tak samo szybko jak kompiluje GCC pod zegarem 2GHz.
W moim odczuciu jak człowiek oswoi się z ograniczeniami tego sprzętu, to wówczas nie zaskoczy go powolne działanie jakichś procedur. Będzie wiedział, w którym miejscu coś zoptymalizować.
Nie chcę Cię absolutnie namawiać do optymalizacji asemblerem, ale nie wiem czemu odrzucasz takie porady już na starcie, bez nawet ich spróbowania, tłumacząc, że nie chcesz zepsuć portowalności swojego kodu. Rozumiem, że złożone procedury które stosujesz w swoich grach są na tyle złożone, że nie da się ich dobrze napisać w asemblerze.
Jednakże należy pamiętać cały czas o mocy przerobowej Amigi oraz filozofii jej konstrukcji. Należy pogodzić złożony kod z jej możliwościami. Nawet jak koduje się pod gołe rejestry, to i tak trzeba obsłużyć mysz, klawiaturę, joystick. Robi się tę "warstwę abstrakcji", tylko własną - szybszą niż systemowa.
Zaś jeśli chodzi o formaty plików - zauważ, że kiedy Amiga była na topie - najpopularniejszym formatem był IFF. Rozumiem, że teraz na PC-tach IFFy nie są już popularne na rzecz innych formatów. Ale stosując IFFy - robimy coś zgodnie z jej konstrukcją i przeznaczeniem.
Tak jak pisałeś, każdy z nas ma to swoje podejście i każdy uważa swoje za właściwe. Ważne jest, ponieważ funkcjonujemy na jednym forum, by się dogadać w jakichś kwestiach. Dzielimy się przecież swoimi doświadczeniami i powinno być to na korzyść dla nas wszystkich.
Życzę Tobie jak i sobie powodzenia w dalszych pracach nad naszymi grami.