Pokazywanie postów oznaczonych etykietą kompilator. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą kompilator. Pokaż wszystkie posty

czwartek, 22 kwietnia 2021

Przełomowe Atarowe odkrycie w Action!;)

Wczoraj dokonałem przełomowego odkrycia, coś czego się kompletnie nikt nie spodziewał.

Odkrycie dotyczy rewelacyjnego języka programowania Action! z 1983 roku(!) ACS, który był prawdopodobnie pierwszym językiem, który był stworzony z myślą o tworzeniu profesjonalnych gier i dem. Do dziś nie poznałem języka szybszego i lepiej przemyślanego - naprawdę niezwykłe!

Wrato zaznaczyć, że do dziś wszyscy pamiętają, że Action! to znaczy szybkość i że nie ma możliwości odnalezienia innego języka, który byłby prawie tak szybki jak asembler.

Wyjaśnię czego dotyczy odkrycie: gdy pracowałem kiedyś w Mirage Software z Jaśkiem, to rozgryźliśmy w tym języku bardzo ciekawą rzecz, mianowicie język zezwala na to, aby utworzyć tablicę o adresie 0. Kiedyś na party podszedł do mnie koder z innego komputera, czyli Sqward i zapytał co to za potworek? Tablica bez wartości tylko z jakimś zerem??
Genialność tego rozwiązania jest niesamowita, bo skraca i upraszcza dostęp do pamięci. We wszystkich innych językach programowania mamy dwa rozkazy (+ inne wariacje tak jak w Action!), czyli POKE i PEEK. Natomiast ta tablica powoduje, że nie potrzeba już żadnych procedur, a dostęp do tablicy posiada funkcjonalność ich obu!;)
Dodatkowo każdy kompilator wykonuje skok do procedury, a następnie powrót - czym traci masę czasu CPU. Jednak przy dostępie do tablicy nie ma żadnego skoku (szczególnie czasochłonny jest na pecetach x86) i nie ma żadnego powrotu!;)

Korzystaliśmy z tego rozwiązania latami, będąc przekonanymi, że nie ma w żadnym języku czegoś szybszego i bardziej sprytnego;)

No i tak było do wczoraj:P

Odkryłem coś co powoduje, że przenosimy się o kilka poziomów wyżej w programowaniu zaawansowanych animacji (w grach/demach) na Atari w Action!
Trudno w to uwierzyć, no ale po dziesięcioleciach od 1983 roku - dziś udało mi się coś w tak stareńkim języku odkryć!;)

Udało mi się opracować bardzo podobny mechanizm tablicy, z którego korzysta się w prawie identyczny sposób, jednak jego wydajność jest naprawdę imponująca!

W przykładzie:
    ; Zapisanie 21 bajtów w graphics 15 za pomocą tablicy P:
    [173 $D40B 201 40 208 249]
    GG=6
    QQ=$9000
    FOR Q=0 TO 20 DO
    P(QQ)=255 QQ==+1
    OD
    GG=0
trwa 22 linie rastra...
Do wczoraj każdy by powiedział, że jest to bardzo szybko jak na język tak stary i język który nie jest asemblerem, ale kompilatorem.

Jednak jak wykorzystamy mój nowy pomysł np. tak:
    [173 $D40B 201 80 208 249]
    GG=6
    FOR Q=0 TO 20 DO
    FastP(Q)=255
    OD
    GG=0
Zajmuje to 10 linii rastra!
Czyli ponad dwukrotnie szybciej!;)


Widzimy wykresy wydajności rastra, dla zaprezentowanych tu przykładów kodu wykorzystujących oba rozwiązania.

(oczywiście obie wersje programu da się napisać wydajniej - ale to takie proste obrazowe przykłady)

Rewolucyjne jest również to, że o kilka poziomów zmniejsza to też rozmiar kodu!;)

Do tej pory w moich grach były liczne procedury, które animowały przeciwników w najszybszy możliwy sposób, czyli za pomocą tablicy P. Niestety procedury te były bardzo duże, zajmowały wiele kilobajtów, więc nie byłem z tego zadowolony.

Więc co daje nowe rozwiązanie?

W zależności od sytuacji mamy tu: od ~2,9 do 4,2 razy krótszy kod! Oczywiście względem zwykłej tablicy P!

To naprawdę duża oszczędność.
Naprawdę zawadzały mi te procedury, gdy będą mogły być 3 - 4 krotnie krótsze to jest coś!;)

Okazało się, że myk jaki wymyśliłem - Action! kompiluje do 5 bajtów kodu dla stałej i do 8 bajtów przy zmiennym adresie (animacji). Jest to najmniejszy rozmiar kodu jaki da się wygenerować, więc krócej i szybciej na Atari się już nie da;))

Coś niesamowitego, naprawdę sądziłem przez kilkadziesiąt lat, że szybciej się już nie da... A jednak!;)

Tu zaprezentowany jest najszybszy powszechnie znany sposób, dzięki któremu można najszybciej zmodyfikować w Action! komórkę pamięci - wydajność 100% asemblera (tu modyfikacja adresu $9000 w trybie 15). Niżej znajduje się mój nowo odkryty trick FastP, który nie dotyczy tylko jednego adresu jak w pierwszym przypadku, ale nadaje się do robienia animacji - jednak jak widać czas wykonania obydwu jest ten sam!

