2,826

(23 odpowiedzi, napisanych Scena - 8bit)

Co myślisz o coverowaniu tego gościa http://www.8bitpeoples.com/discography/by/stu ?

edit: Np. dYManite ?

2,827

(23 odpowiedzi, napisanych Scena - 8bit)

Heh - zasugerowałem się jellonkiem.

2,828

(23 odpowiedzi, napisanych Scena - 8bit)

Zauważ epi, że spectrumowcy mieli do tej pory tak wierną wersję tylko graną przez beeper'a (autorstwa zilog'a zdaje się). A tutaj gra to AY...

2,829

(24 odpowiedzi, napisanych Programowanie - 8 bit)

Ja trochę też :)
Zrozumiałem, że chciałeś sprawdzić jaki tryb będzie zrywał synchronizację kiedy ilość linii osiągnie lub przekroczy 240 i na końcu dlist nie będzie jvb. Ponieważ f ewidentnie zrywa, stąd moje wynurzenia nt. konieczności zastosowania jvb podczas operacji krytycznych i dokładania linii przy scrollowaniu pionowym za pomocą rejestru (tak, aby uniknąć zrywania synchro). Nie wypowiadałem się nt innych trybów, bo tam nie ma takich problemów.
Przykro mi jeśli się nie zrozumieliśmy - rozumiem, że wątek jest zamknięty.

2,830

(24 odpowiedzi, napisanych Programowanie - 8 bit)

Scroll przez rejestr VSCROL rzeczywiście działa, ale nie da się go użyć w hiresie, ze względu na zrywanie synchronizacji. Trzeba by poza manipulacją VSCROLL dokładać też jedną linię trybu f tuż przed jvb (czyli przepisywać f+jvb) bo ANTIC wcina tyle linii, ile ustawiliśmy w VSCROLL.

2,831

(24 odpowiedzi, napisanych Programowanie - 8 bit)

Oczywista sprawa co do scrolla pionowego za pomocą lms (btw. czy vscroll w ogóle w trybach graficznych działa?). Czyli co? dlista składłaby się z:

0: lms
1: gfx
2: gfx
...
239: gfx
240: lms
241: gfx
...

Rozumiem, ze przy operacjach krytycznych czasowo (CRITIC ustawiony) ANTIC po wyświetleniu linii 239 zaczekałby do końca VBLANK i zacząłby wyświetlać następny obraz od linii w dlist widzianej, jako 240? I tak aż do ograniczenia 4KB - potem program by się zapętlał? Warto by sprawdzić.
jvb natomiast przydaje się też przy dłuższych dlistach niż ekran, bo jak pisałem ANTIC nie buforuje ustawienia DLPTR i z nowym ekranem (jeśli na VBLKI nie zostanie DLPTR odświeżony, a nie jest jeśli znacznik CRITIC jest ustawiony) poleci dalej i zapętli się na 4KB (licznik DLPTR jest 12-bit).

Edit: DPLTR jest oczywiście 10-bit podczas wykonywania więc zapętli się na 1KB.

2,832

(24 odpowiedzi, napisanych Programowanie - 8 bit)

Proszę uprzejmie. 1test.obx zrywa synchro, 2test.obx nie zrywa.
Pewnie wiesz, ale przy operacjach krytycznych na VBLKI nie jest odświeżany DLPTRS i wtedy jvb się przydaje, bo ANTIC leci wg tego, co wskazuje DLPTR.

2,833

(24 odpowiedzi, napisanych Programowanie - 8 bit)

Sprawdziłem na 65XE. Pusta linia na początku dlisty nie jest potrzebna, tryby 2,3,f zrywają synchronizację kiedy mam 240 linii ekranowych zajętych (30 *2, 24*3 i 240*f), natomiast tryb e nie zrywa kiedy mam 240 linii. Co z resztą nie sprawdzałem, ale myślę, że nie będą rwać synchronizacji - problemy występowały tylko z hiresem.

