Jak robilo sie takie efekty (C64)

1

Bawie sie ostatnio w retro i zastanawia mnie. Jak mozna bylo zrobic taki efekt slonca na wodzie w czasach 8bit ? Teraz bym pewnie podlozyl animowany obrazek 2D, ale dawniej ?
@jarekr000000 Ty sie bawiles C64 :)

6
WhiteLightning napisał(a):

Bawie sie ostatnio w retro i zastanawia mnie. Jak mozna bylo zrobic taki efekt slonca na wodzie w czasach 8bit ? Teraz bym pewnie podlozyl animowany obrazek 2D, ale dawniej ?
@jarekr000000 Ty sie bawiles C64 :)

Na 90% czcionka. Można ustawic zmiany zestawu znaków. 2 zestawy zmieniane kilka razy na sakunde to norma. Tu chyba 4.
Czyli coś jak animowane fonty. Jak zestawy były władowane do pamięci (każdy to dwa kilobajty). Ta podmiana to zmiana jednego adresu (wskażnik na czcionkę) -10 cykli i po sprawie.
Można tez było podmienić te kilka bajtów w konkretnych znakach (oszczędza się pamięć, ale więcej cykli). W tym przypadku to tak wygląda.
Można też to było to zrobić sprajtami, ale tu więcej problemów (max 8 sprajtów na ekranie - da się więcej, ale wymaga synchronizacji z rastrem).

0

heh, z nudów w weekend... zacząłem się teraz teraz tym bawić, ale na Vice c64 emulator.
Niezły opis jest tutaj http://www.coding64.org/?p=164 .
Żeby zobaczyć przykład bitmap mode

POKE 53265,PEEK(53265)OR32

No dobra, ale jak z tego wyjść, heh? No to reset i sprawdzam co tam jest w pamięci pod adresem 53265

PRINT PEEK(53265)

jest liczba 27 ( w hex $1B ). Na przykład pod adresem 53272 jest 21
I teraz jeśli dam

POKE 53272,0

To zmienię wartość w tym adresie pamięci na 0 i wywali mi coś na kształt tej bitmapy
Teraz żeby wyjść z tego chociaż nic nie widać co pisze to klepię w tle instrukcje POKE 53272,21
czyli przywracam wartość 21 pod ten adres, i ekran wraca do standard mode.
Więc to samo z bitmapą, czyli jak zmieniam coś pod 53265, to żeby potem wrócić
do standard mode trzeba przywrócić wartość pamięci przez zmiana, czyli POKE 53265,27

Więc tam gdzie jest opis Display mode is controlled by register at address $D011 :
Default: $1B, %00011011. . W hex $1B to właśnie 27 w decimal, binarnie 00011011.
Czyli jak dam adres 00011010, w decimal to 26, w hex $1A. Ok, no to

POKE 53265,26

Na dole ekranu pojawia się wąska czarna linia...

*I na razie tyle rozkminiłem. Tak piszę tutaj, bo kiedyś jak będzie znowu nuda to... może wrócę do tego.
W sumie sam do dziś się nad tym zastanawiam, jak robiło się takie gierki i efekty. *

0

Na necie jest ogólnie sporo materiałów opisujących jak się robiło animacje i kleiło dość urozmaicone grafiki poziomów przy makabrycznym z obecnego punktu widzenia obszarze pamięci na 8bitowcach, który miał pomieścić tak podstawowe kafelki grafiki jak i logikę gry. Masz podstawowe efekty opisane (ogólnie sporo zastosowań sinusoid), czy tricki dla różnych platform, etc. W sumie obecni webdeveloperzy różnej maści gier na przeglądarki mogliby podłapać wiele ciekawych patentów.

2

Nie tylko WebDev ale GameDev też. Rozpasane biblioteki i gotowe engine rozleniwiają towarzystwo. Potem mamy do czynienia z softem którego wielkość i wymagania są niewspółmierne do uzyskanego efektu.
Ale tak działa brak ograniczeń. Haczy się ? Długo wgrywa ? Kup sobie lepszy CPU, więcej RAM, lepszą grafe. To piszący na konsole są większymi hardkorami. Muszą się zmieścić w ramach hardware.
A 8-bit ? Zaczynałem przygodę z kompami w 1985. Do dziś nie mogę wyjść z podziwu jak niektóre produkcje wyglądały na tak marnym sprzęcie, i jakie triki musiano stosować by to wszystko działało.

2

Kup sobie lepszy CPU, więcej RAM, lepszą grafe

Jak by się nad tym zastanowić, ma to sens - czas pracy programisty jest duuużo droższy od sprzętu, więc często nie opłaca się niektórych rzeczy optymalizować.

0
titako napisał(a):

Nie tylko WebDev ale GameDev też. Rozpasane biblioteki i gotowe engine rozleniwiają towarzystwo. Potem mamy do czynienia z softem którego wielkość i wymagania są niewspółmierne do uzyskanego efektu.
Ale tak działa brak ograniczeń. Haczy się ? Długo wgrywa ? Kup sobie lepszy CPU, więcej RAM, lepszą grafe. To piszący na konsole są większymi hardkorami. Muszą się zmieścić w ramach hardware.
A 8-bit ? Zaczynałem przygodę z kompami w 1985. Do dziś nie mogę wyjść z podziwu jak niektóre produkcje wyglądały na tak marnym sprzęcie, i jakie triki musiano stosować by to wszystko działało.

Kiedyś wyciskano ze sprzętu wszystko i dało się odpalić grę, która "normalnie" mogłaby zająć 30 razy więcej RAMu. To były niewyobrażalne wielkości. A gdyby tak teraz napisać grę, która wymaga 512 GB RAM?

0

Szczyt kompresji to chyba będzie Elite https://en.wikipedia.org/wiki/Elite_(video_game)

1 użytkowników online, w tym zalogowanych: 0, gości: 1