@retronav,
post #6
Obadaj sobie ScrollingTricks na aminecie. Nie pamiętam czy tam to jest podejscie typu. Dwa ekrany odpowiednio większę, o dwie kolumny i o dwa wiersze. Wtedy dla ekranu 320x256 masz ekran 320+32 x 256 +32, widziany jest i tak 320x256, musisz też ustawić ddfstrt i tak dalej. Jeśli skrolujesz z prędkoscią 1 piksel na ramkę, to wtedy na drugim ekranie, kopiujesz jeden wiersz (to trochę za mało bo wierszy będzie 18 i trzeba trochę kombinować ale da radę). i jak masz już scrolla na poziomie 15 piskeli i przechodzisz na 16 to kopiujesz ostatni wiersz (pasek) i zamieniasz ekrany. Przy scrollowaniu o 2 piksele musisz kopiować dwa wiersze i tak dalej. Koszt takiego scrolla to koszt narzucenia około 25 tilesów na ramkę. Przy czym masz też za darmo do tego dosyć wolną animację rzędu 50/16 fpsów.
Ogólnie nieskończony scroll we wszystkie strony to nie jest bardzo łatwa rzecz do napisania.
Niektóre gry mają ustalony ekran na przykład 640x512 a widziany 320x256 i wtedy zerowym kosztem jest przesuw robiony (oczywiście to zajmuje pamięc czterech ekranów). Te cztery ekrany można oczywiście zagospodarować też w ten sposób, że niektóre plansze będą 1080x256 albo 320x1024 i będą scrollowane odpowienio w tylko w X a drugi tylko w Y.
Przy 3 bitplanach interleaved można bez problemu osiągnąć 50 fpsów, narzucająć wszystkie tilesy na ekran. chyba ta operacja powinna zająć około 75% ramki ale nie pamiętam.
A propos 512 fastu/slow, to jest różnica, szczególnie na lepszym procku.
Edit: Do tych 3 bitplanów interleaved. Oczywiście chodzi mi o narzucenie wszystkich tilesów co ramkę. Wtedy potrzebujesz dwóch ekranów, każdy 320+16 x 256+16, ustawić ddfstrt aby było pobierane jedno słowo więcej i wtedy inny jest ddfstop. scrolla robisz za pomocą bplcon1 bodajże (tabelka rulez w tym miejscu). Co dobre w tym podejściu że narzucanie bobów jest szybkie, bo tylko je narzucasz, nie musisz nic czyścić ani zapamiętywać, bo i tak odtwarzasz cały ekran. Takie podejście jest stosowane w grze Blaze przy tilesach 32x32 w 5 bitplanach i gra wyciąga 25 fpsów. Podobnie jest w Psycheual, ale tam są kostki 16x16x5. Jeśli nie wykorzystujesz coppera do zmiany kolorów, to możesz go zaprząc by skopiował Ci cały ekran kostek.
Edit2: Jakbyś miał problem to odezwij się na priva, to może jaki przykładzik sklece.
Ostatnia aktualizacja: 18.01.2016 14:34:17 przez asman
Ostatnia aktualizacja: 18.01.2016 14:39:52 przez asman