Konkurs "Napisze se" by Kaz 2008-11-06 11:27:15

Po zakulisowych konsultacjach z potencjalnymi uczestnikami konkursu ustalono, co następuje:



1. Zadaniem konkursowym jest napisanie gry w dowolnym języku wyższego poziomu (Basic, Logo, BrainFuck, Pascal, itp.), bez wykorzystania procedur w assemblerze. Można kompilować, jeżeli dany język ma kompilator, ale trzeba też wtedy podesłać listing źródłowy.

2. Można się wzorować na dowolnej istniejącej grze, czy to flashowej z internetu czy to z innej platformy 8-bit. Można korzystać z fragmentów cudzego programu, można konwertować. W takim wypadku należy jednak podać, z jakich źródeł się korzystało, żeby można było ocenić stopień oryginalności. Można podzielić się w komentarzach linkami do ciekawych gier, w ramach podpowiadania pomysłów.

3. Nadsyłać prace do północy 27 grudnia (jest więc ponad 7 tygodni czasu, będzie też reminder czyli przypominacz przed końcem terminu). Wszystkie zgłoszone gry są freeware i zostaną opublikowane następnego dnia po przysłaniu. Autorzy prac zostaną podani, mogą też normalnie wpisać się do programu. Od tego czasu będzie trwać głosowanie, aż do 31 grudnia 2008 roku.

4.Każdy głosujący przyzna punkty za pracę w skali od 1 (najniższa ocena) do 10 (najwyższa). Punkty zostaną zsumowane i podzielone przez liczbę osób, które na daną grę oddały głosy, a wynik zaokrąglony do dwóch pozycji po przecinku.

5. Autorzy na swoje prace nie głosują.

6. Autor (autorzy) gry, która zdobyła najlepszy wynik, zostanie obdarowany przez xxl-a autorskim egzemplarzem gry "Hobgoblin". Autorzy drugiej i trzeciej gry dostaną ode mnie po cartridgu z klasyczną grą na Atari.

7. Wszelkie watpliwosci rozstrzyga xxl jako pomyslodawca konkursu.

Czas start!
Kaz 2008-11-06 11:39:46

Zmienilem dwa punkty regulaminu po konsultacjach (nie ze wszystkimi zainteresowany, przepraszam, ale nie dalbym rady):

1) zero assemblera, nie bedziemy kopiowac konkursu ABBUC, tylko chodzi o danie szansy mniej zaawansowanym. Za to mozna sobie wybrac dowolny jezyk, bo niby dlaczego tylko Basic?

2) Wszystkie nadchodzace programy beda prezentowane po ich przyjsciu - tak jak na konkursie MiniGame Compo. To nagroda dla tych co przyslą wczesniej - wiecej osob bedzie moglo sie zapoznac z ich praca i na nia glosowac.

Dodany ostatni punkt w celu rozstrzygania problemow "granicznych".

dradrskro 2008-11-06 13:27:57

Nie wydaje mi się, żeby BrainFuck był językiem wyższego poziomu niż assembler.

Lt_Bri 2008-11-06 13:35:44

A tekstówkę w basiku będzie można zgłosić, czy to będzie kompromitacja? ;)
Bo kusi mnie żeby napisać coś w klimat kontynuacji Kabzy :P

Kaz 2008-11-06 13:53:17

Lt_Bri - smialo.

MDW 2008-11-06 14:10:44

Czyli rozumiem, ze nie ma ograniczenia do trybu GRAPHICS 0. Hmmm... co tu wymyslic. Kurcze, ja juz zupelnie nie pamietam AtariBasic...

Cobra/Samar 2008-11-06 14:54:36

Ja tez sprobuje tekstowke.tak jak wcześniej pisałam:)

larek 2008-11-06 15:32:24

Dla pewności: rozumiem, że playera (jest w maszynowym) do odrywania muzyczek CMC nie można stosować?

larek 2008-11-06 15:33:25

"odgrywania" oczywiście :D

Monsoft 2008-11-06 16:29:31

No pozostaja instrukcje SOUND ;-)

Kaz 2008-11-06 17:38:45

