Pomocnik konkursowy IV by Kaz 2008-11-27 00:52:25

Się namnożyło tych materiałów w sprawie konkursów! Kto żyw podsyła pomoce naukowe dla chętnych pisać własne programy. I bardzo dobrze, chociaż jeszcze lepiej byłoby, gdyby przełożyło się to na ilość programów, które zostaną napisane... Pożyjemy, zobaczymy.

Wsparcia dla konkursowiczów udzielił też Andreas "Charlie Chaplin" Koch, który podesłał multum plików: "Nie jestem programistą, więc udziału w konkursie nie wezmę. Ale myślę, że może pomogę dostarczając trochę źródeł, przykładów, demosów i innych programów, które są napisane w Basicu. W pakiecie, który podsyłam, znajduje się między innymi:












Ciekawe materiały, które pasują jak ulał do pomocnika konkursowego, znalazłem we fragmencie niedokończonego wywiadu z kolegą Arturem "Jurgim" Jurgawką. Rozmawialiśmy tam między innymi o demo w Turbo Basic XL "De Themo", które zostało napisane przez osoby dopiero "raczkujące" w programowaniu. Na potrzeby dema ludzie powymyślali fajne procedurki, warto zajrzeć i może zapożyczyć. Jurgi tak opowiada o serii trubobejowych demek:

"De Themo" powstało w parną noc, w czasie zjazdu redakcji "Syzygy" przez Ornetą '97. Wydłubał je Vasco z małą pomocą Nietoperka, zdzieraliśmy z paru dem i scenowych plotek (np. z dopałki do JIL, nad którą wtedy pracował MacGyver). Ukryliśmy się wtedy, jako redakcja Syzygy, pod pseudo Anonimous Atarians, a częścią „promocji” było rozpuszczanie plotek, że na party wystawi demo grupa z Rosji. :) Zajęliśmy nieostatnie miejsce, co nas ośmieliło, a reszta pozazdrościła umiejętności „koderom”.

Kiedy Vasco ogłosił Last Party '97, postanowiliśmy za ciosem stworzyć "De Themo 2". Wszyscy dopiero na tym demie uczyliśmy się kodowania, a wsio powstało w czasię Świąt Bożego Narodzenia (tak! 3 dni), bo party było zaraz po nich, przed Sylwestrem. Vasco całe party siedział i linkował części, wygraliśmy wtedy nawet z demami „serio”. Ja parodiowałem m. in. "Trip6" i "Journey" Shadowsów oraz "Stickman's World" z Overminda, Axe parodiował "Runnning Cow" MadTeamu i "Megata Zine" Swordów, Mitchel kpił z "Total Daze", Nietoperek wpierniczył w Greetings Part cały „spis scenowców” z InterMaga. Ciekawostki: w demie jest hidden part, trzeba kliknąć joyem w czasie jednej z części (chyba ostatniej), albo na bezczela odpalić z dysku, część parodiuje intro "Waves" BitBustersów. Ciekawostka: na dysku znajduje się jako bonus dla wścibskich magazyn, parodia "Pentagram Zinu". Całe demo jest w TBXL bez kompilacji, zajmuje dwie strony DD, każdą się bootuje oddzielnie, wymaga 320 KB, bo kopiuje się do ramdysku i stamtąd odpala. Można uruchomić na 64 KB z dyskietki, ale będzie przycinać. Tylko moje części nie tną, bo ładuję wszystko od razu (do zmiennych tekstowych). Zaraz, chyba Nietoperek coś tam w asmie podrasowywał. Polecam (technicznie) zwłaszcza przechodzące przez siebie napisy w części Mitchela i jednoczesną animację wielu obiektów w Ascii Art w części Axe. No i może mój system okienkowy w endpart. :) Algorytm do hidden part jest z jakiegoś starego numeru Entera. Powinno być w każdym repozytorium dem. We wszystkich moich częściach "De Themo 2" zerżnąłem z jakiegoś programu w TBXL w "Tajemnicach Atari" procedury odczytu i zapisu grafiki. To był jeden z pierwszych numerów, program chyba robił coś z plikami Blazing Paddles, autorem był na pewno Carampuc.

