atarionline.pl Gra/gry od tbxx - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorxxl
      • CommentTime17 Feb 2010 14:02 zmieniony
       
      innym rozwiazaniem moze byc stworzenie dl dla trybu 2 basica (tekstowy) i podmiana zestawu znakow. zajmie to o wiele mniej pamieci tylko czy grafika zmiesci sie w jeden zestaw znakow? jesli nie to trzeba ja tak zdefiniowac zeby sie zmiescila :-) bo nie trzeba sie bedzie dodatkowo przejmowac dli
      • 2: CommentAuthortbxx
      • CommentTime17 Feb 2010 14:02
       
      No to pieknie... bo ja takim ekspertem jestem, że to co piszecie jest dla mnie zrozumiałe jak chiński przeplatany staro-cerkiewno-słowianskim ;)
      • 3: CommentAuthormono
      • CommentTime17 Feb 2010 14:02
       
      Tbxx - podeślij może pliczek xex. Spróbuję wieczorem coś z tego zrobić strawnego dla basica. Kaz ma mój adres mailowy.
      • 4: CommentAuthorirwin
      • CommentTime17 Feb 2010 14:02 zmieniony
       
      @xxl
      Jeśli dobrze rozumiem to tyle "wystaje" poza standardowe 192 pixle:



      Czyli pewnie się zmieści w jednym a nawet pół charsecie.

      @Kaz obrazek ZNAKOMITY! Tylko tak jak Mono pisze, może by tytuł wypełnić solid kolorem. Bo wpierw go nie zauważyłem, i myślę że niezaznajomieni z tematem też mogą przeoczyć.
      • 5:
         
        CommentAuthorKaz
      • CommentTime17 Feb 2010 14:02
       
      Ale wlasnie o to mi chodzilo - zeby tytul ginal w znaczkach i sie nie wyroznial. Sprawdze jednak, czy lepiej to wyglada z jakims wypelnieniem. Pamietac bowiem nalezy, ze gra ma swoj czytelny tytul gdzie indziej - w czolowce w GR15 (GR12?).

      Obrazek jest wymagajacy pod wzgledem liczby znakow (bardzo duzo niepowtarzajacej sie grafiki), G2F raportuje 4 zestawy:
      116
      121
      106
      87
      Nawet gdyby pooptymalizowac ich wykorzystanie to trzy zestawy i tak pojda.
      • 6:
         
        CommentAuthorKaz
      • CommentTime17 Feb 2010 16:02 zmieniony
       

      tbxx:

      No to pieknie... bo ja takim ekspertem jestem, że to co piszecie jest dla mnie zrozumiałe jak chiński przeplatany staro-cerkiewno-słowianskim ;)


      No to moze tak najpierw ogolnie:

      1. Obraz na Atari tworzy procesor Antic i w tym celu potrzebuje specjalnego programu (zwanego Display List, potocznie DL, dl, displej, dlist, etc), zeby wiedziec jak ten obraz ma wygladac.

      2. Display List opisuje jak maja wygladac poszczegolne linie/wiersze ekranu, poczynajac od gory, a konczac na dole ekranu - lacznie 240 linii. Szczegoly tutaj:

      ->link<-

      3. Po wlaczeniu Atari masz standardowy program DL - na gorze puste wiersze, potem 24 wiersze trybu GR0 (24x8=192 linie), potem znowu puste wiersze.

      4. Basicowa komenda GRAPHICS x (skrot GR.x) uruchamia nowy program Display List, zgodny z parametrem x. Przykladowo komenda GR.8 uruchamian taki DL, ze na gorze masz puste wiersze, potem 160 linie grafiki trybu $02, potem 4 wiersze trybu $0F. potem znowu puste wiersze. Z kolei uzyty przec Ciebie GR.8+16 (co jest rownoznaczne z GR.24) to taki DL, w ktorym zamiast tych czterech wierszy $0F sa dalej 32 linie trybu $02 - co lacznie daje 192 linie.

      5. Modyfikacja Display List jest konieczna, zeby osiagac na ekranie taki zestaw trybow jaki chcesz, na przyklad obrazki o wysokosci 240 pikseli albo miks trybow graficznych i trybow znakowych. Bo basicowe GR wlacza tylko standardowe, ustalone przez projektantow Atari tryby, oparte wlasnie na rozdzielczosci pionowej 192 pikseli (polecam opis w "Atari Basic" Miguta, strona 32-33).

      6. Czyli musisz napisac wlasny program dla Antica - i Mono napisal jak to zrobic i o czym pamietac. Wiele porad w tym zakresie znajdziesz na forum, duzo pisal o tym Larek, zaraz poszukam gdzie dokladnie.

      7. No wiec takie znalazlem przydatne informacje:

      o granicy 4KB, ktora wspomnial Mono:
      ->link<-

      duzo cennych porad dla poczatkujacych programistow:
      ->link<-

      adiblol walczyl tu z miksem trybow:
      ->link<-

      linki do ksiazek:
      ->link<-

      tutaj tez jakas walka z grafika:
      ->link<-
      • 7:
         
        CommentAuthorxeen
      • CommentTime17 Feb 2010 16:02
       
      no i jak chcesz mieć obrazek podkolorowany nie tylko duchami - tak jak Kaz wkleił z odcieniami, musisz jeszcze napisać sobie procedurkę obsługi przerwania (nie tylko zmodyfikować DL). mono mnie trochę naprowadził w tym wątku

      ->link<-

      sam z tym teraz walczę, się uczę i męczę:))

      ładnie i zrozumiale dla mnie też to opisał kiedyś Tebe
      ->link<-

      istotę samej DL ja zrozumiałem czytając artykuł stąd:

      ->link<-
      • 8: CommentAuthortbxx
      • CommentTime17 Feb 2010 17:02
       
      Jeszcze takie pytanie:
      Czy da się jakoś zintegrować obrazek *.xex z runtime.com (tym od TBXL tak aby podczas ładowania runtime.com i autorun.ctb obrazek był nadal widoczny?
      • 9: CommentAuthormono
      • CommentTime17 Feb 2010 18:02
       
      Można spróbować połączyć zmodyfikowany obrazek.xex, odpalić ustawienie dlisty na inicie i potem puścić dalej ładowanie tbxl. Dopiero GR.x prestawiłoby dlistę. Warunek: raczej nie używać przerwań DLI w obrazek.xex (czyli nie podkolorowywać za bardzo - co najwyżej sprajtami, ale tak żeby nie trzeba było używać DLI - czyli jedna pozycja sprajta i jeden kolor na całym ekranie). Ewentualnie bardzo niewielkie procedury odpalane na DLI.
      • 10:
         
        CommentAuthorKaz
      • CommentTime18 Feb 2010 12:02
       
      Tbxx - podeślij może pliczek xex. Spróbuję wieczorem coś z tego zrobić strawnego dla basica. Kaz ma mój adres mailowy.


      Chcialbym uruchomic mozliwosc wysylania wiadomosci miedzy forumowiczami, ale to zapewne dopiero po przenosinach.
      • 11:
         
        CommentAuthorMaW
      • CommentTime18 Feb 2010 21:02 zmieniony
       
      A ja wrócę do samej gry - Tbxx, nie wiem, co zmieniłeś, ale jest o wiele lepiej. Jedna uwaga: przy włączonym "pikselu" wyłącz inwersję znaku.

      //EDIT: i może jeszcze jedno: "kolory" zastąpiłbym podczas rysowania pustymi polami, a dopiero na koniec wypełnił właściwą "barwą".
      • 12: CommentAuthortbxx
      • CommentTime19 Feb 2010 00:02
       
      Kilka drobnych zmian.
      Ułatwiłem "warm up"
      dodałem poziom "extreme"
      znowu zmieniłem kursor
      -------------------------
      pozostało:
      -dodanie muzyki
      -załadowanie grafiki od KAZ'a
      -edycja nowych picrossów (czym się aktualnie zajmuje)
      -dodanie napisów koncowych gry
      • 13:
         
        CommentAuthorKaz
      • CommentTime19 Feb 2010 02:02
       
      Sprobowalem poziomu "extreme", ale jest dla mnie... zbyt extreme :)

      Fajny efekcik w czolowce.
      • 14: CommentAuthortbxx
      • CommentTime19 Feb 2010 11:02
       
      Może na poziomie "extreme" zwiększyć limit czasu...
      • 15:
         
        CommentAuthorMaW
      • CommentTime21 Feb 2010 20:02
       
      chyba jednak bez kolorów piątego gracza się nie obejdzie... nadal nie widać, czy pole pod kursorem jest zaznaczone, czy odznaczone; "extreme" == hardcore
      • 16: CommentAuthortbxx
      • CommentTime1 Mar 2010 11:03
       
      Chwile mnie nie było - dłubie picrossy w edytorze ;)

      Demo z muzyką i długim scrollem.
      • 17:
         
        CommentAuthorKaz
      • CommentTime1 Mar 2010 11:03
       
      U mnie boot error :(
      • 18: CommentAuthortbxx
      • CommentTime1 Mar 2010 11:03
       
      Dziwne, u mnie działa..
      A jest różnica jak plik spakuje zipem?
      • 19:
         
        CommentAuthorMaW
      • CommentTime1 Mar 2010 11:03
       
      Tbxx a podzieliłbyś się procedurami obsługi duszków ? Bo nie chce mi się koła wymyślać na nowo...
      • 20: CommentAuthortbxx
      • CommentTime1 Mar 2010 11:03 zmieniony
       
      Pisze bardzo nie elegancko i chaotycznie, więc zaraz ktoś może paść na zawał. Jestem programistycznym flejtuchem, tak że czasem sam się dziwie że coś mi działa;)

      2100 PROC DUCHY
      2110 PMB=PEEK(106)-32:PMB=PMB*256
      2120 POKE 559,46:POKE 54279,PMB/256
      2130 FOR I=0 TO 111
      2131 IF I<16 THEN POKE PMB+512+I,0:GOTO 2134
      2132 IF I>47 AND I<52 THEN POKE PMB+640+I,255
      2133 POKE PMB+512+I,240
      2134 NEXT I:MOVE PMB+640,PMB+768,111:MOVE PMB+640,PMB+896,111
      2135 POKE 53257,3:POKE 53258,3:POKE 53259,3
      2136 POKE 706,20:POKE 707,20
      2137 POKE 623,1
      2140 ENDPROC
      2150 PROC DUDU
      2155 MOVE 640+YD,640+YD+4,4:MOVE PMB+512,640+YD,4
      2160 MOVE 768+YD,768+YD+4,4:MOVE PMB+512,768+YD,4
      2170 MOVE 896+YD,896+YD+4,4:MOVE PMB+512,896+YD,4
      2180 ENDPROC
      2200 PROC DUGO
      2205 MOVE 640+YD,640+YD-4,4:MOVE PMB+512,640+YD,4
      2210 MOVE 768+YD,768+YD-4,4:MOVE PMB+512,768+YD,4
      2215 MOVE 896+YD,896+YD-4,4:MOVE PMB+512,896+YD,4
      2220 ENDPROC


      Procedurka DUCHY - generuje i aktuwuje duszki
      Procedurka DUDU - odpowiada za ruch w dół
      Procedurka DUGO - odpowiada za ruch w górę
      • 21:
         
        CommentAuthorMaW
      • CommentTime1 Mar 2010 12:03
       
      dzięki - wiesz, nie jest źle :D
      • 22:
         
        CommentAuthorxeen
      • CommentTime1 Mar 2010 19:03
       
      wciąga:)
      jak się kończy żywot, to przez ułamek sekunda w pozycji życia widać cyferkę -1. nie jest to duża rzecz, oczywiście....
      • 23:
         
        CommentAuthortdc
      • CommentTime1 Mar 2010 20:03
       
      tbxx: eee... jest całkiem dobrze.

      Mój wykładowca na programowaniu mówił, że prawdziwy programista to leń patentowany, dlatego zgodnie z tą teorią masz zadatki;)
      • 24:
         
        CommentAuthorxeen
      • CommentTime2 Mar 2010 22:03
       
      coś chyba nie działa na poziomie extreme
      załączam zrzut
      • 25: CommentAuthortbxx
      • CommentTime3 Mar 2010 08:03
       
      Xeen - możesz opisać w czym problem? Po wczytaniu twojego stanu gry, nie działa mi joystick...
      • 26:
         
        CommentAuthorxeen
      • CommentTime3 Mar 2010 09:03
       
      no generalenie zazanczam sobie co chcę, wszędzie pokazuje mi się na planszy że zaznaczyłem błędnie (x), liczba żyć nie ulega pomniejszeniu.......
      • 27: CommentAuthortbxx
      • CommentTime3 Mar 2010 09:03
       
      Wszystko ok. Tryb "extreme" jest bardzo trudny ;)

      - możemy gasić i zapalać punkty (tak że "X" zaznaczone są zarówno dobre jak i błędne pola)
      - nie ubywa nam życ, ale mamy ograniczony czas (docelowo 10min/obrazek)
      • 28:
         
        CommentAuthorxeen
      • CommentTime3 Mar 2010 09:03
       
      aa, nie załapałem
      sorry
      • 29:
         
        CommentAuthorMaW
      • CommentTime13 Mar 2010 22:03
       
      TBXX, jest jakiś kontakt do Ciebie?
      • 30:
         
        CommentAuthorKaz
      • CommentTime14 Mar 2010 09:03
       
      Mozesz wyslac mu PM przez forum.
      • 31:
         
        CommentAuthorxeen
      • CommentTime25 Mar 2010 20:03
       
      pasożytniczo podłączę się do tego wątku nieco offtopic'owo
      Popełniłem onegdaj (10 lat temu, hlip, hlip) coś podobnego co TBXX teraz;zrobiłem to w WINAPI, jest to połączenie logicznej układanki z grą w statki.
      taka gra w statki na jednego gracza. może się komuś spodoba - gra jest bardzo malutka.
      Odgrzebałem ją ostatnio na jakimś starym dysku i postanowiłem się pochwalić. njoy.
      sorki za zaśmiecanie :) ale może można zrobić taki wariant rozgrywki w grze tbxx?
      • 32: CommentAuthormac
      • CommentTime25 Mar 2010 21:03
       
      też napisałem kiedyś grę w statki pod win, jakoś około 95 roku, była nawet na płycie PC World Komputer ;-)) ale mi wspomnienie przywołałeś ;-))
      • 33:
         
        CommentAuthorKaz
      • CommentTime28 Mar 2010 14:03
       
      Pewnie nie kazdy pamieta, ze na AOL mamy specjalny katalog z grami (czesciowo auotorstwa czytelnikow), ktore sa dla peceta, ale bazuja na sentymentach do gier Atari:

      Byla kiedys o tym nowinka na glownej stronie, mozna tez bezposrednio dotrzec do tych gier, wystarczy podac sciezke "http://atarionline.pl/pliki/gry_win32/nazwapliku", a zamiast "nazwapliku" wstawic odpowiednia nazwe pliku:

      archon_evolution.7z
      asteroidy.7z
      bitwa_morska.7z
      boulder_dash.7z
      bugatron_worlds_trial.7z
      dog_daze_revolution.7z
      gnu_robbo_057win.7z
      knight_lore.7z
      lasermania.7z
      logoman edit.7z
      logoman.7z
      mdd_clone.7z
      montezumas_revenge.7z
      montezumas_revenge_remake.7z
      platypus_trial.7z
      pole_minowe.7z
      reverse.7z
      river_raid_extreme.7z
      robal.7z
      robbo_adventures.7z
      robbox_trial.7z
      thinker.7z
      wladca_01beta.7z
      zball_trial.7z
      • 34: CommentAuthorAmun-Ra
      • CommentTime28 Mar 2010 19:03
       
      W kwestii formalnej... Albo hieroglify powinny być zwrócone w stronę postaci, albo postać z drugiej strony ekranu patrząca na hieroglify. :P
      • 35: CommentAuthortbxx
      • CommentTime28 Mar 2010 22:03
       
      Przeciez postać za pomocą joysticka dopiero ustawia hieroglify w odpowiednią stronę;)
      • 36: CommentAuthortbxx
      • CommentTime15 Oct 2010 13:10
       
      Czy da się do tbxl'a zrobić wstawkę w asm nakładającą "rainbow effect" na wybrane duszki?
      • 37:
         
        CommentAuthorKaz
      • CommentTime22 Oct 2010 10:10
       
      Jakis czas temu przegladalem stare pisemka komputerowe i widzialem taka procedurke, ale w Atari Basic/asm... ale czy to byl "Atari User" czy inne pismo - nie pamietam... ech, ta poglebiajaca sie skleroza :)

      Moze przeszukanie po grach daloby odpowiedz, bo wtedy mozna by namierzyc tytul gry w czasopismie.
      • 38: CommentAuthormono
      • CommentTime22 Oct 2010 10:10
       
      Procedura jest prosta:
      dli:
      pha
      lda color
      inc color
      inc color
      sta wsync
      sta colpm0
      pla
      rti

      jeśli użyjemy dli (wtedy wypadałoby mieć tryb graficzny), lub:
      ldy #0
      loop: sty wsync
      sty colpm0
      iny
      iny
      jmp loop

      jeśli generujemy tęczę bez użycia dli.
      Pytanie brzmi:
      1. Jakiego trybu używasz?
      2. Czy to tekst czy grafika?
      3. Czy w trakcie coś chcesz robić, czy ma to być statyczna grafika?
      4. Czy tęcza jest na całej wysokości playera/missilea, czy tylko na wybranym fragmencie?
      5. Czy fragment jest mały czy stanowi np. pół ekranu?
      6. Czy wykorzystujesz jeden player do tęczy, czy więcej?
      Oczywiście zamiast colpm0 może być pm1, pm2, pm3, pf3 (dla playera 5).
      Zwiększenie jest o 2, bo najmłodszy bit koloru jest ignorowany.
      Zależnie od potrzeby procedura może korzystać z dli, lub nie, być bardziej lub mniej skomplikowana. Przykładowy kod obrazuje tylko ideę.
      • 39: CommentAuthortbxx
      • CommentTime19 May 2013 09:05
       
      Da się w TBXL zrobić taki myk żeby w trybie GRAPHICS 31 w liniach 8-16 była inna paleta kolorów niż w pozostałych?
      • 40: CommentAuthormono
      • CommentTime19 May 2013 11:05
       
      Za pomocą dli tak.
      • 41: CommentAuthortbxx
      • CommentTime19 May 2013 19:05
       
      o DLI mam bardzo blade pojęcie :/
      wystarczy kilka/kilkanaście "POKE" jak przy tworzeniu "własnego" trybu grafiki, czy to już będzie asm i X=USR(xxxx)?
      • 42: CommentAuthormono
      • CommentTime19 May 2013 20:05
       
      Asm i usr.
      • 43: CommentAuthormono
      • CommentTime20 May 2013 20:05
       
      Mniej więcej coś takiego:
      dli:
      pha
      lda vcount
      cmp #($20+(8+16)/2)/2
      bcc ?custom
      lda colpf0s
      sta colpf0
      lda colpf1s
      sta colpf1
      lda colpf2s
      sta colpf2
      pla
      rti
      ?custom:
      lda #kolor01
      sta colpf0
      lda #kolor10
      sta colpf1
      lda #kolor11
      sta colpf2
      pla
      rti

      Oczywiście trzeba włączyć dli w linii 7 i 15 dlisty, no i ustawić wektor przerwań dliv oraz włączyć je w nmien:
      lda dlptrs
      sta adr
      lda dlptrs+1
      sta adr+1
      ldy #3+3+(7-1)
      lda #$80
      ora (adr),y
      sta (adr),y
      ldy #3+3+(15-1)
      lda #$80
      ora (adr),y
      sta (adr),y
      lda #<dli
      sta dliv
      lda #>dli
      sta dliv+1
      lda #$c0
      sta nmien

      Możliwe, że trzeba by docyklować dli.
      • 44:
         
        CommentAuthorxeen
      • CommentTime20 May 2013 22:05 zmieniony
       
      no nie wiem czy w tym konkretnym przypadku nie lepiej zapodać prockę DLI z kilkoma dodatkowymi sta $d40a :)

      zwłaszcza pod kątem zrozumienia dla kogoś kto tego nie robił....
      • 45: CommentAuthors2325
      • CommentTime21 May 2013 16:05
       
      Wciągające i według mnie dobrze wykonane. W hieroglify zaplątany kaz, joystick i symbol Atari.

      • 46: CommentAuthormono
      • CommentTime21 May 2013 19:05
       
      @xeen: Czyli coś takiego:
      lda colpf0s
      sta c1
      lda colpf1s
      sta c2
      lda colpf2s
      sta c3
      lda dlptrs
      sta adr
      lda dlptrs+1
      sta adr+1
      ldy #3+3+(7-1)
      lda #$80
      ora (adr),y
      sta (adr),y
      lda #<dli
      sta dliv
      lda #>dli
      sta dliv+1
      lda #$c0
      sta nmien
      rts

      dli:
      pha
      lda #kolor01
      sta colpf0
      lda #kolor10
      sta colpf1
      lda #kolor11
      sta colpf2
      sta wsync
      sta wsync
      sta wsync
      sta wsync
      sta wsync
      sta wsync
      sta wsync
      sta wsync
      c1 = *+1
      lda #0
      sta colpf0
      c2 = *+1
      lda #0
      sta colpf1
      c3 = *+1
      lda #0
      sta colpf2
      pla
      rti

      wsync to trochę strata czasu (cpu) i wolę unikać takich rzeczy.
      • 47:
         
        CommentAuthorxeen
      • CommentTime21 May 2013 21:05
       
      tak, oczywiście masz rację co do zasady.
      w praktyce w basicu nie potrzeba usr aby wywolac DLI, jezeli dli jest jedno z wsync (zresztą w Twoim przykladzie to nie ma znaczenia)

      można ustawić przerwanie np. tak:
      DLIST=DPEEK(560):POKE DLIST+62,PEEK(DLIST+62)+128 - w zaleznosci od linii.
      a potem:
      DPOKE 512,BL:POKE 54286,192
      gdzie bl to adres skompilowanej procki jak wyzej.
      • 48: CommentAuthors2325
      • CommentTime21 May 2013 21:05
       
      Picross przywędrował niedawno też na Amstrada:

      • 49: CommentAuthortbxx
      • CommentTime29 Jul 2013 23:07 zmieniony
       
      Moja czwarta gra raczej zbyt szybko nie powstanie - wpadłem na szalony pomysł napisania jej w Action! W każdym razie tytuł już jest "Action! Tank".
      • 50:
         
        CommentAuthorKaz
      • CommentTime12 Aug 2013 20:08
       
      He he, Action! :)
      Trzymam kciuki i jakby cos bylo Ci potrzebne to smialo pisz.