Ten zaawansowany i niebezpieczny trick jaki zastosowałem spowoduje, że moje gry, które do tej pory grały na nosie wszystkim np. strzelankom, ze wszystkich możliwych komputerów 8-bitowych, teraz będą od 70% do 80% szybsze!;) a miejscami i 100% szybsze;)
...i to bez grama asemblera! Bo trzeba podkreślić, że na innych komputerach nie było tak zaawansowanego i profesjonalnego języka programowania, więc nie dało się zrobić profesjonalnej strzelanki w żadnym kompilatorze - takie gry robiło się wyłącznie w asemblerach.

W mojej ocenie Atari i Action! pokazały tutaj pazur!;)


A wszystko dzięki temu, że właśnie pracuję nad grą na konkurs Sikora tzw. 16 Kb Cart 2021;) Natomiast to odkrycie Sikor! pewnie nie zostałoby odkryte, gdyby nie Twój konkurs;)
Dzięki Sikor!;)

Jakbym komuś powiedział w latach 80. że uda mi się dziś coś podobnego odkryć - to pewnie nikt by mi nie uwierzył!:))) Ja wtedy bym zareagował: to daj mi maszynę czasu bo chcę wiedzieć jak to zrobić!;)


Update: 9 VI 2022:
Tak... mój blog przeszedł kolejny najazd rządnych krwi trolli (26 komentarzy! nie licząc licznych wątków na forach - obłęd!), jednak leci obecnie już 14 miesiąc od czasu tego postu i nikt (ABSOLUTNIE NIKT!) nie wpadł na to co konkretnie odkryłem.

(w czasie najazdu obleśnych szyderców to posiłkowano się kodem, który został kiedyś opublikowany, jednak gdy wyjaśniłem że nie o to mi chodzi, to jakoś wszyscy zamilkli - nawet nikt nie próbował dojść o co chodzi...
Choć jak mniemam, podstawy obsługi wyszukiwarek internetowych mają wszyscy w małym palcu, więc założyć można że w internecie rozwiązana znaleźć nie można...)

Przypominam, że umiejętność znalezienia cudzego kodu w internecie, nie jest przesłanką do tego żeby siebie uważać za wielkiego programistę, bo jak mniemam wszyscy trolle w komentarzach pod tym postem - za takich siebie mają...


Update:
Ciekawe! Dziś jest już 1 IX 2022 a ja nadal nie otrzymałem ŻADNEGO rozwiązania tego zadania! Jak pokrzyczeć w komentarzach i na forach to jest wielu chętnych, ale jak napisać parę linijek kodu samodzielnie (a nie wkleić z google'a) to jakoś nikogo nie ma...

To bardzo ciekawe, że jak można dowalić mi to w ciągu kilku minut, pojawiają się komentarze, ale jak trzeba coś napisać z sensem - to nikogo nie ma... ABSOLUTNIE NIKOGO!

To istotne, bo ktoś mógłby napisać, że nie ma ze mną kontaktu, a próbował się ze mną skontaktować i podesłać rozwiązanie - ale jak tu w coś takiego wierzyć, gdy zestawia się ze sobą tollowanie w szybkim czasie (jakoś znaleźć mnie wszyscy mogą?!?) z tym jak upłynęło blisko 1,5 roku!!!

Naprawdę znaleźć mnie nie możecie? A może paluszki się połamały lub klawiatura gdzieś się zapodziała??

Jesteście mali i żałośni!

środa, 16 kwietnia 2014

Najnowsze odkrycia w Action!

Ten tydzień obfituje w zupełnie nowe koncepcje programistyczne dla małego Atari. Jestem zaskoczony, że tak liczne, ale też jestem bardzo zadowolony;)

Po pierwsze w poniedziałek przeprowadziłem testy mojej koncepcji modyfikowania kodu generowanego przez kompilator podczas kompilacji (częściowo). Chodzi o to że większość języków programowania dla Atari nie potrafi wygenerować kodu pod system operacyjny (jest tam sporo wolnej pamięci RAM) oraz go uruchomić. Ja właśnie pomyślnie przetestowałem rozwiązanie, które umożliwia wygenerowanie kodu pod system operacyjny ;) Jest to o tyle ciekawe, że z jednej strony nie modyfikuję kodu wygenerowanego przez kompilator po tym procesie (ani nie analizuję go) oraz nie modyfikuję samego kompilatora.

Chyba jeszcze nikt czegoś takiego nie robił, bo do tej pory kod Action! mógł sięgać najwyżej do adresu $9x00, a teraz sięga do samego $FFFF ;)


Druga kwestia to muzyka, która zwykle w programach czasu rzeczywistego zajmuje zbyt dużo czasu CPU. Dziś zaświtała mi ciekawa myśl jak zmodyfikować koncepcję Raster Music Trackera, aby z jednej strony nie oszpecić utworu, a z drugiej aby zaoszczędzić 50% czasu jaki zabiera player. No i zdaje się że się udało;)

Wyjaśniłem memu muzykowi co chcę zrobić, a ten mi napisał:
    W życiu czegoś takiego nie robiłem, mógłbyś pokazać jak to wyjdzie w grze? (...)
