76

(6 odpowiedzi, napisanych Bałagan)

Leżą u mnie na strychu 2 monitory CRT, 17'', na oko 15-20-letnie. Oba z niewypalonym luminoforem i dobrą konwergencją kolorów, ale mają ten problem, że pewnego dnia coś się w środku popsuło i obraz nagle pociemniał; nawet przy kontraście i jasności ustawionymi na 100% obraz jest za ciemny. Mnie one są niepotrzebne i chętnie się bym ich pozbył, ale wolałbym się upewnić zanim wyrzucę:
1. Czy komuś z tutejszych pasjonatów potrzebne są jeszcze monitory CRT, np. do jakichś retro celów?
2. Czy taki rodzaj awarii da się samodzielnie naprawić?

Jeśli ktoś widzi w tym sens, to chętnie mu oddam sprzęt za darmochę, pod warunkiem osobistego odbioru z Warszawy.

Te monitory to SyncMastery 750S i 797MB.

77

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

Zrób breakpointa wcześniej, na zapisie do DMACTL, który wyłącza DMA - punkt 4. z mojego posta. Wówczas wywołaj .dlhistory, i zobaczysz jak wyglądała historia displaylisty tuż przed wyłączeniem DMA. Istotnie DMA jest wyłączane w trakcie wykonywania rozkazu C5.

Wersja od Strykera, z tego co widzę, jest pod względem kodu identyczna, tzn. też zawiera ten błąd polegający na włączeniu na chwilę DMA dla DL (punkty 2-4 z mojego posta). Jedyna różnica jest w procedurze ładującej, która jest zsynchronizowana z ekranem w inny sposób. W efekcie skok to procedury dekompresji (tj. pod adres $2600) jest wykonywany w innej linii ekranu niż w wersji Duddiego. W konsekwencji wszystkie pozostałe zdarzenia również następują w innych liniach ekranu. W efekcie w momencie wyłączenia DMA (punkt 4) w buforze ANTIC-a znajduje się inny bajt, który ma wyłączoną flagę DLI. Dzięki temu gra przypadkiem uruchamia się poprawnie.

mono napisał/a:

Oczywiście zaufałem Altirrze, że poprawnie emuluje zachowanie ANTIC-a, ale bazując na tym zaufaniu zrobiłem patcha:

03c0: 41 c0 03
d402: c0 03

który ustawia pustą dlistę jeszcze przed uruchomieniem programu dekompresującego i wszystko działa, bo żadne przerwanie DLI nie jest wtedy uruchamiane.

Prostsza poprawka wymaga zmiany jednego bajtu pod adresem $899, żeby naprawić faktyczny błąd:

0898: A9 22             LDA #$22 -> LDA #$00
089A: 8D 2F 02          STA SDMCTL
089D: 8D 00 D4          STA DMACTL

Dzięki temu nie ma niepotrzebnego włączania DMA i problem z głowy.

Ciekawostka: loader w wersji Duddiego zawiera ciąg tekstowy "CDC2,(C) L.K.APM '93" (jest on ładowany pod adres $46c). LK APM to autorzy "Władcy" i obu części "Najemnika".

78

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

Fox napisał/a:

Jak obliczyłeś „+30%” ?

Wziął wprost z Atariki.

xxl napisał/a:

mozemy wyswietlac 4kb danych

Moment, przy wyłączonym DMA ANTIC niczego nie będzie czytał z pamięci, więc co najwyżej wyswietlisz 240 razy tę samą linię. Nie?

79

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

@Mono: Gdy trwa dekompresja, ustaw sobie breakpointy na zapisie do DMACTL, NMIEN i SDMCTL, tak będzie najprościej.

@Stryker:  Jeśli nie byłeś pierwszym właścicielem kasety, to jest możliwe że ktoś na oryginalnej kasecie zapisał sobie wersję zcrackowaną - choćby dlatego że oryginalna nie działała. Spotkałem się z takim przypadkiem.

Z drugiej strony, w Mirage jak najbardziej używali Pirat Copy. Moja oryginalna kaseta z grą Ship (1. właściciel!) ma właśnie loader z Pirat Copy, który w scrollu wyświetla jakiś copyright by Mirage czy coś w tym stylu. (Dump leży na AtariOnline jakby co.) Więc może i Twój Rockman to też oryginał. Nie miałbym wątpliwości gdyby nie ten Robert i Piotr.

