Jak już informowałem na AtariAge, pracuję nad konwersją gry The Great Escape z C64 na Atari. Bieżąca wersja w załączniku. Działa w tej chwili tylko na Altirrze, bo .obx ładuje się bezpośrednio pod ROM (brak loadera).
Mam przy okazji kilka próśb: 1. Potrzebuję efektów dźwiękowych do gry. Wersja C64 nie ma ich chyba dużo - na pewno jest dźwięk dzwonka. Nie sprawdzałem jeszcze dokładnie procedur odpowiedzialnych z sfx. 2. Muzyka do gry. W tej chwili wygląda na to, że muzyka mogłaby być na obrazku tytułowym (jeden z pomysłów na AtarAge) natomiast we właściwej grze już się nie zmieści. 3. Pomysły na optymalizację.
Oryginalna gra ma wewnętrzny bufor ramki o wielkości 192 pixele (24 bajty) na 136 pixeli i przy każdej aktualizacji ekranu kopiuje całość na ekran (184 piksele na 128 pikseli), przy czym kopiowanie może również uwzględniać scroll poziomy realizowany programowo. Wersja Atari jest już szybsza, bo ekran jest liniowy (a nie jak w C64 tilemap-bitmap) tym niemniej pomysły na dalsze optymalizacje są mile widziane.
1. Wąski ekran (256 px hires) + wykorzystanie LMS do pustej przestrzeni po lewej i prawej stronie ekranu. 2. Może wskaźniki na dole udałoby się zmieścić na wąskim ekranie gdyby je poprzesuwać? Wiem, że pojawiają się tam komunikaty - może w ogóle wyświetlać je w osobnej linii tekstowej? 3. Nie wiem, jak jest zorganizowany kod wyświetlania, ale może organizacja ekranu graficznego C64 pozwoliłaby na zastosowanie wyświetlania znaków, zamiast grafiki (8x mniej bajtów do przerzucania).
Edit: A w ogóle to projekt jest świetny! Takich gier mało na Atari :) Takie np. "Where the time stood still"... Kibicuję bardzo i życzę powodzenia!
1. Wąski ekran już jest (gra jest dość wiernym portem ze Spectrum, więc oryginalnie używa 256 pixeli). Co do pustej przestrzeni to zyskałbym nieco na pamięci, ale nie na prędkości? 2. Dół ekranu jest również wąski (256 pixeli). 3. W tej chwili ekran, na którym jest wyświetlana gra jest liniowy - wynika to z tego, że oryginalna gra ma liniowy framebuffer i w każdej ramce logicznej kopiuje jego zawartość na ekran, i szybsze jest kopiowanie pomiędzy ekranami liniowymi. Natomiast paski stanu i ozdobniki są zrobione na fontach i udają C64 bitmapę - dzięki temu potrzebowałem mniej zmian w kodzie.
Dzięki za słowa uznania. Co do "Where the time stood still" to niestety nie ma wersji C64 a tylko Spectrum, co mocno komplikuje ewentualny port.
W załączniku bieżący kod gry na Atari (w zasadzie patche na wersje C64). Kod kopiujący framebuffer jest w procedurze "blitter". Z kolei "blitter_scrolled" wykonuje kopiowanie na ekran aplikując software scroll.
To jest akurat gatunek gier, który - powiedzmy - że jest dla mnie osobiście zupełnie niegrywalny, ale naprawdę fajnie że komuś się chce i coś robi :) Polecałbym poprawić ten dzwonek, bo to są rzeczy z tych, które są z przyczyn oczywistych najmniej ważne, ale które zwykle najbardziej przyciągają uwagę :) I tu naprawdę aż się prosi o użycie duszków/pocisków do delikatnego podkolorowania obrazu (IMO najlepiej w odcieniach szarości), choćby tylko przez DLI i rejestry (bez użycia pamięci), no chyba że pamięci na bardziej zaawansowany kod też nie za bardzo gdzie znaleźć....
Dzwonek już poprawiony - nowa wersja dołączona. (Działa tylko na Altirrze). Poprawiony też błąd w grafice przy skrolowaniu - nie powinno być teraz już żadnych błędów w wyświetlaniu.
@mariuszw Co do dźwięków, nie chciałbym, aby złośliwie to wyszło (pewnie wyjdzie), ale prędzej wyciśniesz wodę z kamienia, niż z odwiedzających to forum muzyków jakieś dźwięki (jeszcze inna sprawa, w jakim formacie je potrzebujesz). Spróbuj założyć post na konkurencyjnym forum albo pomolestuj znanych muzyków przez e-mail :)
Jeśli chodzi o tę grafikę koncepcyjną, to się nie uda :) Małe Atari ma tylko "półtora" koloru w hiresie, nie da się uzyskać wzorku z czarnego koloru z jakimś innym nie będącym odcieniem szarości. Przebarwienia będzie doskonale widać. A i czasem trzeba zamienić kolory miejscami. Mam nadzieję, że wiesz o czym piszę, ale jeśli nie, to śmiało pytaj :)
@brx: Don't worry, we all know that A8 can't do much in hi-res but with some thinking it is possible, please remember Tezz's Manic Miner. That screen is a possible way and it works. Of course you will always see some dark colours on the letters but that is a minimum effect to have colour and the playing area is still black&white or dark blue&light blue in night or other redish in the tunnels. :)