He he;)

No nic, wracam do roboty bo w końcu mam mu pokazać jak to wyjdzie;)

sobota, 19 lutego 2011

Będzie nowa jakość moich programów ?

Jest to dla mnie bardzo radosna chwila, udało mi się całkowicie zmienić sposób programowania w Action! Myślałem o tym już kilkadziesiąt lat temu, myślałem w ostatnich latach, jednak w ostatnich dniach udało mi się osiągnąć sukces - wszystko jest: jasne, sprawdzone i gotowe do wykorzystania (powstała dodatkowa biblioteka).

Myślałem cały czas o szybkim, bezpiecznym, wygodnym i bezkolizyjnym wykorzystaniu prawdziwego potencjału sprzętu w tym języku. Największym dla mnie problemem była ilość wolnej pamięci, co prawda miejsce zajmowane przez sam kompilator został zmniejszony dwukrotnie dzięki odpowiednim sztuczkom zastosowanym przez autorów, jednak w praktyce było źle. Inni programiści starali się zwykle robić na tyle małe programy aby źródło mieściło się w całości w pamięci. Ja niestety we wszystkich swoich ostatnich programach sięgałem kresu, często (nie licząc stosu itp.) zostawało mi kilkaset bajtów, a internauci mówią, że chcieliby abym do programu dodał to czy tamto, ok mogę dodać, ale ile mnie to będzie kosztowało pracy ? :-/

W momencie uruchomienia gotowego pliku wykonywalnego, zwykle pozbywałem się biblioteki procedur, co oszczędzało mi całe miejsce jakie zajmuje ten język w pamięci (mój runtime library zajmował jedynie ~700 bajtów). To i tak była bardzo komfortowa sytuacja, bo w innych popularnych językach programowania nie jest to możliwe bo np. runtime jest gigantyczny, musi być cały czas w pamięci (i np. nie da się go skrócić itp.), a czasami to nawet jego pokaźna część siedzi schowana pod systemem ROM (sztuczka sprytna, posiadająca dużo zalet, ale w tym momencie też wadę).

Dlatego myślałem nad zupełnie nowym modelem programowania, po pierwsze chciałem osiągnąć całą dostępną pamięć tylko na kod programu, to sprawi że kodowanie będzie dużo wygodniejsze oraz szybciej będzie się wszystko uruchamiać, kompilować itp. (dla mnie bardzo ważne!) Z drugiej strony chciałem osiągnąć przyspieszenie kodu oraz dodatkowe miejsce w pamięci na dane (skoro wszystko pójdzie na sam kod programu).

Zaprojektowałem konkretny model tego co i jak chcę osiągnąć i to tak aby w prosty sposób nie stracić wcześniejszej funkcjonalności systemu operacyjnego, języka programowania itp. Powstało pytanie co na to Action! który niekoniecznie był przygotowywany przez twórców do takich przekręceń do góry nogami całego systemu komputera.

Musiałem napisać kilka procedur, zrobiłem kilka testów, czy wszystko działa tak jak chcę oraz czy sam język lub system operacyjny nie będą mi jakoś utrudniać, życia np. coś się stanie niestabilne itp.

No i mam pełen sukces, wszystko działa jak zaplanowałem, a nawet lepiej;) Moja biblioteka jest bardzo mała, jedynie kilkadziesiąt bajtów (w tej chwili), a osiągnąłem co zamierzyłem (jeszcze napiszę parę toolsów). Teraz mam zupełnie nowy model pamięci i nowy sposób tworzenia programów.
Zastanawiam się czy ktokolwiek coś takiego robił już, bo przecież to bardzo niszowy język programowania.

Od tej pory od samego początku będę tworzył programy w nowy sposób (czyli niestety muszę zrezygnować z moich przyzwyczajeń), jednak efekty powinny być odczuwalne dla mnie od razu (wygoda kodowania) oraz dla użytkowników, bo skoro mam więcej pamięci to wszystkiego powinno być więcej. Odczują to też moi stali współpracownicy, którzy do tej pory słyszeli ode mnie "twórz mało bo pamięci już nie mamy" ;)

Inna sprawa, to fakt tego, że obecnie mam do dyspozycji prawie całą dostępną pamięć RAM (jak w asemblerze) więc od początku programy będzie można projektować w nowy sposób, z większą ilością bajerów oraz przede wszystkim o lepszych parametrach.


Może Ci z Was, którzy nigdy nie programowali tyle co ja to nie do końca zrozumieją moją radość, ale dla mnie to naprawdę epokowe wydarzenie;) a mam też nadzieję, że będzie to odczuwalne dla innych;)


Wracając do tematu tego postu: czy będzie nowa jakość moich programów ? To właśnie Wy w przyszłości ocenicie;)

czwartek, 4 marca 2010

Jeszcze większe problemy Allegro

Na Allego już wielokrotnie narzekali użytkownicy, ale tak wielkiego lamentu to dawno nie było, a sam serwis oczywiście jest jak zwykle zupełnie nieczuły na to co przeżywają bardziej zaawansowani użytkownicy.

