826

(18 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

zastosowalem (w tablicy powinny byc $ff zamiast $00)
pomysl jest dobry ale nie wiem, nie widac poprawy :/

A zaimplementowałeś wersję optymalizującą start od _enter (skompresowanie 4 przebiegów)? Jak nie pomogło, to może wąskie gardło jest gdzieś indziej? Sprawdzałeś pod profilerem?

827

(18 odpowiedzi, napisanych Programowanie - 8 bit)

Jeżeli masz 512 bajtów miejsca na tablice (lub mniej jeżeli |Dom(_d)| < 256) to można trochę potablicować. Jeżeli nigdzie się nie walnąłem, to można tak:

_enter jsr _enter2
_enter2              
              
    ldx _d
    lda t1,x
    sta _d
    cmp t2,x
    bcc _d1
    rts
_d1 lda #$20
    adc _e
    sta _e
    bcs _d2
    lda _d
    adc #-$08
    sta _d
_d2 rts
    
; x:      0,1,2,3,4,5,6,7, 8, 9,10,11,12,13,14,15,16,17,18,19,20    
t1  .byte 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
t2  .byte 2,3,4,5,6,7,0,0,10,11,12,13,14,15, 0, 0,18,19,20,21,22

Idea jest taka, że wspomniana procedura jest wołana 2 lub 4 razy, można więc zamknąć dwa wywołania w jednym. t1[x] == x + 2. Na każde dwa pierwotne wywołania _e jest modyfikowane maksymalnie raz i to wtedy, gdy _d & 7 == (6 lub 7). Do tej decyzji służy tablica t2, która dodatkowo determinuje wartość flagi C: t2[x] < t1[x] gdy _d & 7 == (6 lub 7), t2[x] >= t1[x] wpp. Drugi trick, (który jest niezależny) pomaga zaoszczędzić 7/32 cyklu: jest większe prawdopodobieństwo, że _e się nie przepełni, niż to, że się przepełni, więc bardziej prawdopodobna ścieżka powinna być krótsza, czyli skok powinien być wykonywany gdy się przepełni.

EDIT:

Jeżeli _enter jest wołane często, a masz dodatkowe 512 bajtów, to można spreparować tablice dla wywołania podwójnego (poczwórnego dla oryginalnego algorytmu). t1'[x] == x + 4; t2'[x] < t1'[x] gdy _d & 7 in {4,5,6,7}; t2'[x] >= t1'[x] wpp.

828

(18 odpowiedzi, napisanych Programowanie - 8 bit)

Wzorzec zmienności _d jest taki dziwny, że nie rozumiem co ten algorytm ma właściwie robić. Jakiś szerszy kontekst by się przydał. Może wtedy  znalazłaby się nawet jakaś bardziej globalna optymalizacja.

829

(10 odpowiedzi, napisanych Software, Gry - 8bit)

offtopic: Miałem ją na kasecie. Zarąbista! Szkoda, że nie ma działającej file'ówki.

830

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Seems to be working on emu :)

831

(33 odpowiedzi, napisanych Software, Gry - 8bit)

tebe napisał/a:

na VBXE interlacy nie mają sensu istnienia

Chyba, że mówimy o prawdziwym literlace Rybagsa :)

832

(25 odpowiedzi, napisanych Bałagan)

Z żoną gratulujemy!

833

(4 odpowiedzi, napisanych Zloty)

No właśnie ja jade, ale nie wiem jeszcze czy sam czy uda mi się kogoś wyciągnąć, a skoro jedno miejsce, to nie odzywam się dopóki nie okaże się, czy jadę sam :)

834

(96 odpowiedzi, napisanych Fabryka - 8bit)

Teraz to już po ptakach, ale fajne mogłyby być tryby 16 kolorowe (2 pixele na nibel) w normalnej (320) i niskiej (160) rozdzielczości.  Szesnaście kolorów to całkiem sporo, a zajmują dwa razy mniej miejsca. Można byłoby animować dwa razy więcej sprajtów.

835

(23 odpowiedzi, napisanych Konsole)

mono napisał/a:

A ma ktoś mapę pamięci dla Atari Lynx?

Lynx Developer Docs

836

(108 odpowiedzi, napisanych Programowanie - 8 bit)

To kiedy będzie w atari800? ;)

837

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Można i tak:

http://laoo.twojemiejsce.pl/temp/VBXEi.png

Wykrywanie trywialne i tylko częściowo pokrywa się z tym co robi prawdziwe atari, ale póki nie poznam jak dokładnie działa ten bug w ANTICu, to lepiej nie napiszę.

Download tu.