Przydałoby się więcej egzemplarzy kasety do weryfikacji. Ma ktoś, coś?

80

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

mono napisał/a:

Podczas ładowania programu pojawia się czołówka z informacjami o grze i wydawcy - wszystko w trybie 2 bez przerwań DLI.
Po zakończeniu ładowania gry wyłączane są przerwania NMI i do DMACTL i DMACTLS wpisywane jest 0 (przy synchronizacji z RTCLOK, a więc ANTIC jest poza ekranem i maluje pustą linię) - czyli blokowane jest DMA dla ANTIC-a na dlistę i sprajty, ekran jest zgaszony.
Następnie rozpakowywana jest gra i w miejscu gdzie znajdowała się dotąd dlista są bajty: $00 $E8 czyli pusta linia bez przerwań, oraz linia trybu 8 (3 BASIC) z włączonymi scrollami i DLI.
DMACTL ciągle zawiera 0, DLPTR wskazuje na wymienione bajty.
Następnie odblokowywane są przerwania NMI.

I po chwili mniej więcej w linii 23 następuje strzał czyli zgłaszane jest przerwanie DLI (!). Dlaczego?

Sekwencja jest w istocie nieco inna. Po rozpakowaniu gry następuje:
1. Odblokowanie przerwania VBI ($0892),
2. Zapis $22 do SDMCTL i DMACTL, co natychmiast włącza DMA dla Display List ($0898),
3. Kilka cykli później - zapis $00 do SDMCTL. Oznacz to, że DMA dla DL jest wyłączane nie od razu, ale podczas obsługi następnego przerwania VBI.
4. Potem program czeka 2 ramki ($11FC). W pierwszej wyświetlana jest "śmieciowa" displaylista, po czym w przerwaniu VBI SDMCTL jest przepisywany do DMACTL, co wyłącza DL.
5. Wyłączenie przerwania VBI ($1209).
6. Potem kilkadziesiąt ramek spokoju, po czym - włączenie przerwania VBI ($12F7), a kilka ramek później także DLI ($1416).
7. Po czym następuje przerwanie DLI, mimo że DMA dla displaylisty jest nadal wyłączone.
8. Procedura obsługi przerwania DLI włącza DMA dla DL ($1813). To powoduje rozpoczęcie wyświetlania "smieciowej" displaylisty, a w konsekwencji kaskadę przerwań DLI, która wysypuje system.

Kluczowe jest tu włączenie DMA dla DL między punktami 2 a 4. Gdy OS wyłącza DMA dla DL (p. 4), na ekranie właśnie wyświetlana była "śmieciowa" displaylista. Z całą pewnością wyświetlaną w tej chwili linią nie było JVB, tylko jakiś losowy wiersz z włączonym DLI. W momencie wyłączania DMA dla DL ten rozkaz pozostał zapamiętany w buforze ANTIC-a, więc  gdy później w p. 6 włączane są DLI, ów zapamiętany rozkaz jest przez ANTIC-a wykonany. (Jak wiadomo, wyłączenie DMA dla DL nie tyle wyłącza wykonywanie displaylisty, co tylko wyłącza jej odczyt z RAM.)

Wygląda na to, że rozpoczęcie tej sekwencji zdarzeń jest zsynchronizowane z przerwaniem VBI, więc jest w 100% powtarzalne - gra nigdy nie uruchamia się poprawnie. Stąd prośba do Was wszystkich - jeśli posiadacie oryginalne wydanie kasetowej wersji Rockmana
sprzed lat, które działa, dajcie znać - chciałbym je porównać z tym wadliwym.

EDIT:

stryker napisał/a:

Na cas archive masz 3 wersje

To chyba jest piracka modyfikacja. Jak sam zauważyeś, podczas ładowania wyświetla się typowy dla "Pirat Copy" ekran ładowania z imionami dwóch crackerów.

pajero napisał/a:

krótki, jak nie kupisz toś "krutki"

Pajero, ach, Pajero,
Nie kupię, bom jest sknerą.

82

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