Sprawa jaką dziś opisuję trwa już od jakiegoś czasu (nie miałem czasu tego wcześniej opisać), ale już w dwa tygodnie po wprowadzeniu zmiany w systemie Allegro użytkownicy napisali ~4000 postów ! 8-O
Czegoś takiego jeszcze nie widziałem oraz nie widziałem tak wielu wymoderowanych na niebiesko obelg kierowanych przez użytkowników do serwisu Allegro.

Oto stosowny wątek na forum Allegro, jednak proszę uważać bo to jeden z największych plików html jaki widziałem w życiu (plik ponad 5 Mb ! i 4400 postów !): Zimowe porządki w Moim Allegro (aktualizacja)
Na starszych komputerach i przy wolnym łączu internetowym będzie się wolno otwierać i będzie zajmowała sporo zasobów systemowych.

Chodzi o to, że niektórzy (szczególnie ci bardziej zaawansowani sprzedający) nie widzą swoich zakończonych aukcji tak jak wszyscy - co do tej pory było normą.

Pierwszą z tych zadziwiających zmian jest to, że gdy pobieramy z serwisu allegro dane do wysyłki sprzedanego przedmiotu mylą się pozycje (aukcje) i właściwie nie wiadomo do jakiej aukcji się odnosi to co widzimy na ekranie !
Efektem tego poza oczywistym niezadowoleniem sprzedających, jest to że przesyłki nie są wysyłane na właściwe adresy.

Drugą radosną zmianą wprowadzoną przez allegro jest to, że część z miniaturek aukcji znika jeśli aukcja jest zakończona (to niektórym znika a niektórym nie - zależy od formy aukcji). Efekt tego jest taki, że osoby sprzedające setki przedmiotów mają problemy z ponownym wystawieniem przedmiotu bo te najczęściej odnajdywali właśnie po miniaturce (a jak się ma setki lub nawet tysiące zakończonych aukcji to bardzo istotne jest to gdy nie możemy czegoś znaleźć).

Tu efekt uderza głównie, w allegro (które jak widać pod tym linkiem jest zupełnie obojętne na lament swoich użytkowników) gdyż nawet najbardziej zdesperowany sprzedawca nie da rady wystawić wszystkich swoich kilkuset aukcji, gdy nie wie która jest która. Nie jestem w stanie określić o jaki procent aukcji z tego powodu jest mniej w serwisie. Jeden z zaawansowanych sprzedających napisał mi, że nie wystawia setek swoich aukcji bo od 2 tygodni nie może przez nie teraz przebrnąć...

Dostaję też sygnały, że pojawiają się problemy (nie wiadomo jak bardzo zamierzone) ze zmianą kategorii aukcji, nawet jeśli ta nie została jeszcze wystawiona. Przy takiej próbie z reguły traci się całą treść aukcji, co jest dość niefajne jak się coś pisało od jakiegoś czasu...


Ja już wielokrotnie wskazywałem, że coś na allegro nie działa lub że są jakieś poważniejsze problemy. Jednak to co dziś opisałem to jest totalna katastrofa !


Update:
Wcześniej o problemach na serwisie allegro pisałem w postach:
  1. Problem z językiem i literkami na Allegro
  2. Edycja strony "O mnie" na Allegro szwankuje
  3. Katastrofalna niekompetencja Allegro!
  4. allegro się sypie...
  5. allegro: super sprzedawca → super płatnik
Całkiem liczna lista - może warto jest zatrudnić w allegro parę kompetentnych osób na właściwe miejsca ?


Update:
Zgodnie z danymi Aukcjostat.pl serwis allegro sporo stracił na rzecz Świstaka, który ostatnio staje się istotnym graczem na rynku (i też mają swoje problemy techniczne). Jak się okazuje Allegro obecnie ma 86.22% udział w rynku, a Świstak 11.69 % (czyli 1 444 021 aukcji), co jest absolutnym rekordem tego ostatniego w całej historii aukcji internetowych (w kwietniu 2009 opisywałem rekord 400 000 aukcji). Na trzecim miejscu znajduje się eBay.pl z 1.34% udziałem...

Skoro już o tym mowa to chyba pół roku temu z rynku wycofał się serwis Subasta, którego nazwa większości Polaków nic nie mówiła ;) Jednak mimo to miał on zwykle sporo większy udział w rynku od eBay.pl (pisałem o tym np. w grudniu 2008).


Update 7 IV:
Wysyłanie listów e-mal z allegro jest wygodne dla kupujących i sprzedających. W takim liście zawarte są wszystkie niezbędne informacje, np. nick użytkownika, tytuł i link do aukcji (jakiej dotyczy pytanie) itp., jednak dość ciekawymi informacjami są np."W ciągu ostatnich 2 miesięcy:" np. "autor wiadomości nie licytuje w żadnej z Twoich aukcji", "nie licytujesz w żadnej aukcji autora wiadomości" itp.

Do tej pory system tego powiadamiania działał bardzo sprawnie i bezbłędnie. Jednak kilka tygodni temu miałem taką sytuację, że pewien jegomość kupił i zamówił towar, a po kilku dniach gdy zadał jakieś pytanie (pewnie o przesyłkę) okazało się, że ponoć nic u mnie nie kupił...