Powstało jeszcze De Themo 3. Zaczęło powstawać jak Eijk reaktywował Ornetę. Wyszło rok później, tyle że robione już nie przez redakcję Syzygy, a grupę Tristesse i pod nazwą "Wyczesana Rozkmina". No i jest kompilowane, a moje są tam tylko napisy do części Kobito! (parodia "Cogito" Grega). W czasie emisji połowa sali rechotała, a połowa krzyczała „profanacja”, z czego wnioskuję, że moja część jest udana. :P"






Przytaczam tą wypowiedź po to, żeby każdy, kto ma watpliwości, czy warto spróbować się pobawić pisaniną w Basicu - zdał sobie sprawę, że to jest naprawdę niezła zabawa, a efekty mogą być zaskakujące. Gry z natury swej wymagają grafiki i dynamiki, warto więc podpatrzeć jak to zrobili inni - w demie. Paczuszka z wymienionymi przez Jurgiego demami w niekompilowanym TBXL jest tutaj. Zresztą warto zobaczyć "De Themo" także dla niektórych pomysłów - mnie szczególnie przypadły do gustu sposoby ładowania kolejnych części - np. ta z dźwiękiem magnetofonu i ta z butelką piwa. Świetne!

Na koniec zestaw programów Basic-owych Arsoftu czyli Arka Lubaszki. Też może być przydatne, szczególnie, że Arek robił gry różnorodne tematycznie, a wiele z nich zręcznościowych. Plik z dyskietką tutaj, a o samych programach było tutaj i tutaj. Chyba warto prześledzić programy autora, który w 2006 roku w starciu z programistami asemblerowymi zajął drugie miejsce na najlepszą grę roku?
Kaz 2008-11-27 11:34:47

Tak jak obiecalem - wiecej przykladow - sporo w Turbo Basic XL, ktory jest chyba najlepszym jezykiem do pisania gier (nie liczac Action!) dla nie-assemblerowcow.

Dracon 2008-11-27 11:50:45

Niepotrzebnie ;] narobiles apetytu na ciekawy wywiad - teraz oczekuje go i probuje sie pocieszac, ze sie ukaze jeszcze w tej dekadzie... ;P

Kaz 2008-11-27 11:55:33

Niedokonczonych wywiadow mam kilka. Gdyby doba miala 100 godzin to dalbym rade... :). Ale czasem jest tez tak, ze przepytywany zapada w sen zimowy :).

larek 2008-11-27 13:50:14

Miło, że wspominasz o moich starusieńkich programikach, ale nie wiem, czy komuś się one przydadzą. O ile pamiętam, to kiedyś - jakieś 20 lat temu - miałem manię zabezpieczania moich arcydzieł ;) i nie wiem, czy komuś uda się cokolwiek podejrzeć w tych programach. Ta dyskietka miała raczej zaprezentować mój Loader do programów basicowych, a nie same programy :). Wśród nich jest też jakieś demo, które nie jest moje. Oczywiście, jeśli to komuś w czymś pomoże, to będzie mi miło.
Ja natomiast proponuje zajrzeć tu: http://tiny.pl/6mgj
Dla wszystkich uczących się programowania w Turbo-Basic XL będzie to niezły kąsek. Ściągnijcie sobie dyskietkę z grami o pingwinkach. Na dyskietce tej znajdują się kompletne źródła, zarówno samych gier "Pingwinek" i "Pingwinek idzie do szkoły", jak i podprogramów w asemblerze. Wystarczy uruchomić TBXL z innej dyskietki, włożyć do stacji ATR-a PINGWINKI i napisać DIR.
Zobaczymy dość sporą listę plików. Te z rozszerzeniem TXL, to kod źródłowy obu gier. Gry są bardzo proste, więc rozgryzanie ich od środka też nie powinno być trudne. Powodzenia!

Cobra/Samar 2008-11-27 18:25:43

Koledzy,załamka.
Jak widzę te przykłady (fajne zresztą) to stwierdzam, że z moją wiedzą basic'a na JIL i tekstówką w konkursie, która jest w powijakach to wstyd się pokazać:) Pozdrawiam.

xeen 2008-11-27 18:54:18