Nie wiem nic o tym formacie, ponad to co da się wygóglać, czyli kilka artykułów w PC Magazine z lat 1987-88.
EDIT: mail będzie wieczorem jak siądę do PC.

83

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

Gwoli ścisłości, ten format to "Verbatim 12MB Internal Subsystem".

84

(5 odpowiedzi, napisanych Programowanie - 8 bit)

Tu jest porządny artykuł w temacie.

85

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

8,5 kg kaset dotarło do celu, rozpoczynam zgrywanie.

86

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

Grzegorz_29_, czy dostałeś mój email wysłany przez forum 23 stycznia?

87

(26 odpowiedzi, napisanych Programowanie - 8 bit)

drac030 napisał/a:

Czemu niby mam "się uspokajać"? Topik jest na poziomie przedszkola (...)

A co to jest, forum tylko dla elyty, na którym można poruszać wyłącznie tematy na poziomie elytarnym? W odróźnieniu od Ciebie sam też jestem przedszkolakiem, więc staram się poradzić koledze tak jak umiem. Sam też się czegoś nowego od xxla dowiedziałem. Chciałbym więc mieć możliwość dalszego prowadzenia tej korzystnej wymiany informacji, bez jakiegoś buca wpiep* się z "żenua, dely weź to skasuj". Więc może znajdź sobie jakieś zajęcie na Twoim poziomie?

MM [dely]: proszę odnosić się wyłącznie do tematu wątku i nie kontynuować OT, ponieważ zaraz skończy się bijatyką.

88

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

Tak tak, dziś Ci odpisałem.

89

(26 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

10 gr.0:poke 703,4
20 ?"test"
30 ?#6;"a";:g.30

to wywola zwieche

Zgadza się, z powodu ww. skaszanienia DL przez procedurę rozsuwającą wiersze. Ale na to jest remedium jak sam już wiesz, "15 poke 87,12"


xxl napisał/a:

zamien linie 30
30 ?#6;"a":g.30

to nadpisze zawartosc drugiego okna...

Zwróć uwagę, że "zwykły" tryb 12 z oknem tekstowym też pozwala pisać na #6 do wierszy 20..23 i wysypuje się dopiero po dojściu do wiersza 24. Różnica jest taka, że zapisany tekst trafia do obszaru pamięci niewyświetlanego na ekranie, a nie do pola tekstowego. Skutek w każdym razie jest taki, że szanujący się program i tak sam musi zadbać, aby nie pisać na #6 poza wiersz 19. Więc skoro program musi o to dbać, to do wymienionego przez Ciebie nadpisania i tak nie będzie dochodzić.

xxl napisał/a:

albo otwieramy tryb 12+16+32 nastepnie:

Chyba bez +16, skoro z oknem tekstowym?

90

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

Grzegorzu, kiedyś przesłałeś mi trochę swoich nagrań i skanów, wszystko co wtedy dostałem trafiło już do bazy A8Preservation. Podeślij mi listę kaset, porównam i dam znać, co by się przydało zgrać.

91

(26 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

niestety ingerencja w komorke 703 nie zalatwia sprawy co bylo juz wyjasniane. chociaby mamy jeden zestaw wspolrzednych dla gornej i dolnej czesci, jesli zaczniemy pisac do czesci gornej to zajdzie interakcja z czescia dolna.

rozwiazaniem problemu jest otwarcie osobnych kanalow dla gornej i dolnej czesci. aby obydwa okna byly niezalezne. obydwa okna maja byc w gr.0. :-)

rozumiem umiesz tak posluzyc sie OS ze bedziesz umial to wykonac :-) no wlasnie ;-)

Nocoty. GRAPHICS 0:POKE 703,4 daje ci 2 kanały: #6 dla ekranu, #0 dla okna. Współrzędne dla ekranu są w ROWCRS/COLCRS, a dla okna w TXTROW/TXTCOL. Dokładnie jak w każdym innym trybie z oknem tekstowym.