838

(38 odpowiedzi, napisanych Bałagan)

Sikor napisał/a:

Tak, hororus, wszyscy wiemy. Odpowiednik szachowego "MAT" w grze "GO", jeśli jeszcze nie Wiesz.

Aby nikt nie przyswoił sobie tych informacji, czuję się zobligowany do wyjaśnienia, że w GO nie ma pojęcia MATA. ATARI jest stanem zagrożenia przed wzięciem grupy do niewoli (gdy zostaje jej tylko jeden oddech). A dosłownie po japońsku "atari" to "otoczenie". Ale tu przecież dyskutujemy o logo, a nie o słowie.

839

(108 odpowiedzi, napisanych Programowanie - 8 bit)

Z tą programową zabawą AN2 to niezły numer!

Posiedziałem troszeczkę nad emulatorem i wg emulatora w zaprezentowanej demonstracji DMACTL było modyfikowane w następujących miejscach:

LINE     CYCLE  DMACTL

11       107    $22
243      9      $00
274      109    $03
275      52     $00
275      101    $03
275      111    $00
276      46     $03
276      51     $00
276      101    $03
276      111    $00
277      46     $03
277      51     $00
277      101    $03
277      111    $00
2        22     $20
4        63     $20

11       107    $22
243      8/9    $00
251      30/32  $20
253      63/64  $20

gdzie LINE, to pełne 9 bitów VCOUNT, a CYCLE to cykl CPU w linii

840

(8 odpowiedzi, napisanych Emulacja - 8bit)

xan: Nie wiem o co dokładnie Ci chodzi, ale minimalna szerokość kolorowania to 8 pixeli hires atari. Maksymalna 32. Minimalna wysokość, to jedna linia, a maksymalna to 32.

841

(8 odpowiedzi, napisanych Emulacja - 8bit)

Działają przykładowe programy Electrona. Obrazek z małymi teścikami zamieściłem na forum aage (klik)

842

(8 odpowiedzi, napisanych Emulacja - 8bit)

Pewnie to dopiero początek, bo jak ludzie zaczną uruchamiać, to okaże się, że nie działa.

843

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

Nie wiem co dokładnie znaczy dekapsulacja, ale te urządzenie pewnie tego nie robi. Ono generuje wektory wymuszeń i bada co układ odpowiedział, resetując układ i powtarzając proces w pętli dochodząc za każdym razem o jeden cykl dalej.

Nie wiem wszystkiego, ale wciąż wydaje mi się, że nie wiadomo dokładnie co układy robią w konkretnych cyklach. Na atari-age wciąż są aktywne wątki chociażby na temat antic-timings i ludziki wciąż nie są 100% pewni kiedy dokładnie co się dzieje, a i pokeydoc Foxa ma w kilku miejscach znaki zapytania i niedopowiedzenia (a i błędy może też, bo kolega łapał się za głowę, jak oglądał te schematy :))

Póki nie ma schematów, taka wiedza zawsze zbliża nas do napisania układów, a w konsekwencji i całej atarki w VHDLu.

POKEYa mam. Potrzebowałbym do badań ANTICa i GTIA. Czy któryś z elektroników dysponowałby tymi układami z jakiś rozbebeszonych atarek? GTIA wydaje mi się, że może być nawet "skaszanione", bo to w naszym przypadku nie ma chyba żadnego znaczenia.

Jasne, że nie jest to ultimate solution, ale skoro można to zrobić, to czemu nie próbować?

844

(18 odpowiedzi, napisanych Bałagan)

Rozmawiałem z nim kiedyś na temat tworzenia projektu pochodnego. Tylko że tu nie chcę tworzyć osobnego projektu, bo to nigdy nie będzie rozwijane i stanowi tylko łatę ad hoc na doraźne potrzeby i chciałem się dowiedzieć jak to najprościej zrobić i czy w takim kontekście mogę rozpowszechniać binarkę (czego oczywiście się nie dowiedziałem). No ale racja, napiszę do Richtera, żeby wszystko było jasne. Nie wiem tylko jak to z nim teraz jest, bo strona domowa atari++ zniknęła jakiś czas temu z sieci.

845

(18 odpowiedzi, napisanych Bałagan)

To może będzie najlepiej, jak zrobię pseudo projekt (Atari++VBXE?) na GPLu (bo THOR LICENSE można przerabiać na GPLa) , gdzie będzie można ściągnąć oryginalne źródła, patcha i binarkę pod windę. Ktoś chętny do hostowania? Może by podczepić się pod http://vbxe.atari8.info/ ? Bo osobny sajt na taką pchełkę to strzelanie z armaty.