rysunke kobiety z rozwaloną czaszką jest wyrypany z dema WitPremium/Freezers (Amiga - Code/Sputnik, Muza/Bethoven), które to niesłusznie przegrało w Bydgoszczy (Geloween Party) z Noxyzema, która chodziłą tylko na faście (Miklesz / Damage).
Jezu, czy ktoś jeszcze pamięta te czasy i te klimaty?
Sorry z offtopic ale wzruszyłem się jak sobie to przypomniałem i musiałem się podzielić

larek 2008-11-27 20:27:04

Cobra, o wstydzie nie może być mowy. Tekstówek na Atari nie ma zbyt wiele. Przynajmniej w naszym ojczystym języku. Tu faktycznie liczy się pomysł, a nie błyskający ekran. Zrób, co masz zrobić i pokaż to światu! Ja tam z niecierpliwością czekam na wszystkie prace konkursowe. Sam też piszę. Cudów nie będzie. Ale przecież to tylko zabawa!

Kaz 2008-11-27 20:40:56

xeen - a czemu "nieslusznie" przegralo?

Cobra - do slow larka dodam, ze zawsze mozna sprobowac polaczyc sily z kims innym albo po prostu pytac, pytac, pytac... Tu jest wiele osob chetnych do pomocy, chocby larek. Najwazniejsze, zeby przetrzec sobie szlak, potem (kolejne produkcje) ida prosciej :D

Cobra/Samar 2008-11-27 21:03:57

Kaz dzięki.wiem,że mogę liczyć na pomoc. Oczywiście się nie poddam:) w końcu to zabawa, a to lubię. Pozdrawiam

nosty 2008-11-27 21:24:54

@Cobra - dodam, ze ja tez probuje napisac tekstowke w Action! (a nigdy wczesniej tego jezyka nie tykalem ;), ktos tez deklarowal tekstowke, wiec moze byc ciekawie porownac kilka podobnych prac.

Cobra/Samar 2008-11-27 21:51:54

Nosty: może być ciekawie. w końcu nie tylko zręcznościówki rządzą:)

xeen 2008-11-28 08:10:14

Kaz, niesłusznie bo reguły compo (wymagania co do sprzętu) były jasno sprecyzowane. WitPremium chodzi na gołej a1200, noxyzema potrzebuje fast. Chociaż Miklesz chciał wystawić to bez udziału w konkursie.
Ale oba dema warto zobaczyć. Scena (jako całość) była wtedy naprawdę udergroundowa i naprawdę produktywna. To były piękne czasy, które zamknął internet (ale zamykając jedną epokę, otwieramy drugą).
Znowu sie rozmarzyłem, a to forum o Atari, a nie historia także sorry:)

Cobra/Samar 2008-11-28 10:56:32

Panowie przypomnijecie mi zmianę koloru tła w Basic'u? Chyba też z POKE. Znam tylko na C64.

xeen 2008-11-28 11:07:56

być moze jestem lamerem ale czy nie chodzi o setcolor(x,x,x)?

larek 2008-11-28 11:37:12

Cobra, jeśli to jest tryb tektstowy (GR.0) to kolory zmieniemy tak:

POKE 709,x - kolor znaków
POKE 710,x - kolor tła
POKE 712,x - kolor ramki

gdzie x=0 do 255

nosty 2008-11-28 11:40:18

Troche nie na temat, ale jesli ktos szuka podpowiedzi co do Action! to na stronie http://www.spaceweb.us/ jest ich newsletter gdzie od stycznia 1995 mozna znalezc w kolejnych odcinkach "Larry's ACTION! TUTORIAL".
Ten jezyk mnie coraz bardziej przeraza... Assembler przy nim to samo dobro ;)

larek 2008-11-28 11:40:21

Dodam jeszcze, że kolory znaków i tła są ze sobą powiązane i nie mogą być dowolne, tzn. tło i znaki mają jeden kolor ale mogą mieć różne stopnie jasności.
Oczywiście można to robić przez SETCOLOR, ale więcej z tym problemów. POKE jest krótsze.

Cobra/Samar 2008-11-28 11:57:46

Dzięki Larek!

Kaz 2008-11-28 13:19:12