Zwykle jak się wprowadza wiele (nawet) drobnych zmian w oprogramowaniu to można, niejako przy okazji uszkodzić coś innego co wcześniej działało bardzo dobrze. Allegro ostatnio wprowadza wiele większych lub mniejszych zmian (niekoniecznie potrzebnych) i myślę, że teraz coraz mniej działa i oni sobie z tego nie zdają sprawy... a ten przykład powiadamiania jest tylko jednym z wielu.

poniedziałek, 6 lipca 2009

Emulatorowoprogramistyczna imprezka u Adama;)

Wczoraj byłem u Adama znanego w necie jako Reg. Wizyta ta związana jest między innymi z imprezką w RIO (gdzie wygłaszałem ostatnio prelekcję - o czym można przeczytać w tym miejscu), a tam właśnie się poznaliśmy. Teraz Adam zaprosił mnie do siebie ze względu na to, że chciał abym zainstalował i skonfigurował mu emulator Atari.
O rozpoczynającej się fascynacji Adama tą architekturą była ostatnio mowa w poście Czcionki Atari w pececie.

To dość zadziwiające, ale Adam będąc zaawansowanym programistą multimediów (to jego praca i hobby), zainteresował się architekturą ośmiobitowego Atari, ze względu na to że mimo swego wieku jest to jedna z najbardziej elastycznych i fascynujących architektur multimedialnych na świecie.

Atari 65 XE + gra Panga Ponga
Atari 65 XE podłączone do telewizora HD

Po zainstalowaniu emulatora, nie minęła chwilka gdy rozpoczęliśmy naukę programowania na Atari oraz starałem się pokrótce przedstawić jak jest to niezwykła architektura. W tym celu pokazałem mu Atari Basic oraz zaczarowałem (poke) tak, że jego edytor znalazł się na pierwszych stronach pamięci (widoczny w czasie rzeczywistym jest stos procesora itp.). Oczywiście obaj nie mogliśmy sobie odmówić przyjemności wpisania czegoś z klawiatury w stos procesora ;) Co ciekawe samo wprowadzenie kursora w aktualnie przetwarzane dane z przerwań, nie spowodowało niczego drastycznego (?!) jednak chwilę potem wirtualne Atari się zawiesiło, a emulator pokazał dialog o kraszu ;)

Potem Adam chciał zobaczyć jak się programuje w Action! czyli w jednym z najbardziej niezwykłych języków programowania (głównie interaktywnych multimediów). Okazało się, że spędziliśmy nad tym sporo czasu, czego efektem był np. histogram (Wikipedia) sprzętowego generatora wartości losowych, który bardzo zainteresował Adama (sam programując na wielu współczesnych architekturach, w tym konsolach takich jak Xbox itp. stwierdził, że nigdzie nie jest tak fajnie!).
Temat sprzętowego generatora liczb losowych w grach komputerowych był omawiany ostatnio na AtariOnline.pl w tekście pt. Sztuczki w "Action!".

W pewnym sensie było to wydarzenie na skalę świata: osoba, która na co dzień programuje shadery (Wikipedia) uczy się programować komputer z roku 1979 ! ;):)
Jednak mnie to bardzo cieszy, może nawet powstanie w przyszłości jakaś gra lub demo ? Oby !


Adam pokazał mi również swój dość rozbudowany program na pecety do zabawy shaderami, natomiast ja pokazałem program, który napisałem kilka dni temu na nadchodzące party Głuchołazy 2k9.

Ogólnie bawiliśmy się nieźle, imprezka przedłużyła się nam do świtu, co dobrze rokuje na przyszłość. Wszystko wskazuje na to że to będą cykliczne spotkania !;)

wtorek, 2 czerwca 2009

Wrażenia z Grzybsoniady 2k9

Wczoraj wróciłem z party Grzybsoniada 2k9 (od miesięcy na blogu był baner), które było udane nawet pomimo nieudanej pogody ;) Oto kilka słów bardzo zmęczonej i niewyspanej osoby;)

Gzynio testuje 3D

Party było bardzo udane, bawiłem się wyśmienicie, choć ponownie nie byłem świadkiem wszystkich atrakcji i rozrywek, gdyż uskuteczniałem „party coding” ;)
Atmosfera była fantastyczna, ludzi przybyło sporo (frekwencja z roku na rok wzrasta), przybyło kilka nowych osób, a wiele po raz pierwszy poznałem w realu. Nowi byli bardzo zadowoleni i zapewniali, że teraz będą wpadać regularnie i to wraz ze swoimi wybrankami, które już nie były takie zadowolone !;)
Najlepszym tego podsumowaniem niech będzie komentarz narzeczonej jednego z nowicjuszy: no teraz już wiem, że jest więcej takich świrów, jak mój facet ;)


Na party było także kilku przedstawicieli „konkurencyjnej” demosceny, czyli Commodore, z którymi wiele przegadałem – szczególnie, że kiedyś przez ścianę miałem redakcję commodore'owego magazynu C&A (Bajtek) i opowiadałem im również o tym.

Pojawił się też kontrowersyjny Jellonek, który do tej pory nie pojawiał się na żadnych party (w ostatnich latach).

Atari w joysticku ;)