Edit: konkretnie ustawiałem 256 linii e i f, 56 linii trybów 2 i 3. Tak więc malowało się BEZ jvb.
Edit2: analogiczne zachowanie występowało gdy było malowanych 240 linii e,f oraz 30 * 2 i 24 * 3 Z jvb. Zrywa tylko hires.

2,834

(24 odpowiedzi, napisanych Programowanie - 8 bit)

O ile dobrze pamiętam tryby 2,3,$f ANTIC'a zrywały synchronizację - reszta nie (tebe o tym już pisał).
Edit: Ale, ale - czy przynajmniej jedna pusta linia na początku dlisty nie była wymagana po to, żeby ekran nie podjeżdżał do góry ?

2,835

(9 odpowiedzi, napisanych Bałagan)

Brzmi, jak Purple Motion Crew

2,836

(25 odpowiedzi, napisanych Programowanie - 8 bit)

O ile dobre zrozumiałem problem chodzi Ci MaW o coś takiego:

10 a=peek(20)
20 gosub TwojaProcedura
30 b=peek(20): if (b >= a and b < a+2 or b < a and b < a+2-256) then 30
40 a=b: goto 20

Jeśli Twoja procedura wykonując się przekroczy czas trwania 2 ramek, to po prostu polecimy dalej - jeśli nie przekroczy to zsynchronizujemy się. Pominąłem oczywiście synchronizację z początkiem ramki bo myślę, że na tak dokładnej synchronizacji Ci nie zależy?

2,837

(330 odpowiedzi, napisanych Sprzęt - 8bit)

Gdyby też wyjąć i rozczłonkować OS mielibyśmy L-system'ów.

2,838

(6 odpowiedzi, napisanych Programowanie - 8 bit)

Pomysł jest ciekawy. Ale co z rozdzielczością? Trzeba by uzyskać pełną rozdzielczość na tych 64px. Gdyby zdążyć z przesuwaniem sprajtów w linii i przesłanianiem kawałków pikseli trybu graficznego i zmianą kolorów sprajtów to by się mogło udać (a przynajmniej pozycje i kształt). Paradoksalnie to missiles byłyby tutaj chyba użyteczniejsze :) Ech - czemu to kolory i pozycje sprajtów w gtia nie są brane z banków...?