Cobra - i koniecznie nie wpadaj w nerw, gdy kolory nie beda takie jak chcesz... :) Jak larek wspomnial, kolor znakow i tla jest ze soba powiazany, wiec zmiana jednego parametru moze wplywac na drugi. Na pierwszy rzut oka sensu w tym nie widac... ale on tam jest :)

Cobra/Samar 2008-11-28 15:08:35

Kaz spoko.Nie dam się:)

Caco 2008-11-28 16:14:50

Przy pisaniu mojej superprodukcji na konkurs :) napotkałem na mały problem. Czy da się za pomocą programu G2f zapisać obraz w formacie atarowskim gr8 ? Pytanie może głupie - nie bawiłem się za dużo g2f.

Też z niecierpliwością czekam na wszystkie pozycje konkursowe. Z tego co widzę to może się tego zebrać troszkę.

Kaz 2008-11-28 16:36:22

Tak, da sie. Ustaw sobie szerokosc obrazu (32,40,48) i 1x1 wczytaj gif czy cokolwiek z peceta, co chcesz miec w GR8, zapisz jako MIC.

Alternatywnie, gdybys mial problemy - podeslij mi rysunek, a ja swoim programem na Atari ST przerobie go na GR8.

Caco 2008-11-28 16:40:29

Wielkie dzieki KAZ!

Mam jeszcze pytanko. Jestem ciekaw ile osób zdeklarowało się, ze coś stworzy na konkurs? Przybliżyłoby nam to iloś produkcji :)

nosty 2008-11-28 17:28:36

Niczego by nam to nie przyblizylo, bo deklaracjami to jest urzad skarbowy wybrukowany ;P

Kaz 2008-11-28 17:34:55

Acha - jeszcze dodam, ze w G2F musisz wylaczyc te wiersze, ktorych nie chcesz miec w obrazku MIC, bo inaczej G2F zapisze Ci wszystkie. Jezeli na przyklad chcesz miec standardowy obrazek Atari o wysokosci 192 pikseli czyli 24 wiersze, to tylko tyle musi zostac wlaczonych. Reszte wylaczyc - i to niewazne czy od gory czy od dolu.

Cobra/Samar 2008-11-28 18:57:10

gdzie znajdę coś więcej na temat GR0, kolorów (żeby nie wybierać w ciemno kolorów) i zastosowania POKE na atari? Larek sporo podał przykładów, ale pewnie jest jakaś pozycja dostępna w internecie na ten temat (artykuł, magazyn,książka itp).
Z góry wielkie dzięki!

Kaz 2008-11-28 19:15:48

W bibliotece to powinno byc przydatne:
http://atarionline.pl/biblioteka/Atari%20Basic%20(v2).7z

sikor 2008-11-28 21:13:59

@Caco: nie znam G2F, ale jest jeden, bardzo prosty sposób na przenoszenie grafy z PC i innych platform: format *.BMP (głównie monochromatyczny). Po prostu pomijasz pierwsze 64 bajty (o ile dobrze pamiętam) z rysunku i resztę wczytujesz ciurkiem. W TBXL możesz to zrobić tak:
100 open #1,4,0,"D:mojagf.bmp":for i=0 to 63:get#1,i:next i
101 bget #1,$7000,7680:close
Założyłęm, że grafika zajmuje 320x192 punkty i jest jednokolorowa. W ten sposób masz wczytany obrazek z grzyba pod adres $7000 na Atari. Aha, możliwe, że jest potrzebne jeszcze odwrócenie kolorów - w tej chwili nie pamiętam dokładnie, a z pamięci piszę.

mono 2008-11-28 22:41:28

