Wpis z mikrobloga

zamknięcie przeglądu produkcji #retroscena #demoscena na PC z roku 1995 jest trochę niekompletne - brakuje w nim jakiegokolwiek intro. sęk w tym że nie ma zbyt wielu produkcji z roku 1995 czy wcześniejszych, będacych intrami, które bym jakoś szczególnie zapamiętał.

dla mnie, jak dla wielu innych osób - intra na PC były średnio ciekawe, do momentu gdy faktycznie zaczęły się rozwijać i przestały być "ubogimi krewnymi" pełnowymiarowych dem. ale to imo nastąpiło nie wcześniej niż w 1996 roku.

czym są jednak intra? w skrócie można powiedzieć że intro to jest demo, z nałożonym jeszcze jednym ograniczeniem - rozmiaru. chyba najpopularniejsze to 64k (czyli kod+dane to max 65536 bajtów) i 4k (max 4096 bajtów). na niektorych parties dopuszczano intra w innych rozmiarach: 40k, 80k, 1k, 256b etc. wydaje mi się że intra 40k były swego czasu popularne wsród amigowych koderów (niech mnie ktoś poprawi jeśli się mylę).

myślę że jednym z wielu powodów niskiej jakości inter na PC było to że przez długi czas eksperymentowano z formatem. co przez to rozumiem? wiadomo, że w czasach softwareowego renderowania kod intra to nie tylko wywoływanie samych funkcji, ale również "baza" - biblioteka funkcji do wywowałania. ta biblioteka była często tworzona przez kodera od samego zera - tzn. od takich prymitywów jak stawianie punktu, rysowanie linii, okręgów, wyświetlanie bitmapy, poprzez bardziej skomplikowane operacje, aż do prostych silników 3d. i tak jak w demie miało to male znaczenia, tak w intrze zajmowało już konkretną objętość.

ale nie to było największym problemem. dużo większym problemem była sama architektura PC a dokładniej przejście z trybu rzeczywistego do trybu chronionego procesora. zabieg ten jest dość skomplikowany do przeprowadzenia, ale pozwala (w wielkim skrócie) na obejście wielu problemów - choćby takich jak ograniczenie segmentu danych do 64 kilobajtów (w trybie chronionym procesora mamy dostępną pamięć w formie liniowej, tj. bez podziału na segmenty w jednym wielkim ciągłym obszarze aż do granicy 4 GB). z tego co pamiętam na początku część inter działała w trybie rzeczywistym. później koderzy pisali swoje procedury do obsługi trybu chronionego - ale tutaj znów - cześć kodu intra służyła bardzo niskim, na poziomie systemu operacyjnego operacjom.

w okolicach roku 1994 pojawiły się tzw. extendery. najpopularniejszym był Dos4GW i Pmode/w. pierwszy znany doskonale z gier na PC, drugi popularniejszy na demoscenie (w pewnym momencie PMODE/W dorobił się kompatybilności z Dos4GW). PMODE/W można było wlinkować do binarium, ale (jeśli dobrze pamiętam) była też możliwość by korzystać z niego niejako "z zewnątrz" co dawało dodatkowe miejsce w intrze na kod i dane.

ciekawostka: autor PMODE/W - Thomas "Tran" Pytel wydał nawet swoją DOSową grę opartą na tym rozwiązaniu: https://www.mobygames.com/game/xixit

w mniejszych produkcjach stosowano jeszcze inne podejście czasami - tzw. "flat-real mode" - polegało ono na znacznie krótszej, niepełnej inicjalizacji trybu chronionego (bez przemapowania przerwań itp.) ale to wystarczało do tego by móc operować na liniowej pamięci zamiast na segmentach danych po 64 kilobajty. do wszystkich małych inter (szczególnie tych nie korzystających z playerów do muzyki) było to rozwiązanie wystarczające.

kolejną rzeczą, jakiej koderzy z chęcią pozbyli się ze swoich inter była obsługa niestandardowych trybów graficznych. w czasach DOSa był na tym polu początkowo istny misz-masz. VGA nie definiowała wielu trybów - najpopularnejszy był tryb "13h" - 320x200 z 8 bitową paletą kolorów. nie brzmi to ekscytująco jak na maszyny z 32-bitowymi procesorami, prawda?
okazało się jednak, że "mieszając" rejestrami kart graficznych udawało się uzyskać tryby z większą liczbą kolorów (choć czasami z dodatkowymi scan-lines - często też takie produkcje działały na ułamku konfiguracji jakie posiadali scenowcy PC). no i oczywiście znów było to obarczone koniecznością oprogramowania i włączenia tego kodu do kodu intra.