Hmmm. A może by otworzyć małą drukarnię starych czasopism? Sepcjalnie dla fanatyków starych komputerów? W oryginalnym rozmiarze - tylko na papier toaletowy dla IKSa nie ma co liczyć... :(

2,840

(330 odpowiedzi, napisanych Sprzęt - 8bit)

65xe z expansion port; rozszerzenie ram z bajtka do 192kb i sprzętowy reset (samoróba) też chyba wg bajtka - dawno to było i nie pamiętam :(. Obydwa rozszerzenia robił kolega więc nie podam szczegółów, bo nie za bardzo się znam.

2,841

(15 odpowiedzi, napisanych Programowanie - 8 bit)

epi napisał/a:

Zalecam doszkolenie: http://atariki.krap.pl/index.php/Ramka :)
Dodatkowo ANTIC nawet kiedy ma wyłączone rysowanie ekranu, to i tak po cichu zabiera 9 ze 114 cykli w każdej linii.

Tak, tak :) Nie wiem czemu ubzdurało mi się, że zegar taktujący jest dzielony na 2 - z moich obliczeń wychodziłoby wtedy 57 cykli na linię - nie sprawdziłem :/. O tych 9 cyklach wiem...

@Archiel: masz w takim razie 2x więcej czasu na logikę. Tryb tekstowy z generatorem znaków w trybie 2ANTIC rzeczywiście (jak pisze Laoo) da się zrobić. Pozostają tylko problemy zasygnalizowane prez Fox'a...

2,842

(15 odpowiedzi, napisanych Programowanie - 8 bit)

ArchieIl napisał/a:

Po pierwsze "emulator" tak naprawdę byłby binarnym rekompilatorem (offlinowym) ROM-ów dla 2600 na kod, który działałby z Atari XL/XE.

xxl już zrobił jeden "rekompilator offlineowy" - możesz go popytać jakie są problemy. Polecam wątek http://atariarea.krap.pl/forum/viewtopic.php?id=4772

ArchieIl napisał/a:

Po drugie w Atari 2600 całość grafiki w każdej ramce jest tworzona od 0 przez 6502 i wysyłana do układu graficznego.

lda abs - 4 cykle
sta abs - 4 cykle
CPU jest taktowany 1,773447 MHz w PAL - zegar dzielony jest przez 2 więc masz 886723 cykle procesora na sekundę.
W ramce (PAL - 1/50 s) masz więc 17734 cykli więc jesteś w stanie przepisać rozwiniętą pętlą 2216 bajtów (najszybszy sposób). Rozdzielczość 40x192 daje Ci 7680 bajtów na Atari XL/XE. Nie liczę zupełnie cykli, które ANTIC zabiera na odświeżanie ekranu i zakładam, że ANTIC podczas generacji ma wyłączone rysowanie ekranu.
Nawet gdyby zastosować sprajty do rysowania obrazu a grafikę do rysowania sprajtów to i tak masz dla ekranu 960 bajtów do przepisania, a dla sprajtów 576 bajtów (chyba, że będziesz to modyfikował tylko tam, gdzie trzeba) - w sumie masz więc 1536 ($600) bajtów do przepisania co daje 12288 cykli (i zajmuje $2400 ramu). Reszta czyli 5446 zostaje Ci na logikę i generowanie treści.

ArchieIl napisał/a:

* użycie trybu tekstowego 40x24, w którym wszystkie znaki są zaprojektowane jako wszystkie możliwe do użycia zestawy kreseczek poziomych ("mono").
* użycie trybu tekstowego ANTIC 4 ze znakami zdefiniowanymi j.w. (full kolor)

8 linii po 2 stany - ilość kombinacji = ilość stanów do potęgi ilość linii; wychodzi 256 kombinacji - nie wystarczy Ci generatora znaków.

ArchieIl napisał/a:

* użycie trybu ANTIC 9 tyle, że nie sprawdziłem jeszcze czy ANTIC pozwala na podmianę zawartości poszczególnych linii i uzyskanie w ten sposób wymaganej rozdzielczości 192 lini w pionie.

Jak działałyby gry gdyby nie pozwalał? Rozdzielczość OS9: 80x192.

ArchieIl napisał/a:

W obu przypadkach dynamicznie zmieniające się tło będzie wyjątkowo trudne w realizacji ale na początek chciałby uzyskać emulację dla gier ze statycznym playfield i z dowolnie konfigurowanymi duszkami.

Przecież to zazpisywanie pełnych bajtów: $00, $11, $22 i tak aż do $88. Żadnego maskowania, przesunięć, liczenia - gdzie tu trudność?

2,843

(41 odpowiedzi, napisanych Sprawy atari.area)

AutoBoxer

2,844

(6 odpowiedzi, napisanych Programowanie - 8 bit)

Czy tych duszków potrzebujesz do obiektów ruchomych czy do statycznego tła?
Zauważ, że nawet przy poczwórnej rozdzielczości w poziomie pozycję sprite'a możesz ciągle ustalać z dokładnością do jednego piksela (tryb 12OS). Jeśli ustalisz priorytet ducha tak, że będzie on rysowany pod kolorami pola gry (czyli pod obrazem wyłączywszy tło czyli parę bitów 00), to stawiając piksele na obrazie możesz zasłonić część szerokiego piksela sprajta. Dzięki temu możesz sobie przykryć cały ekran (statycznie) lub mieć dodatkowe kolory dla programowego sprajta (bo pozycję szerokiego sprajta zmieniasz z precyzją cyklu koloru czyli piksela w OS12). Wyglądałoby to np tak:

5555  - jeden bit sprajta x4
0123 - zawartość znaczka

w efekcie dostajesz coś co wygląda na ekranie

5123

a więc piksel dodatkowego koloru 5 :) Sprajt jest w poziomie ustawiony tak, że jego piksele pokrywają się dokładnie ze znakami.
Oczywiście jeśli grafika wygląda tak:

5555  - jeden bit sprajta x4
0103 - zawartość znaczka

to dostaniesz

5153

a więc nie użyjesz tu koloru tła (00), bo przesłania go ciągle sprajt. Jeśli natomiast sprajta przesuniesz o piksel

     5555         - jeden bit sprajta x4
01030120 - zawartość dwóch znaczków

to wtedy w wyniku dostaniesz

01535120

ale część sprajta przesłoni wtedy następny tło następnego znaczka (pierwsza para bitów 00 z drugiego znaku została przesłonięta przez sprajta).
Dokładając kolejnego sprajta dostaniesz

   6666         - jeden bit sprajta x4
  5555         - jeden bit sprajta x4
01030020 - zawartość dwóch znaczków

dostaniesz

01535620

i tak aż do wyczerpania ilości dostępnych sprajtów. Missiles podlegają tym samym regułom a mają tylko mniejszą szerokość, ponadto możesz włączyć 5 playera co daje dodatkowy kolor na wszystkich missiles. Kolor ten brany jest z rejestru, jaki używany jest dla pary bitów 11 w znaku w inverse. Dzięki temu możesz mieć naraz widoczne kolory 3 i 4 np.

4444 - zawartość jednego bitu missile z włączonym 5 playerem
0123 - znak BEZ inverse

a na ekranie zobaczysz

4123

Nie używając missile w tym trybie lecz samego znaku w inverse miałbyś:

0124 - znak Z inverse

Można więc tutaj czarować do woli.
Na dli możesz też zmieniać priorytety sprities pozwalając na przesłanianie dodatkowo niektórych kolorów ekranu (nie tylko koloru tła - para bitów 00).
Jest to dość skomplikowane - to fakt, ale pozwala na uzyskanie pojedynczych pikseli dodatkowych kolorów na całkiem sporych obszarach ekranu. Stosując sprite'a w rozdzielczości x1 ten obszar gwałtownie się zredukuje, a co więcej żeby uzyskać dodatkowe kolory trzeba będzie multiplikować sprajty w każdej linii ekranu co oznacza zarżnięcie procesora. Trzeba też wziąć pd uwagę, że w trybie tekstowym cała pierwsza linia skaningowa praktycznie jest zablokowana na działania ANTIC'a i tam kolorów/pozycji nie przełączysz. W trybie graficznym zaś tracisz kolor dla znaków w inverse i możesz go uzyskać już tylko 5 playerem.

Można też prócz 5 playera włączyć nakładanie kolorów, wtedy jeśli sprajty nałożą się na siebie uzyskujesz kolor będący wynikiem wykonania funkcji bitowego OR na zawartości rejestrów kolorów dla odpowiednich sprajtów - dostajesz wtedy dodatkowy kolor, którego nie ma w żadnym rejestrze :)

Na koniec słownik:
duch/sprite - player lub missile
0..3 kolory znaku bez inverse
4 - kolor dla pary 11 znaku w inverse lub tzw. 5 playera
5..8 - kolory sprajtów

Wszystko to napisałem, żeby Cię przekonać jednak do użycia szerokich sprajtów :)
Technika prostsza, o której wspomniałeś, czyli migotanie dwoma displaylistami i bankami sprajtów ze zmianą kolorów na vblk/dli (jeśli masz wyłączone przepisywanie rejestrów cienii na vlbk, to przełączanie ekranów naprzemienne można zrealizować samą dlist rozkazem jvb - wtedy na dlist przepisujesz tylko kolory i pozycje sprities), ma tę wadę, że masz dwa razy więcej grafiki do kopiowania podczas animacji.