Larek - nie, wstawek nie dajemy.

Przy okazji - jestes jedna z osob, ktore "na codzien" bawia sie Turbo Basicem. A dostalem zapytania o to, w czym najlepiej edytowac program w Basicu... moze rzucic kilka zdan na ten temat. Wiesz, takie techniczne poczatki...

larek 2008-11-06 20:51:10

Ok - tak też myślałem, ale wolałem się upewnić.

Co do edycji programu w Basicu - jakoś chyba nie odkryję Ameryki, jak powiem, że w edytorze Basica :) Edytor Atari Basic jest na tyle user friendly, że wykrywa błędy składniowe zaraz po wprowadzeniu linii, no i możemy używać skrótów. Nie to, co edytor C= ;)
Oczywiście najlepiej bawić się z edytorem Turbo Basica XL (można w nim pisać również program w Atari Basic, trzeba tylko pamiętać o tym, aby nie używać nazw instrukcji TBXL, których nie ma w AB lub poprzedzić je LET=...). Ma więcej możliwości czysto edycyjnych, np. renumerowanie, usuwanie linii. Osobiście nie wyobrażam sobie pisania programu w Basicu w innym edytorze, np. QA, Action!, Panther czy notatniku windy.

Gustav 2008-11-06 21:09:39

w kwestii formalnej - pytanie nowicjusza do pkt 3 regulaminu - na jaki adres można przesłać dzieło?

pozdrawiam wszystkich
Gus

sikor 2008-11-06 21:20:17

O.K. Muzy nie dajemy. A fonty i grafa w pamięci? Tak w kwestii formalnej pytam, bo jeszcze nad tym nie myślałem...

Kaz 2008-11-06 21:33:43

Ja do informacji Larka dodam, ze troche o kompilatorach Basica przeczytacie tutaj: http://tiny.pl/sl77
Sa tam tez linki do poszczegolnych Basicow. Jeszcze jakby bylo malo to pamietajcie o katalogu uzytkow - tam mozna znalezc sporo przydatnych programow narzedziowych.

A ja sie biore za swoja gre - tez tekstowka, wiec nie bede oryginalny :).

Kaz 2008-11-06 22:38:54

Gustav - na moj adres: najezdzasz kursorem na moj nick i pojawi Ci sie adres email.

Adam Mowny 2008-11-06 22:43:25

Przy okazji odświeżania bejzika, lekcja historii: http://addressof.com/blog/archive/2003/11/27/VBTimeline.aspx

Allas 2008-11-06 22:44:28

No machine language?.... that means no DLIs ?

Yosh 2008-11-06 22:46:05

Ja spróbuje w Action! Będzie to moje pierwsze podejście do Action. Wygląda obiecująco.

zaczynam czytać (elektroniczne archiwum wymiata - acz Tylko o Atari 2 mam 'papierowe'):
http://tajemnice.atari8.info/bajtek/index.html

na sieci jest dość sporo...

larek 2008-11-06 23:09:38

@Sikor, fonty i dane grafiki to nie asembler, więc nie koliduje z zasadami. Przynajmniej według mnie :)

Qrcze, nie mam pomysłu na grę... eee... tzn. mam za dużo pomysłów i nie wiem, co wybrać :) Chciałem zrobić coś prostego, co nie zajmie mi dużo czasu... Coś z pewnością wymyślę. Tak dla relaksu :)

Kaz 2008-11-07 01:07:22

Allas - no machine language! Basic or other languages only, game can be compiled either, but in this case you have to deliver source - listing in Basic or whatever language you used to.

Yosh - przejrzyj Biblioteke Atarowca - moze znajdziesz tez inne ciekawe materialy.

PS. Wlasnie musze napisac procedure odczytu golej grafiki GR8. Ma ktos jakiegos gotowca czy musze podejrzec w innych programach? Moze uda sie po tym konkursie zebrac jakies standardowe procedurki, np. wlasnie wstawienia obrazka do gry, etc. Bedzie latwiej startowac w konkursie na Grzybsoniade... :).

larek 2008-11-07 01:22:01