Co do unixoidów to nie ma żadnych konkretnych powodów niedziałania poza tym, że modyfikowałem tylko front-end windowsowy (a ściślej SDLa), a porta X-owego nie zmieniałem (bo nie miałem jak sprawdzić, będąc windows-only-guy ;P) . Modyfikacja sprowadza się do wpisania na stałe rozmiarów ekranu 2x2 pixela atarowskiego i odbierania danych 24-bitowego obrazu w hiresie. Jakby ktoś chciał uruchomić to pod Xy i gcc to możemy spróbować.

846

(18 odpowiedzi, napisanych Bałagan)

Nie wiem czy taka modyfikacja "zasługuje" na osobny projekt. Poza tym mam trudności z ogarnięciem co właściwie trzeba zrobić, aby być zgodnym z licencją w takich sprawach.

847

(89 odpowiedzi, napisanych Bałagan)

Nie ma się co dziwić. W Rosji panuje alternatywna rzeczywistość z alternatywną historią dyktowaną alternatywnymi normami moralnymi.
Ale jakby nie patrzeć 20 milionów poszło do piachu i mało co hitler ich nie wykończył (gdyby nie zima... któryś raz z kolei...).

848

(18 odpowiedzi, napisanych Bałagan)

Ogólnie potrzebuję "porady prawnej" :)

Otóż w związku ze wzmożonym zainteresowaniem dopałką Electrona postanowiłem przygotować w jakiejś rozsądnej postaci środek do emulacji tegoż. Na środek ten składa się modyfikacja emulatora Atari++ w wersji 1.55, która mniej lub bardziej wiernie (ale z naciskiem na mniej) emuluje core VBXE w wersji 1.09. Zła wiadomość  jest taka, że cała ta modyfikacja to brudna łata kalecząca architekturę Atari++ aby umożliwić wyświetlanie rzeczy, do których Atari++ nie było zaprojektowane. Dodatkowo zmieniłem tylko interfejs windowsowy więc zmodyfikowane źródła nawet nie skompilują się pod niczym innym.  Nie ma zatem mowy o integracji tego z głównym emulatorem i chciałbym aby traktowano to jako tymczasowe rozwiązanie palących problemów (jakie dotykają ludzi nie posiadających dopałki, a chcących się nią pobawić).

Główne pytanie tematu: jak mam to upublicznić, aby:
a) się dodatkowo nie napracować,
b) nie łamać oryginalnej licencji Atari++ (która jest lekką modyfikacją Mozilla Public Licence, z możliwością transferu do GPL)?

Czy akceptowalne jest, abym zrobił diffa moich zmian w źródłach oryginalnej wersji 1.55 i upublicznił tylko te zmiany (które z definicji są 100% moje) z instrukcją jak skompilować to sobie pod windowsem używając darmowego Visual C++ 2008 Express Edition, oraz dorzucił "dla leniwych" skompilowaną binarkę? ;)
Emulator już leży i czeka na rzesze testerów (bo celowo ukryłem w nim mnóstwo błędów do znalezienia). Muszę tylko znaleźć bezbolesny sposób upublicznienia go, aby nikomu się nie narażać.

849

(40 odpowiedzi, napisanych Programowanie - 8 bit)

Hoho. Faktycznie. Vector<Double> w tym kontekście to niezły hardkor. Aż się prosi o zastosowanie trywialnej strukturki.

850

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

Nie potrafię opowiedzieć co chcę zbyt szczegółowo i nie jestem elektronikiem, więc może być niemerytorycznie ale dowiedziałem się, że mój kolega w pracy ma techniczną możliwość badania układów (Notabene pracujemy razem z rok i dopiero ostatnio dowiedziałem się, że ma bakcyla na stare komputery jak zademonstrował napisanego przez siebie w VHDLu spektruma na xilinxie. Oryginalnie jest komodorowcem, ale ja już go przeciągnę na właściwą stronę ;p).

Otóż posiada on urządzenie w które można włożyć układ i (w uproszczeniu, tak jak ja to zrozumiałem) napisać w VHDLu "program", który udaje środowisko w jakim układ pracuje przy okazji zgrywając co pojawiło się na outputach. No i pytanie czy przydatne do czegokolwiek mogłoby być zbadanie w ten sposób atarowskich układów (ANTIC? GTIA? POKEY?). Oczywiście potrzebny byłby dawca, ale z tym chyba nie będzie problemu. Jakby co ja wszystko mogę zaaranżować. On badał już 6510 i inne komodorowskie układy. Czy w ogóle robił ktoś coś takiego z atari?