Ciekawe było to, że na party zabrałem 1 komputer (laptop), a na miejscu przekonałem się, że są w sumie 3 moje komputery ;) Jeden z nich powędrował do mojego kolegi z innego miasta, który bardzo go potrzebował, a drugi dzięki uprzejmości Lotharka został naprawiony (poszedł jeden z chipów), trzeba przyznać, że tylko tacy rewelacyjni kumple jak Lotharek – w mig reperują komputery kolegom !
Potem okazało się, że to nie koniec, gdyż Lotharek jako nagrodę w konkursie przeznaczył listę możliwych rozszerzeń i okazało się, że jeszcze raz ten sam komputer będzie potraktowany tą samą Lotharkową lutownicą ;)

Uszkodzony układ PIA z Atari 800 XL

Drugim zaskoczeniem było to, że z jedną ekipą dojechałem na party, a z drugą wracałem ;) A było to tak: siedziałem przy komputerze, raptem patrzę, a za mną nie ma moich rzeczy ;) Podchodzi Gzynio i pytam się gdzie są moje rzeczy ? Na to Gzynio już jesteś z nami spakowany !
Protestowałem, ale okazało się, że zostało to tak misternie zapakowane, że już musiałem jechać z nimi ;)
Całą drogę do Łodzi, przegadałem z Nostym o różnych największych pytaniach ludzkości – to była NAPRAWDĘ WSPANIAŁA rozmowa ! Rozstrząsaliśmy wiele ciekawych kwestii, w tym takie, które poruszam w swoich prelekcjach.
Okazało się, że mamy bardzo podobne podejście i rozumowanie, choć w poglądach się nieco różnimy – a to zwykle różnice powodują, że rozmowa jest ciekawa, a nawet fascynująca – no i do czegoś prowadzi (np. do wewnętrznego rozwoju itp.). Czyli znów bawiłem się wspaniale !:)

Compo rozpoczęte


Na party odbyło się kompo w jednej kategorii czyli tzw. Game Compo oraz zaprezentowane były prace pozakonkursowe. Wczoraj Grzybson oficjalnie podał na Atarionline.pl, wyniki compo, które są następujące:

1 miejsce - „Panga Ponga”: TDC (kod), Kaz (grafika), Tatqoo (muzyka)
2 miejsce – „Pac-Txt”: Larek (kod, grafika)
3 miejsce - „Sssnake It!”: Sikor (kod), Kaz (grafika), Andy (muzyka)
4 miejsce – „G.L.I.P.”: Gorgha (kod, grafika), Caruso (muzyka)


A to wyniki kompotów:
1. Panga Ponga - 175 punkty
2. Pac - TXT - 163 punkty
3. SSSSnake It! - 140 punktów
4. GILP - 131 punktów

Opisy prac na Game Compo znajdują się na Atarionline.pl: 1. G.I.L.P. i PAC-TXT, 2. Panga Ponga i Sssnake It!.

O miejscu pierwszym głupio mi pisać, ale powiem, że poziom prac był zaskakująco dobry. Do tego stopnia, że absolutnie nie liczyłem na miejsce na podium. O trudności w osiągnięciu miejsca pierwszego świadczy fakt niewielkiej różnicy punktów jakie otrzymały pozycje 1 i 2 (inna sprawa, że na kompotach została zaprezentowana niekompletna wersja programu „Panga Ponga” – zamiast wersji 1 zaprezentowano wersję 0, no ale takie rzeczy się zwykle zdarzają na wszelkich większych imprezkach).

Na mnie duże wrażenie zrobiła praca, która zajęła miejsce 4, choć w mojej ocenie była mało grywalna. Po ukazaniu się grafiki w grze - choć w takim trybie graficznym, którego nigdy nie lubiłem – jednak stwierdziłem, że jest fantastyczna i ma fajny klimat.

Meśka szczęśliwa, że dorwała się do armatniego pocisku (jedna z nagród na compo)

Największe wrażenie zrobiła na mnie praca, która osiągnęła miejsce 3. gdyż opracowanie multimedialne powalało całą konkurencję (włącznie z moim kodem). Gdy to zobaczyłem poczułem wszystko mówiące ciarki na plecach !:) A jako jeden z autorów prac, byłem pewien, że poziom prac jest niezły !
Pod względem grywalności itp. Sssnake It! oceniam średnio i pewnie dlatego otrzymał 3 pozycję.

Miejsce 2 jest w pewien sposób banalne, ale doceniam pomysł i wykonanie – gdyż są wyśmienite. Jak widać do podobnego przekonania doszli pozostali uczestnicy party, bo tylko niewielka liczba punktów spowodowała, że nie stała się miejscem 1. Największą zaletą tej gry i pomysłu jest znaczny wpływ na wyobraźnię gracza – a to jest coś naprawdę wielkiego! Widać nawet w filmach na YT, że partyzantom udzielał się klimat oraz pomysłowość buzowała (więcej niż % ;). Co prawda w mojej ocenie można było w tym programie zrobić kilka ciekawostek, ja widzę oczami wyobraźni 2 zupełnie różne pomysły, które można było przy okazji zrealizować, np. zrobić tę grę na wesoło, wtedy pewnie 1 miejsce byłoby murowane !

Prace były w różny sposób oceniane, np. część z uczestników oceniała poziom ukończenia programu, gdzie tylko 2 i 3 miejsce mogą się poszczycić niemal 100% zaawansowaniem. Pozostałe prace są raczej wstępną prezentacją. Inni oceniali głównie pomysł, wykonanie, grywalność itp. czyli bardziej rozrywkowe ujęcie tematu ;)


Jedną z tajemniczych ciekawostek była pozakonkursowa praca „Tribute to Kaz”, która jest hołdem użytkowników serwisu dla jego mozolnej i wieloletniej pracy. Sam należę do osób, które doceniają ten wysiłek, ale zapewne nie brakuje takich, które czują jeszcze większą wdzięczność (np. są wieloletnimi czytelnikami – a ja nie jestem itp.). Sedno tematu jest takie, że praca do organizatora doszła z anonimowego źródła i właściwie cały czas nie wiadomo kto jest autorem. Po kompotach na party wszyscy się zastanawiali, kto to zrobił oraz jakie jest prawdziwe przesłanie. Zespół konkurencyjnej stronki WWW zapewniał, że to „na pewno nie my”, co gorsze wszystkie najbardziej podejrzane osoby, były obecnie zajęte kończeniem swoich prac na compo – co jeszcze bardziej komplikowało zagadnienie.


Dla partyzantów cały czas czekało wiele atrakcji: od rozmów o cyklach CPU, przez granie w gry (Gzynio zadziwiał rewelacyjnymi wynikami w Moon patrol), wspominki przy ognisku ;) Nosty przywiózł okulary 3D wraz z oprogramowaniem, co przyciągało ciekawskich. Prezentowanych było wile demek z Atari, Commodore (zupgrade'owanego) oraz Falcona z CT60 (wraz z najnowszą produkcją mającą 2 tygodnie). Ten ostatni działał zbyt wolno, do czasu gdy na party dotarł Jury, który w mgnieniu oka przyspieszył go 5 krotnie ! Od tego momentu było na co popatrzeć !

Mega lo mania - czyli świecka tradycja na Grzybsoniadzie ;)

Na party bawiłem się doskonale! Imprezka była większa i ludzi przybyło więcej niż poprzednim razem (wielu widziałem po raz pierwszy, a niektórzy byli zupełnie nieznani). Jednym słowem organizator stanął na wysokości zadania !;)
Na załączonych filmikach z YT widać, że atmosfera na party była doskonała i wszyscy Ci którzy byli nieobecni mogą żałować !

Mała porcja Gzynia ;)

Wielkie gratulacje i podziękowania dla organizatora oraz dla uczestników kompotów i party ! Jako osoba, która brała udział w kompotach, bardzo dziękuję wszystkim sponsorom nagród (w tym część pochodziła nawet od przedstawicieli sceny Commodore!).


Update:
Muzyka z gry Panga Ponga cieszy się obecnie dużym zainteresowaniem i zbiera wiele dobrych opinii (w necie). Dlatego zdecydowałem się przygotować wersję ogg tego utworu dla wszystkich zainteresowanych (wersja z party).

wtorek, 12 maja 2009

Zmagania z kodem...

W ostatnich dniach przygotowuję się do kompotów na nadchodzące party, jednak ostatnie dni (weekend) były bardzo ciężkie, po napisaniu nowej części kodu (bardzo istotnej i ostro zoptymalizowanej – przez co mało czytelnej) – wszystko zaczęło się sypać... :(
Kod się stał na tyle długi, że objawił się błąd kompilatora (choć najpierw przez bardzo długi czas sprawdzałem najnowszy kod w poszukiwaniu mojego błędu !:(

Na szczęście udało mi się błąd namierzyć (na szczęście to nie był mój błąd) i z powodzeniem zastosować metody omijające ten problem, czyli obecnie uruchamiam kod, który nie ma prawa działać ;):)
Dzięki opracowanej technice omijania błędu, możliwe stanie się ukończenie wcześniejszych moich programów (bo wcześniejsze nieukończone, też się dziwnie zachowywały – teraz wiem, że na 99% to właśnie był znaleziony błąd kompilatora !)

Cały temat jest dość obszerny i ciekawy, więc pewnie któregoś dnia skończy się to większym artykułem opisującym problem (z przykładami) oraz metodę ominięcia go ;)

środa, 6 maja 2009

Walka o cykle CPU

Właśnie na stronie AtariOnline.pl pojawił się mój artykuł (Sztuczki w "Action!"), który jest odpowiedzią na wcześniejszy tekst Yosha. Wspólnie już oficjalnie tworzymy cykl poświęcony jednemu z najbardziej niezwykłych kompilatorów na świecie, czyli Action!



(z atarionline.pl)

W tym odcinku skupiam się na technikach optymalizacji kodu, który w założeniu ma być tak wydajny jak asembler. Dzięki temu czytelnicy będą mieli ułatwione zadanie przy pisaniu gier oraz prostych demek (intr). Zamieszczone informacje dotyczą także innych języków programowania oraz platform sprzętowych.

Oto zamieszczone w tekście obrazki, będące specyficznymi wykresami, wizualizującymi w czasie rzeczywistym obciążenie CPU (można określić za ich pomocą ilość cykli jaką procesor potrzebuje na badane operacje):



W szczegółach omówione jest wszystko we wspomnianym artykule - zapraszam do lektury ;)


Update:
Wcześniejsze teksty na AtariOnline.pl:

piątek, 13 marca 2009

Konkurs w Bajtku

W serwisie AtariOnline.pl, właśnie (niespodziewanie dla mnie) pojawił się mój wspominkowy tekst z czasów początków mojej współpracy z redakcją Bajtka (co miało miejsce w 1992 roku).

Tekst nosi tytuł „Niedoszły konkurs "Bajtka"” i jest do przeczytania w tym miejscu.

Autor - Kaz napisał ładny wstęp do tego tekstu:
    (...) TDC znany jest ze swoich ciągotek publicystycznych. Prowadzi własny blog, wygłasza prelekcje na konwentach i dzieli się swoją wiedzą o Atari. W starych czasach fascynacja Atari objawiała się przede wszystkim udziałem w przedsięwzięciu pod nazwą "Atari Magazyn", gdzie TDC występował jako jeden z członków redakcji pisma. Dzisiaj o mniej znanym epizodzie - próbie współpracy z "Bajtkiem", która ostatecznie się nie powiodła. Ale odnotowuję ją nie tylko z powodów historycznych. Sprawa tyczy się bowiem... "Action!", a więc doskonale się wpisuje w ostatnio modną na AtariOnline.pl popularyzację tego języka ;)

Dzięki Kaz - kto by to lepiej ujął ;)


Update:
W dyskusji do tego tekstu pojawił się komentarz, który napisał larek, w mojej ocenie to opymalizacyjny tekst wszech czasów, oto on:
    Napisałeś, że zlikwidowałem zmienne. Ja bym to ujął w inny sposób - po optymalizacji programu stały się zbędne :D



Update:
Wcześniejsze teksty na AtariOnline.pl:

piątek, 1 sierpnia 2008

Relacja z Głuchołazów 2008

Mam przyjemność zaprosić na obszerną relację z demoscenicznego party Głuchołazy 2k8, którego byłem szczęśliwym uczestnikiem. Kaz, czyli osoba, która od dawna dba o tematy Atari na swojej stronie atarionline.pl zamówił u mnie tę relację już bardzo dawno temu (tak jak wspominałem o tym w tym miejscu), tak dawno, że obaj nie mieliśmy pojęcia jak trudno będzie mi relacjonować wszystko to co miało miejsce dalej niż 5 metrów od mojego stanowiska kodowania:)

Moje miejsce odpoczynku ;) (autor zdjęcia Sqward)

No, ale mam nadzieję, że nikogo nie zanudzę wodolejstwem - więc serdecznie zapraszam do zapoznania się z tą relacją, zdjęciami, dołączonymi linkami oraz do komentowania tekstu i party!:)


Moje wcześniejsze teksty na atarionline.pl to:

Update:
Dziś pojawiła się najnowsza relacja z G2k8, której autorem jest Grzybson. Wcześniej pojawiły się także te dwie: na blogu Dhora (pierwsza historycznie relacja) oraz relacja wybitnego kolekcjonera Nostyego.

wtorek, 8 kwietnia 2008

Red. hakin9 - odważny w swym optymizmie

Miniaturka okładki omawianego numeru hakin9Przeglądałem dziś pobieżnie aktualny numer pisma hakin9 (czyli numer 4 2008 (36)) i natrafiłem tam na ciekawy kwiatek :D Jest tam tekst Rafała Podsiadłego zatytułowany "Użytkownik kontra wirusy". Tam w rozdziale "charakterystyka wirusa i backdoora" (str. 25), autor wyjaśnia jaka jest różnica pomiędzy kodem generowanym przez języki kompilowane oraz asembler. Zupełnie poprawnie opisuje, że kompilatory dodają prologi, epilogi itp. jednak jego wnioskiem z tego rozdziału jest:

    Jak widać, programy napisane w asemblerze są optymalne pod względem szybkości działania i długości kodu (...)

O ile z długością kodu to niechętnie mogę się zgodzić (a co jak ktoś specjalnie będzie pisał program tak aby był długi ??; Może to robić świadomie lub nie...) to z tą "optymalnością pod względem szybkości działania" to jest to co najmniej naiwne, optymistyczne podejście! :D

Drogi autorze! Radzę z mniejszą swobodą wypisywać podobne tezy oraz zaznajomić się z tym co to właściwie jest asembler...


Jeśli nie jest zaznaczone inaczej (lub nie jest zaznaczone wcale) zamieszczone ilustracje pochodzą z Wikimedia Commons lub są mojego autorstwa.


Ta strona używa cookies oraz innych technologii Google (i innych firm w specjalnych dodatkach po prawej stronie) w celu prawidłowego działania tej stronki (jej elementów jak np. ankiety, reklamy itp.) oraz zbierania statystyk. Korzystanie z tego bloga powoduje zapisywanie typowych plików na Twoje urządzenie (np. komputer, tablet itp.) o ile w ustawieniach przeglądarki nie zmienisz tego.

W UE się ludziom w głowach przewraca, więc dla świętego spokoju zamieściłem to absurdalne ostrzeżenie...