Na koniec drobna uwaga. ANTIC ma tylko 9 rejestrów kolorów co pozwala w trybach ANTIC'a uzyskać max 9 kolorów. Uzyskanie 10 kolorów jest możliwe albo:
- multipleksowaniem sprities w linii
- przełączaniem kolorów w linii
- włączeniem trybu nakładania kolorów GTIA.
Dwie pierwsze techniki zabierają masę czasu procesora - ostatnia przerzuca całą pracę na GTIA.

edit: ponieważ chcesz zastosować BASIC proponowałbym jednak coś co nie obciąży procesora, a więc faktycznie sprities (w takiej rozdzielczości, jaka Ci wystarczy z ewentualnym włączonym trybem 5 playera) i nakładaniem kolorów i priorytetami, tudzież zmianę kolorów/priorytetów/położenia na dli/vblk.

2,845

(31 odpowiedzi, napisanych Bałagan)

Pan Korwin-Mikke twierdzi np. że klarowne prawo można by stworzyć wyrzucając do śmieci 90% ustaw wprowadzonych po 20 bodajże roku :) I wcale nie uważam go za oszołoma.

2,846

(31 odpowiedzi, napisanych Bałagan)

A mnie się wydaje, że nie powinno się "chronić pewnych grup społecznych" a po prostu stworzyć klarowne i zwięzłe prawo. bo idący tym tokiem myślenia po prostu ustanawiamy wyjątek od reguły. A potem kolejny i kolejny - w ten sposób komplikują się najprostsze sprawy.

2,847

(41 odpowiedzi, napisanych Sprawy atari.area)

To może wprowadzić ocenę za posta :D:D:D Z punktacją -10..10. Albo żeby było standardowo -20..20!
I jeszcze kategorie dla oceny np.: merytoryczna, humorystyczna, filozoficzna, pogotowietechniczne itd. Właściwa ocena zawodnika liczona byłaby jakąś Heurystyką Dely'ego i wystawiany byłby piękny stopień. Niedobry pomysł?

edit: Z ciekawości - czy można poznać aktualną listę progów i adekwatnych odznaczeń?

2,848

(36 odpowiedzi, napisanych Programowanie - 8 bit)

dely napisał/a:

Przy odpowiednim zaplanowaniu obrazka (użycie szerokiego PMG do kolorowania dużych płaszczyzn, jako "underlay" z priorytetem poniżej tekstu/grafiki) oddaje ten sposób nieocenione przysługi i jest to jedyny plus atarowskiego PMG - nawet C64, które przoduje w sprite w gronie 8bit, tak "nie umi" :)

Dely - pamiętaj, że ce64 ma mapę kolorów i nie potrzbuje jej emulować za pomocą sprajtów.

2,849

(31 odpowiedzi, napisanych Bałagan)

@TDC: mógłbyś ten paragraf gdzieś wyszukać? Wiem, że istnieją licencje akademickie oprogramowania, ale za nie często również trzeba zapłacić. Słyszałem również o haczyku pozwalającym uniknąć odpowiedzialności np. za opis jak włamać się do sieci wifi: wystarczy podobno napisać, że artykuł opisuje podane sztuczki w celach EDUKACYJNYCH. Nie są to jednakowoż zastosowania naukowe, a więc nie ograniczone do kręgu ludzi Nauki.

A odnośnie problemów z własnością intelektualną polecam ciekawą pracę dostępną na http://www.futrega.org/wk/ . Ciekawych rzeczy można się tam dowiedzieć - może dla wielu z Was takie to nie będzie, ale dla mnie było to dość odkrywcze.

2,850

(1 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Chętnie zakupię. Mail poszedł na priva.