Wszelako: ten "tryb" nie jest tożsamy z trybem 12 ze zmienioną DL. Po pierwsze, trzeba jeszcze wyłączyć kursor żeby podczas pisania na #6 nie zostawały śmieci. Po drugie, przy pisaniu na #6 nie wolno doprowadzić do przeskoku kursora do następnego wiersza ekranowego, bo powoduje to uruchomienie procedury przesuwającej resztę zawartości ekranu w dół, co skutkuje zniszczeniem DL (w trybach innych niż 0 przesuw w dół nie zachodzi, i wszystko działa prawidłowo).

drac030 napisał/a:

Dely, ponawiam prośbę, skasuj tę żenadę.

Weź się wreszcie uspokój.

92

(26 odpowiedzi, napisanych Programowanie - 8 bit)

!!!

93

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

Nie ma. Całe archiwum jest co jakiś czas publikowane przez Farba w formie torrenta w tym wątku (ostatnie jest z sierpnia br.). Archiwum zawiera tylko dumpy nośników (w przypadku kaset ze ścieżką dźwiękową również pliki dźwiękowe), bez skanów - Farb póki co nie zaplanował jak ma wyglądać dystrybucja pozostałych materiałów.

94

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

A więc tak, A8CAS konwertuje wszystko, co nie jest w turbo.

W "Dump details" jest zaznaczone, czy dane nagranie jest "verified". Np. w Robbo wersji "Alternate 1", strona A jest zweryfikowana a strona B nie.

Możesz przesłać mi wszystkie swoje oryginały. Najwyżej ich analiza dłużej potrwa.

95

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

uicr0Bee napisał/a:

W ZG nie znam nikogo z naszej 'sekty' :) więc marne szanse.

To może chociaż znasz w ZG kogoś z magnetofonem :-) Nieważne. Ślij pan taśmy, poradzę sobie.

uicr0Bee napisał/a:

Dostałem też ofertę na priv, od osoby która ma już setki własnych dumpów i oferuje porównanie czy nie ma w nich tego co ja mam do zrobienia. Może więc lista się zawęzi.

Obecnie prym w kwestii archiwizacji kaset wiedzie nie Atarimania, tylko projekt a8preservation.com (czyli Farb z AtariAge). Tam również możesz sprawdzić, które kasety już są zarchiwizowane. Aczkolwiek niedługo przybędzie tam trochę tytułów, bo będę publikował kolekcję od FUJI-ego.

ALE! Nawet jeśli Ci wyjdzie że część z tytułów została już zgrana, to i tak warto zgrać wszystkie Twoje egzemplarze. Powody są 2:
- do zweryfikowania poprawności pliku CAS wypada mieć co najmniej 2 zgrane kopie,
- można w ten sposób przypadkiem odnaleźć wersję programu odmienną od już znanej.

uicr0Bee napisał/a:

Acha, mam też odłożonych parę kaset w zestawami z różnych polskich "wypożyczalni", z nietypowymi loaderami, scroll-ami z reklamami, itp. i zabezpieczeniami przed zwykłymi kopierami. Czy wav2cas potrafi to zdumpować?

WAV2CAS, to ktoś tego jeszcze używa? Mamy obecnie lepsze narzędzia, radzą sobie z zabezpieczeniami.

96

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

Ja chętnie, jeśli nie zgłosi się ktoś z Zielonej Góry. Będę mógł się tym zająć po Nowym Roku, a może i przed.

Rozumiem że nie masz możliwości żeby samemu wykonać pierwszy krok, tj. zgranie do WAV? Logistycznie byłoby wtedy dużo prościej. No i zgranie do WAV to jednak prostsza operacja od poprawnego przekonwertowania do CAS.

97

(5 odpowiedzi, napisanych Emulacja - 8bit)

swego czasu przygotowałem na swoje potrzeby instrukcję krok po kroku, oto ona:

98

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

Na AtariAge przed dwoma tygodniami była rozmowa na podobny temat, została udostępniona działająca wersja Happy Warp Speed 7.1 Software Disk. Nie znam się, ale może tego właśnie szukasz?

99

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

Może z sygnałem jest wszystko OK? Nowsze telewizory mają cyfrową korekcję ostrości, która też może powodować takie cienie. Jak ma w telewizorze jakieś "sharpness", to niech zredukuje do minimum.

100

(3 odpowiedzi, napisanych Bałagan)

Zobacz w Atari 8-bit FAQ, szukaj pod CX481, CX483 i KX7101.