@sikor: Zdaje się, że treść w .bmp jest zapisywana od dołu do góry i z lewej do prawej bajt po bajcie. Szerokość obrazu dopełniana jest do pełnych 32-bit (wielokrotność 4 bajtów). Tak więc po załadowaniu bitmapki trzeba będzie jeszcze odbić obraz w pionie.
To czy trzeba zanegować obraz zależy od tego jak jest zbudowana mapa kolorów - czy pierwszy jest kolor czarny (#000000) czy biały (#ffffff). Pierwszy kolor jest traktowany chyba przez programy, jako kolor tła, bo w bitmapie chyba nie można zapisać indeksu keykoloru...?

sikor 2008-11-28 23:36:13

@mono: możliwe, dawno temu to stosowałem. Ale odwrócenie obrazka to nie problem, właśnie dlatego, że zapis jest bajt po bajcie - więc jeśli nawet, to prosta instrukcja for:
110 for j=7680 to 0 step -1: move $7000+j,$9000+7680-j,1:next j
Tu: przeniesienie obrazka spod adresu $7000 do adresu $9000 bajt po bajcie - mam nadzieję, że nie sknociłem pętelki, z pamięci piszę. Ale zasada jest prosta: ostatni bajt zapisujemy jako pierwszy, przedostatni jako drugi i tak cały obrazek...

Caco 2008-11-29 09:58:37

Dzięki za podpowiedzi.

mono 2008-11-29 10:52:47

@sikor: Nie, nie, nie :) Zrobisz tak częściowe odbicie względem środka ekranu (na poziomie bajtów a nie pikseli). Trzeba by raczej coś w tym stylu (Atari Basic):
110 let w=40; for y=0 to 192/2: for x=0 to w: let y2=191-y: s=$7000+w*y+x: d=$7000+w*y2+x: let b=peek(s): poke s,peek(d): poke d,s: next x: next y
gdzie w to szerokość ekranu, y i y2 to indeks linii, x to indeks bajtu w wierszu, d i s to adresy bajtów w pamięci bitmapy, które są zamieniane.
Pewnie w TBXL da się to movami ładniej zapisać - chodzi o to, że cała linia ma być przeniesiona tak, jak jest - bez odbicia, a więc trzeba by zlikwidować pętlę x i zrobić mova całej linii (w bajtów) z 1. s -> buf, 2. d -> s i 3. buf -> d.

mono 2008-11-29 11:01:51

Albo bez pośrednictwa bufora:
Jeśli podczas mova da się zaaplikować funkcję d := d XOR s (rozkaz EOR w asm 6502) to wystarczy wtedy zrobić 1. xormove s,d; 2. xormove d,s; 3. xormove s,d.

sikor 2008-11-29 14:08:48

@Mono: możliwe, jak pisałem - dawno tego używałem, choć procki pewnie gdzieś po dyskietkach się walają. Jak cała linia - jeszcze lepeij - bo przenoszę po 40 bajtów i zapisuję w odwrotnej kolejności. Da się zrobić ;)

sikor 2008-11-29 15:05:25

Hejka!!!
Poszła paczka do Kaza z procedurką (mini-programikiem). Mam nadzieję, że komuś się przyda i KAaz szybko umieści - nie miałem czasu na coś poważniejszego, ale jak będzie zainteresowanie - zrobi się lepszą wersję po konkursie w wolnej chwili.
@Kaz: sprawdź maila proszę i umieść gdzie tam możesz - powinna do ciebie dojść dyskietka (ATR).

Caco 2008-11-29 15:10:16

Ja skorzystałem z podpowiedzi Kaza - odnośnie G2f i z procedurki larka: http://atarionline.pl/v01/index.php?subaction=showfull&id=1225967235
&archive=&start_from=&ucat=1&ct=nowinki

Wszystko działa bez problemu.

Dzięki wszystkim za podpowiedzi :)

Caco 2008-11-29 15:12:09

Ups chyba nie ten link. Nieważne - nowinka z 06.11.2008.

Vasco/Tristesse 2008-11-29 23:25:10

De Themo 2 - skąd masz taką wersję? Kilku części nie ma!

Vasco/Tristesse 2008-11-29 23:26:09

Masz piracką wersję! Waldi Ci sprzedał?

Kaz 2008-11-29 23:33:10

Vasco - a bo ja wiem skad? Wiesz, ze to kreci sie po necie bezosobowo... mialem po prostu na dysku :). Jak masz pelna wersje to podeslij prosze.

axe/ssg 2008-12-01 22:32:53

jezusie, podawac de themo 2 jako wzor do pisania prac konkursowych w basicu? potencjalni "koderzy", nie idzcie ta droga! :)
a wlasnie, ma ktos wersje after party? taka ze wszystkimi czesciami i poprawiona koncowka, z niebieskim bluskrinem oraz piskiem po zawieszeniu?