Kaz, nie wiem o jaką procedurę Ci chodzi, ale np. w TBXL może to być coś takiego:

10 GR.24 : REM włączenie trybu 8 bez okna
20 EK=DPEEK(DPEEK(560)+4) :REM początek pamięci ekranu
----------tu procedura odczytu grafiki z dysku---------
30 O.#1,4,0,"D:GRAFIKA.GR8" :REM otwarcie pliku na dysku
40 BGET#1,EK,7680 :REM wczytanie grafiki z dysku
50 CL.#1 REM zamknięcie kanału
--------------------------------------------
-----------------
60 GET KL :REM podziwiamy obrazek

Na dyskietce musi być oczywiście zapisany obrazek w formacie GR8, czyli o długości 7680 bajtów. Taki plik generuje np. Design-Master lub Trzmiel. Nazwa pliku to oczywiście tylko przykład.

PS. poleciałem z pamięci, ale powinno działać :)

zilq 2008-11-07 01:33:58

hehe... jestem zauroczony konkursem, może się przyłącze i przypomnę sobie "dobre czasy" :]
Lektury pod dostatkiem - Wasze archiwum wymiata pod tym względem - więc nie stoi nic na przeszkodzie (oprócz czasu :/ )
KAZ - "bibilioteki" procedur (gotowców, jak kto woli) to dobry pomysł. Myślę, że każdemu się to przyda, a i przypomnieć nie zaszkodzi (np. takim jak ja)
PS. Modyfikacje DL z poziomu języka, wchodzą w rachubę?

Kaz 2008-11-07 01:42:11

zilq - ja sie nie znam, moze niech xxl sie wypowie i zdecyduje. Mnie sie zdaje, ze male POKE nie zaszkodzi :)

Larek - dzieki - dokladnie o to mi chodzilo. Jeden przyklad daje wiecej niz sto opisow komend.

Allas 2008-11-07 03:57:58

Is valid to use DLIs on Turbobasic?, because those are little machine language routines.

Monsoft 2008-11-07 04:31:52

As was mentioned above any kind of assembler procedure are forbidden, but @zilq asked about this same and @kaz was confused. We waiting for answer from @xxl. So be patience ;)

xxl 2008-11-07 08:01:12

nie potrzeba asemblera zeby ustawic wlasna niestandardowa DListe, wiec w czym problem.

Kaz 2008-11-07 09:41:47

Allas - xxl said that we didn't need machine language routines to change Display List.

xxl 2008-11-07 09:53:00

a odnosnie DLI, to owszem mozna ale chyba tylko w action!, basic sie nie wyrobi.

Kaz 2008-11-07 10:22:17

xxl - oto lista pytan z Atari Age, jak zdecydujesz to im tam odpisze, tutaj odpowiedz tez sie przyda:

1. Czy to jest tylko dla poczatkujacych? (nie tylko, juz im to odpowiedzialem)
2. Czy mozna dostarczyc wlasny program, ktory zostal napisany i opublikowany 20 lat temu?
3. Czy PEEK i POKE moga byc uzyte?
4. Czy w gre wchodza programy uzytkowe?
5. Czy POKE-owanie w adresach, jesli zmieniasz wewnetrzne procedury, jest uzyciem jezyka maszynowego?
6. Czy uzycie DLI jest uzyciem jezyka maszynowego (Action ma DLI bez uzycia maszynowego)?
7. W CC65 sa pliki, ktore uzywaja procedur w maszynowym, ale w glownym programie wygladaja jak makra - kto i jak bedzie decydowal czy juz zostal uzyty jezyk maszynowy?
8. Czy mozna uzywac zewnetrznych plikow?
9. Czy jest ograniczenie do 64KB?

PS. Po wczorajszej analizie przykladowych programow w Atari Basicu (dwie godzinki przed snem) w nocy mialem koszmar - snilo mi sie, ze napisalem dlugi program w Basicu i nie moge go nagrac na magnetofonie :DDDDD

Kaz 2008-11-07 10:27:49

I jeszcze jedno pytanie z AA: czy port Sword of Fargoal Epyxu wchodzi w gre? Jest napisany w Basicu, kod zrodlowy jest w podreczniku do gry.

Ja mysle, ze powinno sie dopuscic, w koncu chodzi o to, zeby bylo tez jak nawiecej programow, a przeciez glosujacy sami moga ocenic czy im taka rzecz sie podoba czy nie. Bedziemy znali stopien oryginalnosci programu, a portowanie, jak sam xxl doskonale wiesz, wcale nie wyklucza wlasnej inwencji :).

Kaz 2008-11-07 11:38:12

Jeszcze taka mala pomoc dla zupelnie zielonych. Na serwer wrzucilem dyskietke z Turbo Basiciem - sam sie uruchamia, wiec jest wygodniej. Plik tutaj: http://atarionline.pl/pliki/konkurs_napiszese.zip

Do tego przyda sie AtrUtil, zeby dogrywac na dyskietke kolejne plki (np. przygotowana osobno grafike, etc):
http://tiny.pl/snbv

W FAQ jest o tym, jak zrobic sobie samouruchamianie programow w Basicu: http://tiny.pl/snb2
Jest tam tez link do czystego dysku, przygotowanego, jak sie tam nagra PROGRAM.BAS, to gra bedzie potem sama startowac z dyskietki: http://tiny.pl/snbk

Jak sa inne podstawowe pytania to zadawajcie, to jest miejsce, zeby podzielic sie problemami. Ja tez po kilkunastu latach nie pamietalem prawie niczego w Basicu, szczegolnie, ze duzo w nim nie pisalem.

Pamietam tez, ze jak z Larkiem i Urborgiem zaczelismy pisac Kolony2106 to na poczatku wszyscy mielismy klopoty organizacyjne - chocby taka niby prosta rzecz - jak wyluskac listing gry do postaci txt na pececie. Nie ma wiec co sie szczypac - jak macie nawet infantylne pytania - zadawac.

Kaz 2008-11-07 11:41:48

A w dziale bibliotecznym jest mala ksiazeczka o Turbo Basicu. Nic wielkiego, ale moze sie przydac:
http://atarionline.pl/biblioteka/Turbo%20Basic%20Interpreter.7z
Ja znalazlem tam pare przydatnych informacji.

xxl 2008-11-07 11:42:52

1. nie, gdzie jest granica miedzy poczatkujacym a zaawansowanym?
2. nie,
3. tak,
4. nie, to ma byc gra.
5. to zalezy co masz na mysli. jest jakas procka, a ty pokami zmienisz ja w inna procke to sam sobie odpowiedz czy to nie jest uzycie jezyka maszynowego.
6. chyba tylko w action! mozna uzyc dli bez uzywania ML, ale wszystko bedzie jasne jak sie zerknie w zrodla.
7. bibl.standardowa jest ok. druga czesc pytania: zajrze w zrodla i ocenie czy jest uzyty ML czy nie. w przypadku cc65 bardzo latwo przekroczyc cienka czerwona linie,
8. zestawow znakow itp? owszem,
9. nie.
odnosnie sword of fargoal: kod zrodlowy calej gry jest opublikowany? no to nie. mozna przepisac jakies procedurki publikowane, ktore robia cos konkretnego np. pisanie tekstu po gr.8 (ale bez ML) itp.

Kaz 2008-11-07 11:51:24

Odnosnie Sword - nie ma tej gry na Atari, a to jest jedna ze 150 gier wszechczasow (http://www.cdaccess.com/html/pc/150best.htm), wiec warto zeby byla tez i u nas. Przepisanie jej z Commodore PET Basica to tez wymaga troche pracy. A poza tym - bedzie przeciez napisane przy kazdej grze, co jest nieoryginalnego, wiec publicznosc sama bedzie mogla ocenic wklad. No i dozwolismy na konwersje w regulaminie.

xxl 2008-11-07 13:13:30

niech probuje, nie tylko ja bede ocenial...

Stary Atarowiec 2008-11-07 19:23:55

Jeśli wczytujesz grafikę, to najlepiej jest ją wczytać metodą podobną do tej podanej przez Larka, ale nie pod zdefiniowany adres, tylko do zmiennej tekstowej.

1) Definiujesz zmienną tekstową o odpowiedniej długości. 2) Zamiast adresu lub zmiennej z adresem ekranu podajesz adres początku zmiennej tekstowej (to bodaj funkcja addr, ale teraz nie jestem na 100% pewny).

Zalety:
- nie jesteś związany sztywnym adresem, nie przejmujesz się, gdzie to wrzucić, system załatwia to za ciebie,
- powinno działać po kompilacji, bo system dostowowuje się do zmian w wolnej pamięci,
- nie interesujesz się, ile zajmuje dos i gdzie są wolne miejsca w pamięci bo: jak wyżej,
- masz dane dostępne na żądanie,
- zamiast wrzucać do pamięci ekranowej po zmianie trybu graficznego (pamiętaj o użyciu +32, żeby nie kasowało ramu) ustawiasz adres początku ekranu na początek zmiennej (addr).

Przy wczytywaniu .MIC wystarczy pamiętać że na początku są 4 bajty z kolorami, wystarczy zwiększyć zmienną o te 4 bajty, adres dla początku ekranu zwiększyć o 4, no i te kolory przekopiować do rejestrów lub ustawić ręcznie.

Możesz zobaczyć taka procedur w Tajemnicach Atari, bo procedurę odczytu (i zapisu, bo używałem tego w swoich programikach do obróbki grafiki) zerżnąłem z jakiegoś programu w TBXL w TA. To był jeden z pierwszych numerów, program chyba robił coś z plikami Blazing Paddles, autorem
był na pewno Carampuc.

Jeśli coś pokręciłem ze względu na upływ czasu (ponad 10 lat
w końcu…) to niewiele, ogólna idea powinna być poprawna.

larek 2008-11-07 21:11:22

@Stary Atarowiec: "[...] ustawiasz adres początku ekranu nu początek zmiennej (addr)."

Nie bardzo. Sam napisałeś, że nie martwisz się, gdzie system trzyma te dane w pamięci. No i system trzyma, gdzie mu wygodniej. Jak teraz ustawisz pamięć ekranu na początek tej zmiennej i będziesz miał pecha, że dane będą leżeć na granicy pewnych obszarów w pamięci, to masz na ekranie "krzaki". Pamięć ekranu nie może zajmować dowolnego obszaru, a co za tym idzie, nie może zaczynać się w dowolnym (nieznanym) miejscu.

Sposób na przechowywanie danych w zmiennej sam w sobie jest dobry, ale nie można ustawiać na niego pamięć obrazu. Co innego przerzucenie tych danych ze zmiennej do "prawidłowego" obszaru pamięci obrazu np. poprzez MOVE skąd,gdzie,ile (w TBXL oczywiście).

I jeszcze jedno, ta funkcja to ADR.

Stary Atarowiec 2008-11-08 00:17:43

A być może, że właśnie przerzucałem przez MOVE. Bo ja to pamiętam… :/

andygroo 2008-11-08 08:06:19

ciekawe;) nie znam tego jezyka wcale, ale.........
no wlasnie..larek wychodzi na to, ze atari basic turbo psuje ciagi tekstowe? bo leza na granicach pamieci? to juz chyba blad raczej. Mialbym zrobic dlugiego scrola (np tekst na parenascie kb a co) i by robilo w nim krzaczki????? larek twoje dzialanie pachnie asemblerem;p

larek 2008-11-08 09:22:16

TBXL nic nie psuje. Atari Basic zresztą też, a zachowuje się identycznie. To żaden błąd. To właściwość ANTICA i jego DL! Licznik pamięci obrazu układu ANTIC jest licznikiem 12-bitowym z 4-bitowym rejestrem kluczującym - cytuję z książki DeRe Atari :) - dlatego też zbiór danych ekranowych nie może znajdować się po dwóch stronach granicy przedziału 4K. Jeśli zachodzi taka konieczność, należy powtórnie użyć instrukcji LMS (w DL) w celu wpisania do licznika pamięci ekranowej adresu z nowego przedziału, co na poziomie programowania w Basicu jest raczej niemożliwe.
Scrol na parenaście kb, to nie to samo, co pamięć ekranu.
Pachnie asemblerem? Działanie? Ale o co chodzi? Funkcja ADR i instrukcja MOVE, to Basic w czystej postaci!

andygroo 2008-11-08 10:33:06

larek zle mnie rozumiesz lub sam sie zapedzasz....przechowuje cos w stringach i wrzucam to na ekran w kryteriach jakich dany komp [rzyjmuje....jak to moze byc zniszczone???????

larek 2008-11-08 11:41:18

Przechowujesz w stringach i PRZERZUCASZ (!) w odpowiedni obszar pamięci - no to OK!
Zwróć uwagę na to, że Atarowiec pisał o przechowywaniu danych w stringach i USTAWIANIU pamięć ekranu na początek takiego stringa. Jeśli string leży w pamięci na granicy 4KB, to będzie problem, bo Antic błędnie to wyświetli. Chyba, że odpowiednio zmodyfikujesz DL, co programując w Basicu nie jest takie proste. Poza tym odpada tu argument "bezstresowego" przechowywania danych w pamięci. W takim przypadku (żeby umiejętnie zmienić DL) trzeba precyzyjnie znać położenie danych w pamięci. Skoro musimy znać miejesce, gdzie leżą dane, to wracamy do punktu wyjścia: po co nam do tego zmienne tekstowe? Wygodniej od razu przewidzieć na te dane miejsce w pamięci i nie bawić się w modyfikowanie "w locie" DL.

larek 2008-11-08 12:22:16

Tu masz przyklad na poprawne wyświetlanie obrazu - dane grafiki kopiujemy ze zmiennej do obszaru pamięci ekranu: http://tiny.pl/skjb
A tu przykład błędnego wyświetlania grafiki - pamięć obrazu ustawiamy na początek zmiennej, w której przechowywane są dane grafiki: http://tiny.pl/skph

Stary Atarowiec 2008-11-08 13:52:00

Im dłużej myślę, tym bardziej jestem pewien, że faktycznie używałem MOVE do przerzucania danych ze zmiennej do pamięci ekranu. Po latkach pamiętałem jedynie, że fonty można bodaj umieszczać co 4 KB, to chyba to samo zjawisko. Tłumaczono mi działanie licznika Antica, ale to za skomplikowane było dla mnie.

Kaz 2008-11-08 16:37:13

Ja poprosilem Larka o porade prywatnie, ale mysle, ze odpowiedz przyda sie kazdemu, wiec cytuje:
"Gdybyś chciał w przyszłości zmienić numerację linii (co wg mnie będzie wcześniej lub później konieczne), to użyj polecenia RENUM x,y,z.
X - to numer pierwszej linii, od której nastąpi renumeracja (leci do końca programu).
Y - to nowy numer linii X
Z - krok, z jakim kolejne linie będą numerowane.

Przykład.
LIST /PRZED:
13 ?"PROGRAM"
18 X=X+1: GOTO 99
40 Y=X+2
99 ?"KONIEC"

RENUMERACJA:
RENUM 18,100,10

LIST /PO:
13 ?"PROGRAM"
100 X=X+1: GOTO 120
110 Y+X+2
120 ?"KONIEC"

Renumeracja zachowuje wszystkie jawne odwołania do linii. Nie będzie problemu np. z GOTO xxx, czy RESTORE xxx. Niestety niejawne odwołania, np.: GOTO xxx+wartość_zmiennej lub RESTORE xxx*wartość_zmiennej - najprawdopodobniej będą wskazywać niepoprawne adresy po renumeracji."

Przypominam, ze chodzi o Turbo Basic.

Kaz 2008-11-09 23:19:17

Jeszcze pare porad od Larka:

POKE 559,0 wyłącza ekran (przyspieszenie obliczen)
POKE 559,34 włącza ekran

Tak na wszelki wypadek coś, co może się przydać przy pisaniu po ekranie ;-):

POKE 752,2 wyłącza znacznik kursora
POKE 752,0 włącza kursor

POKE 731,0 - włącza klik klawiatury
POKE 731,1 (a w zasadzie każda wartość większa od 0) - wyłącza

Scalak 2008-11-11 17:11:13

jak zastopować wykonywanie programu (TB) pod emulatorem - pętla nieskończona... ?
dziękuję za ewentualne odpowiedzi.

Scalak 2008-11-11 17:19:40

PAUSE ....

larek 2008-11-11 19:08:14

PAUSE czas - czas=50=1sekunda.
GET X - oczekiwanie na wciśnięcie klawisza. W "X" odkładany jest kod ATASCII naciśniętego klawisza. Można to później wykorzystać.
WHILE STRIG(0):WEND - oczekiwanie na wciśnięcie Fire w joysticku.

Kaz 2008-11-11 21:11:06

Jeszcze STOP...

Scalak 2008-11-11 22:42:32

dziękuję za cenne odpowiedzi!
Jak zawsze źle skonstruowałem myśl :(
chodziło o klawisz POUSE który to mi zatrzymał działający w koło program z bugiem postaci nieskończonej pętli.

maly_swd 2008-11-12 18:31:45

klawisz BREAK

xxl 2008-11-12 23:56:29

http://atari.pl/zen.xex - to mialo byc na konkurs ale niestety moja znajomosc tb okazala sie za slaba. proponuje poszukac wsrod flashowych gierek - jest cala masa logicznych i puzzli, mozna przepierac w pomyslach...

Scalak 2008-11-13 11:40:04

mam jeszcze jeden problem... jak wczytać do emulatora plik z programem (txt)? listować na printer umię, ale odwrotnie już nie :(. Utworzyć atr i załączać pliki też potrafię.

Scalak 2008-11-13 11:56:56

xxl a czemu nie wystawiasz tego na konkurs ? za cienkie ?!?!?? Moim zdaniem extra.

Kaz 2008-11-13 12:07:35

Scalak, wyslalem Ci maila w wiadomej sprawie, potwierdz, ze dostales, bo zaraportowalo mi bledy przy wysylaniu.

Druga sprawa: jezeli masz program AtrUtil, to odczytaj swoj dysk, na ktorym pracujesz, potem uzyj opcji Insert txt (podaje z pamieci, bo nie mam teraz tego przed soba) i wskaz plik txt, ktory chcesz wrzucic na dysk. Do plikow nie-tekstowych stosuje sie Insert bin.

Loops of Zen nie spelniaja warunkow formalnych - gra jest w maszynowce :P

Scalak 2008-11-13 12:30:09

wrzucam ten plik i jak w TB daje LOAD "D:plik.txt" to wywala:
ERROR- 21 ?LOAD

Scalak 2008-11-13 12:33:25

ENTER - tym samym potwierdzam odbiór przesyłki -THX

sikor 2008-11-14 10:57:27

@KAZ, proszę sprawdź pocztę. Wiem, że Cię nie ma, ale to może być przydatne (ale mogę się mylić).

Sim_Piko 2008-11-16 18:51:29

ja odnośnie drugiego punktu regulaminu: czy można zrobić grę na podstawie minigry z gry na GBA (dokładniej z gry "Mario & Luigi: The Superstar Saga")?

sikor 2008-11-16 21:27:13

Jak punkt mówi: można ;)

Sim_Piko 2008-11-17 23:58:04

http://pl.youtube.com/watch?v=Qps3wXgEabk
jakby ktoś chciał wiedzieć na podstawie czego robię grę

właściwie to prawie skończyłem.
kiedyś przerabiałem tę grę na XP-ka (FreeBASIC), więc na ATARI to była tylko kwestia przekonwertowania kodu na TBXL.
(ok 2 dni - lol)

Scalak 2008-11-23 15:57:44

@larek - mam wielką prośbę czy możesz jeszcze raz wytłumaczyć na co są przeznaczone pierwsze 4K DL ? Dzięki i przepraszam, ale jakoś nie mogę sqmać z Twojej dyskusji o so chodzi :( .Krzaki oczywiście wpisując na jej początek mam piękne ;)

larek 2008-11-23 17:23:57

Nie bardzo rozumiem pytanie :( DL raczej nie ma 4KB...
Należy wziąć pod uwagę to, że DL to jedno, a obszar pamięci ekranu to drugie. Niestety Antic "lubi", aby obszar pamięci ekranu nie leżał po obu stronach granicy 4KB. Obrazowo to wygląda tak:
1. przykład lubianego przez Antic umieszczenia pamięci obrazu w RAM:
blok 4KB blok 4KB blok 4KB
RAM: -----------|-----------|-----------
obraz: ====

2. przykład mniej lubianego umiejscowienia pamięci obrazu w RAM:
blok 4KB blok 4KB blok 4KB
RAM: -----------|-----------|-----------
obraz: ====

Oczywiście problem powstaje w przypadku standardowego DL. Przy naszym własnym DL, które uwzględnia takie położenie pamięci ekranu powinno być wszystko Ok.
Chodzi o to, że przechowując dane pamięci obrazu w zmiennej, tak naprawdę nie mamy wpływu na to, gdzie system je umieści. Jeśli przez przypadek będą leżały, jak w przykładzie 2, to na ekranie ujrzymy obraz z kosmosu. Należy wziąć też pod uwagę, że dane obrazu zajmujące wiecej niż te 4KB zawsze będą umieszczone na dwóch obszarach granicy 4KB, czyli w trybach graficznych 8, 15 itd. zawsze powstanie ten problem! Bez modyfikacji DL nic tu nie zrobimy. W odpowiednim miejscu DL trzeba umieścić specjalne instrukcje wskazujące Antic'owi ten nowy obszar 4KB (nawet jeśli dane obrazu fizycznie zajmują jeden ciągły obszar RAM-u).

Z tego wszystkiego wynika, że do przechowywania danych obrazu (i nie tylko obrazu) basicowe zmienne znakomicie się nadają, bo nie musimy martwić się tym, gdzie system je przechowuje. Natomiast wykorzystywanie tych zmiennych jako fizycznego obszaru pamięci obrazu jest kłopotliwe - właśnie ze względu na to, że system umieszcza je w pamięci, gdzie jemu pasuje i... nie uzgadnia tego z Antic'iem ;-)

DL i pamięć obrazu to szeroki temat i w zasadzie trudno tu przytoczyć dokładne informacje. Zresztą i tak zapewne niewiele o tym wszystkim wiem. Wiele cennych wiadomości można wyczytać w książce DeRe Atari, która jest w archiwum atarionline.pl.

larek 2008-11-23 17:28:51

Niestety system zlikwidował spacje w przykładach powyżej.
Powinno to wyglądać tak:

1.
................blok 4KB.........blok 4KB........blok4KB......
RAM:.....----------------|----------------|-
---------------
obraz:............................======....
.....................

2.
................blok 4KB.........blok 4KB........blok4KB......
RAM:.....----------------|----------------|-
---------------
obraz:................========..............
...................

wstawiłem kropi zamiast spacji. Mam nadzieję, że to nie zaciemniło obrazu ;)

larek 2008-11-23 17:31:37

eee... tym razem trochę połamało.... no trudno. Szkoda, że nie ma możliwości edycji komentarza :(

Kaz 2008-11-23 18:34:50

Proponuje przeniesc ta dyskusje na forum - tam mozna edytowac posty.

A jak rozmowa znajdzie swoj szczesliwy final to zrobie z tego jakies FAQ.

Scalak 2008-11-23 19:10:08

larek jeśli masz jeszcze zdrowie w pomocy zrozumienia tego zagadnienia to zapraszam na forum gdzie zaraz opiszę skąd pojawiło się pytanie i przekopiuję Twój ostatni post.

larek 2008-11-23 23:23:59

Zdrowie mam, ale na nauczyciela to ja się nie nadaję. Bardzo często używam skrótów (myślowych), bo wydaje mi się coś bardzo jasne i logiczne, a w rzeczywistości tak nie jest ;-)

Mimo wszystko postarałem się odpowiedzieć na pytania. Oczywiście już na forum Atarum, czy jak mu tam :)