ten problem został rozwiązany przez pojawienie się standaradu sterownika VESA. nowy sterownik vesa (uniwersalny) był w pewnym momencie niezbędny (chyba że karta graficzna zainstalowana w komputerze supportowała jakąś jego ostatnią wersję - człowiek do wszystkiego co dobre się szybko przyzwyczaja, więc liniowo zorganizowana pamięć karty graficznej została przywitana przez koderów z entuzjazmem).

widać więc że na PC w dziedzinie inter zawsze była tendencja do wyrzucania zależności na zewnątrz. pamiętam że rozmwiałem kiedyś z koderami z Amigi, którzy mieli to koderom ze sceny PC za złe. uważali to za oszustwo. ale ciężko mi się wypowiedzieć w temacie porównania kodowania inter na Amidze i PC bo o kodowaniu na Amidze nie mam bladego pojęcia :)

no ale wracając do produkcji z roku 1995 - jedną, która jakoś dobrze mi się kojarzy jest Drift by Wild Light - zdobywca pierwszego miejsca (zasłużenie) na Assembly 1995. bardzo ciekawe intro, pięknie wykonane. nawet dzisiaj ogląda się je z przyjemnością.

inne warte obejrzenia:
* Bill G Force by Complex: (3 miejsce na Assembly 1995): https://www.youtube.com/watch?v=xDmY87BsTrI
* Astro by Astroidea: (1 na Ex 1995): https://www.youtube.com/watch?v=YoKN-xcYuko

tak naprawdę jednak żadna z tych powyższych produkcji jakoś nie zapadła mi w pamięć. intra były dla mnie nieciekawe, bo mało tam się działo, były krótkie (często trwały mniej niż 2 minuty) naprawdę trudno jest w takim krótkim czasie zbudować jakąś atmosferę. w tamtych czasach nie bardzo wierzyłem że da się wiele więcej "wcisnąć" do intra 64k.

ale już rok później pojawiło się kilka ciekawszych produkcji.

demo or die!

#sekretnascena <- tag do polubień/czarnolistowania
#demoscene
secret_passenger - zamknięcie przeglądu produkcji #retroscena #demoscena na PC z roku...
  • 4
  • Odpowiedz
na niektorych parties dopuszczano intra w innych rozmiarach: 40k, 80k, 1k, 256b etc. wydaje mi się że intra 40k były swego czasu popularne wsród amigowych koderów (niech mnie ktoś poprawi jeśli się mylę).


@secret_passenger: Na Atari ST jest jeszcze konkurencja na compo: intro 96 KB.

pamiętam że rozmwiałem kiedyś z koderami z Amigi, którzy mieli to koderom ze sceny PC za złe. uważali to za oszustwo.


@secret_passenger: Może
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@czarnobiaua: czy ja wiem czy to jest nierówna konkurencja? mnie się właśnie wydaje że to jest równanie do tego samego co ma innych platformach. tam sprzęt jest ustandaryzowany - player muzyki pisze się na konkretny układ, a nie na kilka wariacji, tak samo z grafiką - te same układy grafiki dla całej klasy maszyn.

PC było niejako "poszkodowane" tutaj ze względu na swoją otwartą architekturę. i tak jak w demie
  • Odpowiedz
@secret_passenger: Nigdy nie uczestniczyłem w PC compo, ale na pozostałych jest zawsze napisane, jak wygląda specyfikacja compo machine i na to się zawsze pisze. Co za problem zrobić party version z playerem na compo w limicie, a potem udostępnić (jeśli się ma czas ( ͡° ͜ʖ ͡°) ) wersję final, która ma selektor z wersjami na inne układy dźwiękowe?
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@czarnobiaua: no ale to nie było takie proste. produkcja z party jednak dobrze by się spreadowała, prawda? wydawać dwie wersje - jedna zgodną z limitem na kompo a druga do spreadu? średnie rozwiązanie.

kto uwierzy potem że finalna wersja mieściłaby się w limicie? wybrano więc tak by:
- extender był częściowo na zewnątrz
- sterownik grafiki również, więc kod w demie / intrze pisało się prawie tak samo jak na Amigę - sterownik zapewniał wspólna bazę
- duża część produkcji supportowała tylko GUS-a w
  • Odpowiedz