Komentowana treść: PortablE - wersja beta
[#1] Re: PortablE - wersja beta
O matko! To się dopiero nazywa kanapka (programowa).
Świat chyba naprawdę dąży do tego aby wyświetlić piksel na ekranie potrzeba będzie maszyny kilkaset MIPS, nie wpominając o mnożeniu 4x7. Wkrótce do takich obliczeń Pentium XII będzie za słaby. Bo przecież ktoś zrobi konwersję gry z ZXSpectrum a to wymaga naprawdę potężnej maszyny!

Jakie to dziwne w obecnych czasach, że za czasów A500 za pomocą assemblera "cudotwórcy" osiągali kilkaset procent możliwości maszyny (tak samo C64).

Na szczęście teraz mamy super kompilatory, super procesory i już nawet zwykłym Pegazosie możemy uruchomić prostą strzelankę z ZX Spectrum! Oczywiście taka gra nie może działać płynnie na A1200 z CPU PPC, bo jest za wolna. Kilka(naście) lat temu robiło się takie konwersje które działały płynnie, ale teraz w czasach gigaherców to jest niemożliwe.
[#2] Re: PortablE - wersja beta

@Prince, post #1

Wszystko pięknie, ładnie, ale to co piszesz nie ma do komentowanego przez Ciebie newsa żadnego zastosowania... To jest konwerter źródeł, a nie binarek. Ktoś kto lubi składnię E, może sobie w nim napisać program, potem potraktować tym konwerterem, a następnie po prostu skompilować go za pomocą jakiegoś kompilatora C, który zapewne wygeneruje lepszą binarkę od kompilatora E..

A co do reszty Twojego komentarza - czasy asemblera odeszły w niepamięć bezpowrotnie, i nic już tego nie zmieni. maszyny są obecnie zbyt skomplikowane, i mają zbyt duże możliwości, by można było marnować czas rzeźbiąc coś w aśmie 4 razy dłużej niż w jakimś języku wyższego poziomu, a na końcu osiągając dokładnie ten sam efekt. Domyślam się że dla Ciebie brzmi to głupio, bo ciągle stawiasz za przykład tego nieszczęsnego sdla który nie działa z zadowalającą prędkością na A1200...

sdl nie powstał po to, by coś działało szybko, maksymalnie wykorzystując możliwośi danej maszyny. on powstał przede wszystkim po to, by udostępnić wspólne, ujednolicone api dla programów. tak by stały się przenośne pomiędzy różnymi platformami. I spełnia to założenie bardzo dobrze. Twórcy sdla nie przejmują się procesorami napędzanymi częstotliwością ~40Mhz, bo na wszystkich innych platformach takie procesory nie są używane od conajmniej 10-15 lat. Pewne prędkości czy poziom uważane są za coś normalnego, i poniżej tego poziomu po prostu nie ma sensu schodzić.

A co do pięknych i wspaniałych efektów na C64, czy A500... To tylko tablice i procedurki do ich wizualizacji. Zero interaktywności, czy możliwości wykorzystania ich poza czymś w rodzaju dema. I właśnie dlatego ja osobiście nie podniecam się demami, bo one nie pokazują tak naprawdę na co stać maszynę, tylko conajwyżej pokazują pomysłowość kodera.
[#3] Re: PortablE - wersja beta

@MinisterQ, post #2

Ok, niechaj to będzie tylko konwerter źródeł, a mówiąc po ludzku programu który piszemy w dowolnym edytorze tekstu (tak w ramach wyjaśnienia bo nie wszyscy muszą wiedzieć co to jest), na kod źródłowy w "C". To jest tanie wyjście dla osób nie znających tego języka. Jestem pewien że osoba znająca język "C" jakiś program napisze bardziej zoptymailzowany niż jakiś konwerter ze źródłówki w "E". Kanapka i tyle. Wymaga większęgo CPU do tego samego zadania.

Czasy assemblera... mam na myśli Assembler procerów PowerPC który podobno jest o wiele łatwiejszy niż 68k. Wygląda na to, że jednak jest trudniejszy.

SDL. Tak rzeczywiście również i jego miałem na myśli. Ja rozumiem że to miał być "pomost" pomiędzy różnymi platformami, ale chyba nie do tego stopnia żeby emulowac ZX Spectrum na PPC G3? Nie miałem wcale na myśli procesorów 40MHz tylko 200-300MHz PPC które nie dają sobie rady z bardzo prostymi rzeczami zrobionymi na SDL.

Ostatni akapit odnośnie efektów na C64 czy A500... rozumiem Cię. Ale tej dyskusji nie podejmę tutaj. Może kiedyś na jakimś Ami-spotkaniu sobie o tym pogadamy :)
[#4] Re: PortablE - wersja beta

@Prince, post #3

bo przewaznie grafika w grach SDL jest w 32 bitach -> 4 razy więcej obliczeń niż w grafa 8 bit, rozdziałka jest powiedzmy 640x480 a więc jest to znów 4 razy tyle obliczeń co amigowy standard 320x256(240), wychodzi na to, że dla typowej gierki mamy 16 razy więcej obliczeń na klatke, dzieląc 600 mhz (typowy pegaz) na 16 wychodzi około 38 umównie przyjętych jednostek zwanych megahercami a prędkość ta jest raczej wymagana w zwykłych amigach do czegokolwiek co nie rypią po hardwarze (abuse, napalm etc.) czasy się zmieniają, ilość bitów grafiki na sekunde także więc nie ma co się dziwić, w rozważaniach tym pomijam muzykę przyjmująć, że ilość mocy przerobowych jest nieporównywalnie mniejsza do muzy niż do grafy (no chyba ze ktos daje soundtrack w ogg)
[#5] Re: PortablE - wersja beta

@Prince, post #3

Jestem pewien że osoba znająca język "C" jakiś program napisze bardziej zoptymailzowany niż jakiś konwerter ze źródłówki w "E".

Wbrew pozorom składnia obu języków jest bardzo podobna, i tutaj zapewne nie będzie to miało znaczenia. Większość siły tkwi w algorytmie, reszta tkwi w sile kompilatora i jego zdolności do optymalizacji kodu.

mam na myśli Assembler procerów PowerPC który podobno jest o wiele łatwiejszy niż 68k.

No, ja nie wiem kto takie opinie rozpuszcza... ;) Jest prostszy, bo to risc (w sensie że ma prostszą konstrukcję, inaczej mówiąc - bardziej prymitywną), ale na pewno nie czyni go to łatwiejszym od asemblera m68k. Asembler m68k należy do najbardziej przejrzystych i logicznych asemblerów jakie miałem okazję poznać. W żadnym asemblerze nie programowało mi się tak dobrze, jak w asemblerze m68k...

ale chyba nie do tego stopnia żeby emulowac ZX Spectrum na PPC G3?

sdl jaki jest, taki jest, ale nie wszystko można i trzeba zrzucać na jego barki. Jeśli programista jest do d... to mu i asembler na kilku Ghz nie pomoże. A dobry stworzy coś takiego jak np. foolbilard, który przecież również jest produktem opartym o sdl...
[#6] Re: PortablE - wersja beta

@Prince, post #3

Czasy assemblera... mam na myśli Assembler procerów PowerPC który podobno jest o wiele łatwiejszy niż 68k. Wygląda na to, że jednak jest trudniejszy.


Assembler jest prostszy, ale nie jest bardziej przejzysty niz w przypadku m68k. Co wiecej, w przypadku m68k ze wzgledu na prostote samego procesora kazdy program w assemblerze byl "optymalny". W przypadku PPC (tak samo jak w przypadku ARM-a, x86, Alphy i innych) do tego, aby stworzyc optymalny program potrzeba znacznie wiecej czasu pracy i wiedzy. Trzeba wiedziec jak szeregowac instrukcje, aby odpowiednio ulozone mogly mykorzystac maksimum mocy procesora. Trzeba wiedziec jak ulozyc kod, aby wykorzystac mozliwie efektywnie cache procesora.

Przykladzik: mialem kiedys mala zgrabna procedurke napisana w assemblerze i wywolywana dosc czesto w moim programiku - cos tak kolo kilkudziesieciu milionow razy. Kiedy pozamienialem ladne pojedyncze instrkcje na odpowiadajace im sekwencje instrukcji prostych, powstawialem puste miejsca po to, aby w odpowiednich miejscaxch trafic na poczatek linii cache i poprzestawialem instrukcje miejscami burzac prosta i logiczna strukture procedurki - to dopiero wtedy zaczela ona dzialac kilkakrotnie szybciej. Niestety stracila swoje piekno i prostote. Zamiast tego zaczela wygladac jak potworek wypluty przez kompilator C.

Ogolnie mowiac, assembler warto stosowac tylko wtedy, kiedy kompilator z jakiegos powodu nie moze byc uzyty (bo np. nie potrafi sam wygenerowac instrukcji do obslugi AltiVec-a).

PS. RISC to i tak nie najgorsza architektura jesli chodzi o pisanie w assemblerze. EPIC jest gorszy ;)
[#7] Re: PortablE - wersja beta

@szuler, post #6

Ktoś już kiedyś na IRCu wspominał o instrukcji "NOP" w kodzie asm PPC aby zoptymalizować procedurkę. Powoli zaczynam rozumować... :)

To są bardzo interesujące rzeczy, przynajmniej jak dla mnie. Możliwe, że wobec takiego stanu rzeczy bardzo ciężko jest samemu napisać maksymalnie zoptymalizowany kod.

Może ktoś się pokusi o artykuł o assemblerze PowerPC?
[#8] Re: PortablE - wersja beta

@Prince, post #7

hehehe zartujac to Nop - zwany rowniez Nopikiem, kiedys programowal w asmie PPC, no a pozniej sprzedal Amige i przeniosl sie do zielonej dziury :P
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem