801

(2 odpowiedzi, napisanych Bałagan)

czasami brakuje mi na AA bbkodu: [art_sponsorowany]...[/art_sponsorowany]

802

(27 odpowiedzi, napisanych Programowanie - 8 bit)

tebe napisał/a:

że też Wam się chce powielać te informacje po raz n-ty, to jakiś przyspieszony kurs wiedzy dla specjalnej troski Nosty-ego ?

Bo ja elegancko prosze :) A i temat pewnie nie jest taki banalny rowniez dla innych opornych, wiec odpowiedzi pozyteczne byc mogą.
Ale spoko spoko, zawsze mamy w zapasie evergreeny "kto jest najgorszy na forum" albo "VBXE to ZUOOOO" ;)

tebe napisał/a:

Nosty multiplekser na DLI zmieniający pozycje poziome masz w Crownland, jak napiszesz taki że duchy nie będą mrugały to podeślij go Probe ;)

To ja teraz rozumiem czemu Crownland jest w PAL i nielatwo go na NTSC przerobic.

tebe napisał/a:

a tutaj masz przepis jak co znak albo i częściej zmieniać kształty duchów i ich pozycje w linii http://madteam.atari8.info/index.php?prod=gtia2

Juz to kiedys widzialem (strone znaczy a nie urzadzenie w dzialaniu) i wzbudzilo zdecydowana moja sympatie w porownaniu do "konkurencyjnych rozwiazan".

803

(17 odpowiedzi, napisanych Bałagan)

a ja w zwiazku z ostatnią ankietą... ;)
http://www.youtube.com/watch?v=v9MTGNaE … re=related

804

(27 odpowiedzi, napisanych Programowanie - 8 bit)

jellonek napisał/a:

ps. cyklowanie i modyfikacja rej. sprzetowych jest tak samo mozliwe (i tak samo trudne) w trybie tekstowym jak w trybie graficznym...

Teraz mnie zbiles z tropu.
A skad w trybie tekstowym kod "wie", ze wlasnie zaczelo sie rysowanie nowej linii obrazu (w sensie pixelowym nie tekstowym)? Musi wiedziec zeby policzyc takty i w odopowiednim momencie przesunac pozycje ducha w prawo.
A potem trzeba wiedziec kiedy linia jest juz narysowana i cofnac pozycje ducha znow w lewo.
Sadzilem, ze przerwanie DLI w kazdej linii pixelowej (czyli np w trybie tekstowym) znakomicie by to ulatwilo.
Jak to zrobic kiedy przerwanie jest np. tylko raz na 8 linii? Jest jakis rejestr ktory wskazuje ze plamka elektronow wlasnie zaczyna rysowac kolejna linie, czy jak?

805

(27 odpowiedzi, napisanych Programowanie - 8 bit)

mono napisał/a:

A co wpisałeś do PMGCTL? Jeśli ustawiłeś tam wyświetlanie sprajtów, to GTIA będzie rysowało na ekranie zawartość rejestrów GRAFPx/M. Bity w DMACTL ustawiają tylko DMA ANTICa dla sprajtów (czyli automatyczne przepisywanie zawartości kawałka pamięci do rejestrów GRAFPx/M co linię/dwie).

Edit: Właśnie dzięki temu możliwa jest multiplikacja sprajtów.

Nic nie zmienialem w PMGCTL. Tzn oczywiscie bylo ustawione wyswietlanie sprajtow. Chcialem tylko wylaczyc Antica i zobaczyc co bedzie.

"Bity w DMACTL ustawiają tylko DMA ANTICa dla sprajtów" - czyli jak wygasilem bit 5 i bity 0 i 1 to Antic jednak dziala, a wylaczylem tylko "DMA ANTICa dla sprajtów"?  Wydawalo mi sie ze bit 5 wylacza DMA dla calego Antica.

Myslalem ze sprajty sa na GTIA i sa niezalezne od Antica - czyli powinny dzialac nawet jesli ten jest wylaczony. Choc to problem troche akademicki...

806

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Jeszcze jedno pytanie, bo wzielo mnie na wieczorne eksperymenty :D

Ustawilem w rejestrze DMACTL wylacznie DMA dla DL i bity 0,1  = brak obrazu. Ekran byl czarny ale duszki mi sie wyswietlily!

Czy dobrze rozumiem, ze mozna wyobrazic sobie gre, ktora bedzie dzialac wylacznie na duszkach (GTIA) na czarnym tle, przy calkowicie wylaczonym ANTIC'u? :)

807

(27 odpowiedzi, napisanych Programowanie - 8 bit)

jellonek napisał/a:

"Aby mieć Dli w każdej linii po prostu nie wychodzisz z przerwania aż do ostatniej linii wiersza. Oczywiście oprócz 1 linii w trybie znakowym." - to nie da przerwania co linie. choc efektywnie przerwanie "bedzie obslugiwane" dluzej, wiec bedzie sie rozciagac rowniez na inne linie.

nosty: uzyskujesz to przez takie "docyklowanie" by procka wykonywala sie w trakcie powrotu plamki z konca jednej linii do poczatku kolejnej. oczywiscie moze sie tez wykonywac "w trakcie" punktowania linii. po prostu jej wykonywanie sie musi trwac przez rozciaglasc ilosci linii znaku w danym trybie tekstowym.

Rozumiem i nie rozumiem :) Czyli moge sobie przeciagnąc czas trwania przerwania DLI na czas rysowania kilku linii (ekranowych - pixelowych) po prostu nie wychodząc z procedury?
Wszedzie wczesniej czytalem ze na przerwaniach DLI niewiele mozna zrobic bo jest tam tylko czas na kilkadziesiat cykli procesora itp.  A tu piszecie ze moge przeciagac to przerwanie ile chce... tzn az plamka narysuje wszystkie linie znakow?

Ale w sumie nie o to chodzi zeby przerwanie DLI bylo jak najdluzsze. Pytalem o to czy przerwanie jest w kazdej linii obrazu (pixelowej) zeby miec jakis znacznik od ktorego glowny program moze odliczac takty aby w odpowiednim momencie przestawic pozycje X duszka aby go zmultiplikowac.
Nie wiem czy pisze zrozumiale. Zeby zmultiplikowac duszka trzeba zmienic jego pozycje X w kazdej linii obrazu (pixelowej). W tej sytuacji, gdyby miec przerwanie DLI w kazedej linii mozna by w nim bo ja wiem, zerowac jakis znacznik, zeby bylo wiadomo ze zaczela sie nowa linia i mozna liczyc takty.
Ale widze ze w trybie tekstowym jest to niemozliwe, wiec multiplikowanie w nim duszka w poziomie jest pewnie praktycznie niewykonalne z powodu trudnosci obliczeniowych.
Musze sie "przesiasc" na analogiczny tryb graficzny.

Dzieki wszystim za wyjsnienia. Postaram sie tego nie zmarnowac. Choc chyba zaczne od opanowania pojedynczych duszkow, potem przejde do multiplikowania w pionie a dopiero na koncu do powielania w poziomie ;)

808

(27 odpowiedzi, napisanych Programowanie - 8 bit)

gorgh napisał/a:

>>link<<

Dzieki.

"z moich exp. wynika ,ze przy DLI wywolywanym nie od poczatku ale od srodka ekranu mozna powielic duszka nawet 6 krotnie(bez zmiany ksztaltu i zadnych innych operacji), badz 3 krotnie przy zmianie ksztaltu wszystkich trzech i koloru w przypadku 2( 2 duchy w DLI i 1 w petli programu)"

Co oznacza "przy DLI wywolywanym nie od poczatku ale od srodka ekranu "? Myslalem ze DLI jest przerwaniem wywolywanym zawsze w tym samym momencie bo jest zwiazana z fizyczną budowa ekranu (powrotem plamki elektronowej?)

I jeszcze jedno pytanie z tym zwiazane:
To czy w danej linii ma byc przerwanie DLI czy nie, definiuje sie w DL, ale jesli mam tryb znakowy (np 0) to na jedna linie znakową przypada 8 linii ekranu. Czyli jak ustawie dla tej linii DLI to bedzi ono wykonywane 8 razy - dla kazdej linii ekranu wchodzacej w sklad linii znakowej?

Probowalem napisac proste multiplikowanie duszka w poziomie ale na razie z marnym skutkiem :/

809

(27 odpowiedzi, napisanych Programowanie - 8 bit)

xan napisał/a:

a próbowałeś w większych odstępach od siebie te buźki rysować?

Sprobowalem przed chwila. Zmiana miedzy 50 a 200.
Faktycznie niektore linie rysuja sie teraz podwojnie a niektore nie rysuja sie wcale! Zalaczam screena.
Czyli da sie narysowac ducha w 2 pozycjach w tej samej linii...

Wynikaloby z tego ze trzeba postepowac jak przy zmianie kolorow grafiki w srodku linii? Czyli poczekac na narysowanie lewego ducha i wtedy dopiero zmienic pozycje i bede mial dwa niemrugajace duchy w tej samej linii? :)

Jaka moze byc najmniejsza odleglosc ducha od jego kopii zeby to sie udalo?

Sprobuje cos takiego zakodowac.

epi napisał/a:

Ale pytasz, czy jest to możliwe w GTIA, czy w emulatorach? :D

A to naprawde az taka roznica na tym poziomie? Myslalem ze emulatory (przynajmniej A800win) sa juz prawie perfekcyjne... Sie tak dziwie, bo znam pewnego programiste Atari, z naprawde scislej czolowki, ktory nie ma real Atari i koduje swoje najlepsze gry na emulatorach ;)

810

(27 odpowiedzi, napisanych Programowanie - 8 bit)

Czy to jest wykonalne?
Bo spotkalem sie z roznymi opiniami. Chodzi mi o to czy HPOSP0 (pozycja pozioma Player0 - $D000) jest odczytywany przez GTIA raz na linie (przy DLI) czy czesciej? A moze to jest cien a jest jakis rejestr sprzetowy odczytywany na biezaco, jak w przypadku rejestrow odpowiedzialnych za kolory ducha?

Zrobilem eksperyment. Duch ma postac dwoch "buziek" - jednej pod drugą.
Napisalem w Atalanie najprostszą mozliwą petle zmieniająca pozycje ducha z 90 na 100 i odwrotnie tak czesto jak sie da.
W asemblerze, po lekkich recznych korektach kod wyglada tak:

pozycja equ 130
player__x equ 53248

_lbl7:
;### int.atl(97)    if pozycja = 100 then pozycja = 50
   lda #100
   cmp pozycja
   jne _lbl5
   lda #50
   sta pozycja
;### int.atl(98)    else pozycja = 90
   jmp _lbl6
_lbl5:
   lda #90
   sta pozycja
_lbl6:
;### int.atl(99)    player(0).x = pozycja
   sta player__x
_lbl3:
   jmp _lbl7

Zalaczam XEX i screen.

Sprawdzalem pod emulatorem robiac "stopklatke" i ani razu nie zaobserwowalem zeby ktorakolwiek z linii ducha byla narysowana podwojnie w pozycji 90 i 100 jednoczesnie.
Wynikaloby z tego ze multiplikacja przez zmiane rejestru HPOSP0 nie jest mozliwa.

Kod jest na tyle krotki ze moim zdaniem powinien wykonac sie z powodzeniem kilka razy w ciagu jednej linii (byc moze zreszta tak sie dzieje i dlatego przeplot nie jest dokladny tylko nieraz rysuja sie dwie kolejne linie w jednej pozycji bo pozycja zmienia sie z 90 na 100 i znow na 90 zanim rejestr zostanie odczytany).

Dziwi mnie troche zachowanie emulatora Atari (Atari800Win 4.0 beta 7). Odpalcie i poczekajcie okolo 10 sekund - mruganie duszkow nagle zwalnia do jednego przeskoku co pare sekund. O_o Ale to chyba jakis blad emulatora po prostu...

811

(24 odpowiedzi, napisanych Programowanie - 8 bit)

pirx napisał/a:

Zysk jest taki, że przy skrolu trzeba przerzucić w bok 3*40 bajtów + uzupełnić tło w zestawach znaków, które się wsuwają (20*8 bajtów).

W trybie graficznym trzeba by mieć b. dużo pamięci albo kopiować prawie 8kb co parę ramek.

Obiekty to sofware'owe sprite'y i tak, wszystko tworzone jest dynamicznie. Kosztuje to praktycznie tyle samo, co w zwykłej grafice. Pamiętaj - to co widzisz to tak jakby tryb graficzny, tylko z inaczej porozkładanymi danymi w pamięci.

O i teraz pojąłem :) Ciezko mi bylo wyjsc myslowo poza "paradygmat" klasycznie ulozonej pamieci ekranu.

Czyli mam odpowiedz na moje pytanie: praktycznie wszstkie gry z dynamicznym scrollem tworzone sa w trybach znakowych (np 12) bo wizualnie dopowiada to trybowi 15, ale operujac na znakach ciezar budowania obrazu przez przesuwanie duzej ilosci pamieci przerzuca sie z procesora na Antic (troszke upraszczajac).

Dzieki!

812

(24 odpowiedzi, napisanych Programowanie - 8 bit)

pirx napisał/a:

Dla dużych map ze słabo powtarzalną grafiką też opłaca się używać trybów tekstowych, tak jest np. w Operation Blood i Special Forces.

Ekran składa się z wielu zestawów znaków, scroll na rejestrach sprzętowych + trochę przepisywania bajtów. W preview Turricana taki scroll jest zrobiony we wszystkie strony.

Trzyb tekstowy nie jest użyty po to, żeby zaoszczędzić miejsca na powtarzalnych elementach (trochę też), ale przede wszystkim po to, żeby się szybko animowało.

O ile dobrze pamiętam to w Operation Blood zestaw znaków zmienia się co 3 wiersze, co daje 8 znaków zapasu na jakiś mini-buforek do scrolla i coś tam jeszcze. Zerknąłem właśnie w kod i widzę, że te trzy wiersze to po prostu znaki od $00 do $7f (pewnie na zapas). Czyli ekran gry to coś w rodzaju ekranu graficznego, tyle że zbudowanego na znakach.

Jakby zmieniać zestawy znaków co 2 wiersze, dałoby się zmontować jakąś niebanalną paralaksę...

Rozumiem. No dobrze ale co z animacja obiektow na tle grafiki??? Rozumialbym na czarnym tle, bo moznaby wtedy przygotowac osobne znaki z obiektem przesunietym o 1 piksel. Ale w Operation Blood porusza sie mnostwo obiektow na tle innych! Jak to jest niby zrobione na znakach? Sa tworzone dynamicznie? To juz zupelnie nie widze sensu... Owszem "srodek" takiego obiektu animuje sie szybciej, bo przez przesuniecie paru znakow, ale wszystkie "brzegi" trzeba nakladac na tlo i tworzyc z tego dynamicznie znaki.
A jeszcze zabawa z przelaczaniem zestawow, a wykrywanie kolizji (w OB - celnych strzalow)? Masakra.

813

(76 odpowiedzi, napisanych Bałagan)

Sikor napisał/a:

A gdzie ja teraz w środku zimy znajdę suszoną żabę?

Spoko, dostaniesz w dzielnicy alchemików :)

814

(76 odpowiedzi, napisanych Bałagan)

Candle napisał/a:

z suszonej zaby

10/10 :D

815

(24 odpowiedzi, napisanych Programowanie - 8 bit)

Candle napisał/a:

dwa ekrany obok siebie
zamiast przepisac, mozesz po prostu zmienic pointer poczatku wyswietlania, ten pointer musisz miec ustawiony co linie dlki
po przeskrolowaniu sie na drugi ekran, przepisujesz nowy ekran do tego co go nie widac i uaktualniasz pointer jeszcze raz
operacje mozna rozbic na pionowe paski, ktore spokojnie mozesz namalowac w ciagu ramki

No tez tak myslalem - ze co linia jest wskaznik pamieci ekranu i mozna przesuwac ten pointer... ale jednak w pewnym momencie trzeba "przeskoczyc" znow do poczatku obszaru pamieci jaki sobie zarezerujemy - jak piszesz "przepisujesz nowy ekran do tego co go nie widac". Moznaby to robic po kawalku... ale to znaczy, ze trzebaby wypelniac grafiką jednoczesnie dwa obszary pamieci (zeby przeskok na poczatek, po skonczeniu sie drugiego ekranu byl natychmiastowy, bez przepisywania 8kB). A jesli gracz moze ruszac sie  w lewo lub prawo,a scroll jest szybki to sprawa sie komplikuje...
Zobacz takie DropZone np. Choc tam pewnie scrollowany jest tylko dol ekranu z grafika.

Kolejne pytanie z serii "nosty dziwi się światu Atari" ;)

Czy ktos z naszych doswiadczonych koderow moglby spojrzec na Henry's House (chocby tu: http://www.youtube.com/watch?v=9GaYpeuVGQ8) i powiedziec mi jakie techniki sa stosowane do budowy grafiki i kolorow w tej grze? Jaki to tryb graficzny, co jest na duszkach itp.

Tzn wiem, ze sa zmieniane kolory w przerwaniach linii, ze sa duszki, ale mimo to wydaje mi sie ze kolorow w tej grze jest jako za duzo w jednej linii! Szczegolnie uwzgledniajac ze postac bohatera (ktora nie zmienia kolorow a ma ich 3) moze sie znalezc w kazdej linii obrazu.

Myslalem ze bohater jest zrobiony z duszkow. Ale patrzac na jego kolory, musialyby to byc co najmniej 3 duszki. Czyli do innych zastosowan zostalyby max 2 duchy. A na pierwszej planszy widac TRZY krecace sie przeszkadzajki - buzki, ktore na 99% sa zrobione z 3 duszkow bo zmieniaja teczowo kolory. Czyli bohater chyba jednak nie jest zrobiony z duszkow?

Pomozcie.

817

(24 odpowiedzi, napisanych Programowanie - 8 bit)

Lamerskie pytanko mam, wiec nie oczekuje dlugich odpowiedzi i dokladnych algorytmow a jedynie prosze o wyjasnienie w paru slowach "zagadki" ;)

Zastanawiam sie jak robi sie szybki plynny scroll w grach Atari takich jak Zybex?  Chodzi mi o operowanie na ogromnych ilosciach pamieci.

Tzn wiem, ze w wiekszosci gier uzywa sie trybow znakowych co bardzo ulatwia sprawe, ale znaki maja sens chyba tylko wtedy kiedy grafika jest powtarzalna (sklada sie z "klockow") oraz obiekty ruchome sa zrobione na PMG. W innym przypadku uzycie znakow byloby chyba bardzo trudne?

Wiec policzylem sobie, ze przesuniecie obrazu w trybie pixelowym, ktory przyjmijmy zajmuje 8kB, np o 8 punktow w lewo czy w prawo ocznacza koniecznosc przepisania tych 8kB (w kazdej linii do sąsiednich bajtow i uzupelnienie o nowowidoczny bajt grafiki), a to nawet w najprostszej postaci zajmuje mnostwo cykli procesora. A trzeba by to robic pare razy na sekunde.
A gdzie czas na animacje, mechanike gry, muzyke...?

Wiec czy rzeczywiscie tak to jest robione czy stosuje sie jakies "sztuczki"?

818

(6,280 odpowiedzi, napisanych Kolekcjonowanie)

Candle napisał/a:

mnie sie bardziej podoba to: http://allegro.pl/latawce-akryl-orygina … 56813.html , niestety cena zabija

Bo ja wiem... Trzeba by sie zorientowac jak sa wyceniane prace tej artystki.
Generalnie bardzo fajne dla klimaty dla kazdego retrogracza:
http://www.sosniak.com/index.php?/project/paintings/

819

(42 odpowiedzi, napisanych Bałagan)

No to sobie kupilem :)
Dzieki za pomoc.

820

(11 odpowiedzi, napisanych Bałagan)

Uwierz ze cena monitora C1084 Atarowcow tez bardzo interesuje, bo to najlepszy monitor do... no do wszystkiego za wyjatkiem PC :)
Niedawno byl wątek o tym ze jego ceny poszybowaly w kosmos, dlatego jestem ciekawy ile osiagnie ten egzemplarz.
Firma Atari niestety nigdy nie wypuscila monitora do serii komputerow 8-bit.

821

(11 odpowiedzi, napisanych Bałagan)

http://allegro.pl/monitor-commodore-108 … 35521.html

To model bez "S" na koncu wiec mono.

Ja obstawiam 265 zlociszy.

822

(13 odpowiedzi, napisanych Kolekcjonowanie)

dely - stacje ostatnio sie niezle cenią...  teraz np na allegro nie ma zadnej.

Za to jest Atari + SIO2SD + joye za 305 zlotowek O_o
http://allegro.pl/atari-65-xe-legenda-f … 56571.html

takze potargowac sie warto ale 250 moze sie okazac cena akuratną za opisany zestaw.

823

(4 odpowiedzi, napisanych Bałagan)

AS... napisał/a:

Czy sprzedający nie ma przez przypadek 0 komentarzy???

No ma, ale...
1. zobacz ze w tym serwisie wogole nie ma wielu ofert wiec ciezko sie dorobic wielu komentarzy
2. kto nie ryzykuje ten nowej Flaszki nie posiada ;)

Ja tam nie zachecam. Sam nie kupie bo gotowka nie ta. Tylko wklejam linka.

824

(4 odpowiedzi, napisanych Bałagan)

Oczywiscie nie ode mnie ;)
Takie cos wyszperalem:
http://marketplace.vintage-computer.com … m_type=all

Oferta troche podejrzana bo bez zdjec, ale jesli ktos jest zainteresowany to moze sie zarejestrowac i poprosic o fotki.

Jesli Falcon okazalby sie naprawde nowy w boxie to obstawiam ze 800 papierow, nawet bez targowania, to nie jest drogo, a na Ebayu moznaby jeszcze kilkaset zarobic od chciwych kolekcjonerow ;)

825

(42 odpowiedzi, napisanych Bałagan)

Taki tani drobiazg znalazlem:
http://allegro.pl/gr1-video-grabber-i1380613046.html

Zastanawiam sie czy za pomoca tego uda mi sie wyswietlic na lapku obraz z malego Atari (i ewentualnie innych 8, 16 bitowcow)?
Znalalem na youtubie dema pokazujace ze pracuje z Wii, XBOX'em, itp, ale wiem ze czasami stare maszynki okazuja sie dziwnie niekompatybilne z nowymi monitorami.

Jesli ktos uzywal prosze o opinie.