251

(8 odpowiedzi, napisanych Emulacja - 8bit)

Zamiast odpowiedzi - a czemu nie przesiądziesz się na oficjalny port Atari800? Droid800 nie jest już rozwijany, bo autor stwierdził że oficjalny jest lepszy. Co prawda Google zdjęło oba emulatory z marketu, ale zobacz post 4.

252

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

Tak, tak ma być. a8cas-convert nie obsługuje Turbo.

253

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

humanoid napisał/a:

Czyli: jeśli mamy więcej wavów niż 1, to używam buldozera do momentu kiedy wszystkie mają błąd w tym samym miejscu.(np.błąd jest w 180 bloku, a gra ma 200) Zgrywam z buldozera bloki od 1-179 (po zgraniu ostatni blok jest pusty czyli tu 180), a następnie w audacity wycinam uszkodzony blok(180 - z wav gdzie jest błąd), otwieram go w mago by mieć podgląd hex. Kolejnym krokiem jest blok zastępczy, np. wgrywam do hackera loader"!", zmieniam drugi blok (hex 0080-0100) wpisując hex(int) z mago. Następnie z hackera zgrywam do wava, wycinam z loadera 2 blok( w audacity) i zamieniam go z uszkodzonym blokiem(180), jeśli bloków uszkodzonych jest więcej to powtarzam zabawę.

O ile rozumiem (a nie jestem pewien, bo ogólnie Twoje wypowiedzi są dla mnie dość zawiłe), to wcale nie naprawiasz uszkodzonych bloków (bo nigdy nie dochodzi do poprawnego odczytania ich przez MagoTrans), a jedynie zmieniasz sumę kontrolną w uszkodzonych blokach (generuje ją dla Ciebie Hacker), aby wczytywały się bez zgłaszania błędu. Wątpię, czy rzeczywiście jest to cel, który chcesz osiągnąć (taśma nadal zawiera niepoprawne dane); poza tym jest prostszy sposób na taką "naprawę". Ostatnia liczba w wierszu "data" pliku HEX to suma kontrolna wyliczona z rekordu przez MagoTrans, jest ona zawsze poprawna. Wystarczy zmienić sumę kontrolną odczytaną (przedostatnia liczba w wierszu) w każdym uszkodzonym rekordzie na tą wyliczoną, aby "naprawić" rekord, a następnie przekonwertować HEX->CAS->WAV - będzie ten sam efekt.

humanoid napisał/a:

Wybacz, mam problem z odpaleniem, by przetestować.
Możesz mnie nakierować?

a i jeszcze coś - jeśli wav nie zawiera żadnego błędu(nawet tego ukrytego) to mago robi dobrego casa - działa w Altiri i Atari800-a8cas.

A to właśnie przykład wypowiedzi zawiłej i niezrozumiałej. Piszę to w dobrej wierze, bo mam wrażenie że nie starasz się zadawać pytań w sposób umożliwiający odpowiedź na nie.
1. Nie sprecyzowałeś, jaki konkretnie masz "problem z odpaleniem", w którym momencie, po wykonaniu jakich kroków.
2. Nie napisałeś, czym się różni błąd "ukryty" od innych - nie wiadomo jak to rozumieć.

CAS2CAS to program DOS-owy, możesz go sobie odpalić pod DOSBox-em, ale jest on bezużyteczny jeśli w każdym wytworzonym przez Ciebie pliku CAS dany rekord (180. w powyższym przykładzie) zawsze jest uszkodzony.

254

(10 odpowiedzi, napisanych Emulacja - 8bit)

Jakkolwiek ją ustawisz, zmieścisz się w marginesie błędu wyznaczonym przez definicję słowa "oryginał" :-) Innymi słowy, wiadomo że każde Atari generuje odrobinkę inne kolory (w szczególności moje generuje kolory bliższe v7 niż Jakub.act), więc co się przejmujesz.

255

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

1. Odpuść sobie, MagoTrans (a dokładniej WAV2CAS, z którego MagoTrans korzysta) po prostu ma błędy. Używaj zamiast niego a8cas-convert z pakietu a8cas-tools.
Atari800-a8cas i a8cas-convert są oparte na tej samej procedyrze odczytu taśmy, więc zasadniczo jeśli dany WAV poprawnie się wczytuje w Atari800-a8cas, to a8cas-convert będzie potrafił wytworzyć z niego poprawnego CAS-a.
2. Stary Atari800WinPLus miał mniej dokładną emulację magnetofonu, oraz więcej błędów w obsłudze CAS-ów; dzięki temu np. z sukcesem ładował CAS-y z niepoprawnie zapisaną długością początkowego pisku (przez to do dziś po necie krąży sporo takich błędnych CAS-ów). Ale jeśli CAS nie działa w 4.1 lub w Altirrze, to jest to zdecydowanie wina CAS-a, nie emulatora.

256

(10 odpowiedzi, napisanych Emulacja - 8bit)

Raczej bym polecał dostrojenie palety aby wyglądała jak Twoje prawdziwe Atari, bo chyba to chcesz osiągnąć?

257

(10 odpowiedzi, napisanych Emulacja - 8bit)

atari classic napisał/a:

Natomiast, jeżeli w v7 jest ta sama paleta co w v6 to znaczy, że jest zmodyfikowana,

Patrz wyżej, w v7 paleta nie jest taka sama.

atari classic napisał/a:

natomiast w najnowszej wersji, czyli w v8 jest taka jak w v7.

Tak, v8 wciąż korzysta z mojej felernej generacji palety.

atari classic napisał/a:

Natomiast ręczna regulacja przed odpaleniem każdego programu to raczej masochistyczne zajęcie.

To on tych ustawień nigdzie nie zapisuje? Parametry da się tak ustawić, żeby paleta była bardzo podobna do Jakub.act, ale jak ustawienia nie są zapisywane to faktycznie trochę bez sensu.

258

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

Przypadek 1:
a) WYŁĄCZYĆ Emulator Configuration->SIO patch for fast disk access
b) załadować ulubiony program kopiujący
c) Wybrać Tape Management->C: i załadować źródłowy plik WAV. Ewentualnie jeszcze przewinąć plik do odpowiedniego miejsca (opcja Position)
d) W programie kopiującym uruchomić odczyt z taśmy.
e) gdy ładowanie się zakończy, utworzyć nową taśmę (Tape Management->Make blank tape). Wybrać typ CAS, podać nazwę nowego pliku. Zauważysz, że po utworzeniu nowej taśmy opcja "Record" przełączy się automatycznie na "tak".
f) W programie kopiującym uruchomić zapis na taśmę.

Przypadek 2: tak samo tylko w kroku e) wybierasz typ WAV.

humanoid napisał/a:

- nie wyciętym tylko uszkodzonym, - oczywiście jeśli się to da.

Nie da się, bo próba wczytania uszkodzonego rekordu zakończy się błędem.

humanoid napisał/a:

Wszystko może się wydać głupie co chcę zrobić (np. wav do wav), ale tak się uczę.

Ano właśnie, jaki masz cel w konwersji WAV->WAV? Wyłącznie dla frajdy?

259

(10 odpowiedzi, napisanych Emulacja - 8bit)

W v6 też jest Jakub.act.

Przypomniało mi się. Autor emulatora wykorzystał w v7 kawałek mojego kodu dodającego w Atari800 generowanie osobnych palet w systemach PAL i NTSC na podstawie parametrów takich jasność, kontrast, nasycenie itd. Generator palety PAL był wówczas jeszcze niezbyt dokładny, a na dodatek w GUI nie były dostępne opcje regulacji.

Czyli poprawka - w v7 paleta nie jest oparta na żadnym pliku .act.

260

(10 odpowiedzi, napisanych Emulacja - 8bit)

Jest on oparty na Atari800 2.0.3 - z tego co widzę w źródłach, domyślna paleta w tej wersji jest identyczna z Jakub.act.

261

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

humanoid napisał/a:

Chciałbym mieć jeden idealny emu który czyta między innymi z wav( to jest dla mnie najważniejsze), bo zauważyłem, że cas przerobiony z wav nie zawsze działa (coś się tam źle zapisuje).

Z pewnością tak jest, jak się używa MagoTransa. Pliki CAS/HEX wytworzone przez a8cas-convert zawierają 100% danych ze źródłowego WAV-a - nawet gdy te dane nie zostaną rozpoznane jako poprawny rekord. Przy czym takie CAS-y są obsługiwane tylko przez Atari800-a8cas, pod innymi emulatorami ich nie wczytasz.

humanoid napisał/a:

Atari800-a8cas do końca jeszcze nie sprawdziłem.

To sprawdź, nie będziesz już musiał wymyślać rozwiązań nieistniejących problemów, typu "zapis przez głośniki w realu". Daj znać jak coś nie będzie działać.

humanoid napisał/a:

Moje założenie jest takie: by coś zmienić i nie mieć problemów trzeba by to robić w atarowskim programie (by uniknąć błędów), jeśli zmieniać coś w heksie windows (np.hex workshop) będą problemy iż sam cas może już być uszkodzony lub zmieniony.

Patrz wyżej: dobrze zrobiony CAS nie może być uszkodzony.

humanoid napisał/a:

Przypuszczam, jeśli wczytać grę uszkodzoną np. bez jednego beep to w hakerze będzie można to poprawić ręcznie i z powrotem zapisać w wav (przez głośniki w realu).

Czy dobrze rozumiem, że chcesz ładować do Hackera taśmę z uprzednio wyciętym uszkodzonym rekordem?

262

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

Ale przecież dźwięk odtwarzany podczas ładowania to jest ten sam sygnał, który masz w źródłowym pliku WAV.

Przestaję rozumieć, co chcesz osiągnąć. Jeśli chcesz naprawić uszkodzone WAV-y, to Altirra Ci nie pomoże, bo nie ma funkcji zapisu. Zapisać WAV-a możesz spod Atari800-a8cas, ale musisz znaleźć sobie jakiś kopier który wczyta i zapisze plik w dogodnym Ci formacie.

Możesz też dokonać konwersji do HEX programem a8cas-convert (który potrafi niektóre uszkodzenia naprawić automatycznie) a potem ręcznie poprawić fragmenty, z którymi automat sobie nie poradził. Trudne, ale wykonalne.

263

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

Altirra w ogóle nie obsługuje zapisu kaset. Jedynie Atari800 to umie, przy czym jedynie Atari800-a8cas umie zapisywać niestandardowe bloki.

264

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

1. Atari800-a8cas (zob. sygnaturka) obsługuje zapis kaset (także niestandardowych bloków).
3. Nie rozumieć.
4. Zamiast Twoich kaset możesz wziąć z Internetu pliki COM/XEX z tymi grami, i przerobić je na CAS za pomocą XEX2CAS.

Spróbuj zamiast MagoTrans użyć a8cas-convert - ten sobie radzi z nietypowymi blokami.

265

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

Takiego obrotu spraw nie brałem pod uwagę.

*szelmowski uśmiech*
Butuje czy nie butuje, ważne żeby AUTORUN.SYS dało się załadować, choćby spod innego egzemplarza DOS-a.

266

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

Fajnie jest - po przepisaniu blittera XEP80 tak, żeby był zgodny ze specyfikacją NS405, udaje mi się zaemulować wygląd ekranu dokładnie jak na Twoim zdjęciu. Problem w tym, że efektem zgodności ze specyfikacją jest zmiana obsługi znaków migających. Zmiana ta mi nieco śmierdzi, toteż chcę zweryfikować, że wszystko zrobiłem dobrze. Mam tu kolejny test dla Ciebie, jeśli masz jeszcze cierpliwość.

10 XIO 20,#1,12,218,"E:"
20 ? CHR$(27);CHR$(255-16);:XIO 20,#1,12,244,"E:"
30 ? CHR$(27);CHR$(255-16-4);:XIO 20,#1,12,245,"E:"
40 ? CHR$(125):POSITION 36,12
50 ? CHR$(216);"S  X";CHR$(30);
60 GOTO 60

Programik wyświetla dwie litery "X" w podwójnej szerokości - lewą w inwersie, prawą normalną. Lewa połówka X-a w inwersie ma włączone miganie, natomiast na lewej połówce X-a normalnego umieszczony został migający kursor. W emulatorze obecnie wygląda to jak na obrazku - lewe połówki obu X-ów migają w tym samym tempie.

Będę wdzięczny jak zweryfikujesz, czy u Ciebie wygląda to w 100% tak samo. Powiedz jeśli są jakiekolwiek różnice, w szczególności:
- czy prędkość migania w obu X-ach jest taka sama? Specyfikacja NS405 jest niejasna, podejrzewam że kursor (tj. prawy X) może migać 2x szybciej niż atrybut "blink", ok. 2x/sek.
- czy w lewym X-ie miga tylko połówka znaku, czy cały? Czy miga sam znak X (czarne piksele) czy tło (białe)?

To już będzie koniec mojej pracy przy XEP-ie. W ROM-ie XEP80 pozostawiono możliwość sterowania wprost rejestrami NS405, co pozwala m.in. na zmianę prędkości transmisji do max. 19200 bps, czy też dowolną zmianę geometrii ekranu (ilość wierszy, ilość kolumn, szerokość/wysokość znaku). Nie ma sensu żebym próbował to emulować póki sam nie mam XEP80.

Zdeasemblowany ROM też załączam.

267

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

No to się trochę pospieszyłem z dzisiejszymi zmianami w Atariki...
trub, a masz gdzieś te wersje GTSYNCa udostępnione?
A poza GTSYNC.COM, czy DOS w wersjach LDW jest identyczny z Indusowskim 2.35I1?

268

(87 odpowiedzi, napisanych Emulacja - 8bit)

laoo/ng napisał/a:

Oryginalny atari800 jako multiplatformowy musi robić wszystko softwarowo, ale port pod windowsa operacje na obrazie (szczególnie takie proste) powinien robić na karcie.

Panie, ale przecież Atari800 multiplatformowo akceleruje grafikę OpenGL-em.

269

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

Bardzo dziękuję za fotkę. Ja akurat spodziewałem się że zmieni się cały ekran, ale nie wydało mi się to istotne. Zdjęcie będzie bardzo pomocne. W ilu CHR$ się pomyliłęś? Mam wrażenie że nie w jednym, ale nie mam pewności.

Z tym nie łapaniem synchronizacji to rzeczywiście jest tak jak napisałeś. Jestem w trakcie deasemblacji ROM-u XEP-a, z tego co już mam wynika że rzeczywiście startuje w trybie "10 linii/wiersz" i dopiero później się przełącza.

Przełączanie PAL/NTSC już jest dodane w emulatorze.

270

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

Jaskier napisał/a:

Niestety obydwie komendy wywołują u mnie zwis kompa na tyle mocny, że zwykłe wciśnięcie reset powoduje zimny start.

Przykro mi to słyszeć. Dziękuję za przetestowanie.

Zmodyfikowałem oryginalny drajwer w taki sposób, aby na komputerze PAL inicjalizował XEP-a w trybie NTSC, a na komputerze NTSC - w trybie PAL. Jest to jedyny test mający szanse zadziałania, jaki mi przychodzi do głowy. Załączam zmodyfikowany sterownik (AUTORUN.SYS) oraz ATR dyskietki systemowej z już podmienionym AUTORUN-em. Jeśli masz możliwość chwilowego zastąpienia oryginalnego AUTORUN-a moim, albo wystartowania XEP-a z mojego ATR-a, to proszę Cię ponownie o przetestowanie - Twój XEP80 powinien tym razem wystartować w NTSC.

Mam też drugą prośbę - załączony program w BASIC-u pokazuje działanie atrybutów "underline" i "block graphics". Nie wiem jaki efekt te atrybuty dają w PAL-u, toteż proszę Cię o odpalenie tego programiku i zrobienie zdjęcia temu, co on wypisze.

10 ? CHR$(125)
20 POSITION 20,11:? CHR$(22);CHR$(14);CHR$(2)
30 POSITION 20,12:? CHR$(169);"X";CHR$(169)
40 POSITION 20,13:? CHR$(7);CHR$(13);CHR$(6)
50 ? CHR$(27);CHR$(255-32);:XIO 20,#1,12,244,"E:"
60 ? CHR$(27);CHR$(255-128);:XIO 20,#1,12,245,"E:"
Jaskier napisał/a:

A co ma za znaczenie co jest w tym mitycznym wierszu 25 skoro znajduje się on około 3cm poniżej dolnego poziomu ekranu?

Nie znam odpowiedzi na tak postawione pytanie.

271

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

Jaskier napisał/a:

No niestety nie mam Sparty.

Za pomocą firmowego drivera i komend XIO też powinno się to dać zrobić. Z XEP80.DOC wynika, że wysłanie do XEP80 komendy "Master Reset" (XIO 22,#1,12,194,"E:") powinno zresetować urządzenie do domyślnego trybu 60Hz; następnie wysłanie komendy "Modify Text to 50 Hz Operation" (XIO 20,#1,12,215,"E:") powinno przęłączyć XEP-a w tryb PAL.

Oczywiście to wszystko hipoteza, nie mam jak tego przetestować.

Jaskier napisał/a:

Na 100% 24 wiersze.

Nadal twierdzę, że nie masz racji, ale chyba wiem dlaczego. Wg XEP80.DOC ostatni wiersz ekranu nie jest normalnie dostępny dla edytora (nie można do niego dotrzeć przez Control+starzałki, nie podlega przewijaniu), ale można na nim pisać skacząc do niego bezpośrednio, np. POSITION 0,24:? "ABCD";:POSITION 0,0. Podejrzewam, że u Ciebie 25. wiersz był zawsze pusty i nie zauważyłeś jego istnienia.

EDIT: W międzyczasie dokopałem się do inną fotkę z PAL-owskiego XEP-a, który też pokazuje 12 skanlinii. Oprócz tego znalazłem u Jera ROM-y XEP80; jeden z nich zawiera zestaw znaków. Definicja każdego znaku składa się z 16 bajtów, z których zawsze tylko 12 pierwszych jest wypełnione. Oznacza to, że linie 11. i 12. znaku nie są duplikatami linii 10., lecz są zczytywane z zestawu znaków (co widać na ww. zdjęciu na przykładzie przecinka).

No dobra, wygląda na to, że XEP80 można przełączać pomiędzy trybami 10/12 linii na znak; informacja jakoby było to 11 linii jest najwyraźniej błędna (zapewne pochodzi ze specyfikacji chipa NS405, gdzie liczba 11 linii/znak jest podana, ale dotyczy czegoś trochę innego).

272

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

Jaskier napisał/a:

Jeżeli faktycznie XEP jest programowo przełączana, to może jest wybór pomiędzy trybami 10-11-12. Czy oprogramowanie które mam do XEP jest różne od wersji amerykańskiej? Może inne oprogramowanie włączy inny tryb?

Sterownik Sparty 4.4x XEP80.SYS obsługuje wybór systemu parametrami /P i /N.

Jaskier napisał/a:

Owszem, linia 11 i 12 są identyczne z 10 w każdym znaku który sprawdzałem. Dziwacznie przez to wyglądają ukośniki.

O, dzięki. Sam się zastanawiałem nad tymi ukośnikami.

Jaskier napisał/a:

Ekran ma 24x80 znaków

Jesteś pewiem? "Wszyscy mówią" że ma 25 wierszy.

Jaskier napisał/a:

Proporcjami ekranu bym się nie przejmował

Wiesz, chodzi o mityczną "wierność emulacji". Regulacja swoją drogą, ale chciałbym wiedzieć jakie ustawienie oznaczyć jako "100%".

273

(87 odpowiedzi, napisanych Emulacja - 8bit)

Ale numer. Rzeczywiście, 12 linii bez wątpnienia, dziękuję za zdjęcie.

To ja dyskusję na temat XEP80 przenoszę do osobnego wątku.

Chciałbym rozwiać wszelkie wątpliwości dotyczące rozdzielczości ekranu w trybie tekstowym XEP80, żeby emulację tegoż w Atari800 uczynić dokładniejszą. Wiadomo, że tryb tekstowy ma 80x25 znaków, a każdy znak ma 7 pikseli szerokości. Jednak na temat wysokości pojedynczego znaku jest wiele sprzecznych danych:
- źródło ze Stanów mówi, że w NTSC ta wysokość to 10 linii; dostępne skrinszoty potwierdzają tę wersję;
- Mathy z Holandii twierdzi, że wysokość w PAL jest 11 linii,
- Znowuż Stephen ze Stanów rzecze, że XEP80 był w tylko jednej wersji, programowo przełączalnej między PAL/NTSC, i że w obu trybach widzi on 10 linii;
- A teraz Jaskier udowadnia ponad wszelką wątpliwość, że w PAL wysokość znaku wynosi 12 linii.

Jak to wszystko pogodzić? Czy rzeczywiście jest tylko jedna wersja XEP80 przełączana programowo? Czy istniała kiedykolwiek wersja XEP-a pokazująca znaki wysokości 11 linii?

Jak w PAL wyglądają znaki, które mają grafikę w dolnych liniach (ramki itp.)? Czy 10. linia znaku jest kopiowana na 11. i 12. linię, czy też jest to bardziej skomplikowane (oznaczałoby to, że wersja PAL ma inny zestaw znaków, zawierający dane dot. 11. i 12. linii)?

I jeszcze - czy ktoś wie jaka jest częstotliwość zegara generującego piksele w XEP80? Bez tej wartości nie mogę poprawnie określić proporcji ekranu.

275

(87 odpowiedzi, napisanych Emulacja - 8bit)

Jaskier napisał/a:

A co do SYNCHRONIZED_SOUND to obecnie badam problem. Chyba tylko port SDL tego używa, ciekawe czemu?

No mówiłem, bo rozdział między "głównym emulatorem" a "funkcjami specyficznymi dla platformy" nie jest tak wyrazisty jakby mógł być.

EDIT:

Jaskier napisał/a:

Z tego wszystkiego posiadam w domu tylko XEP80.

A wiesz że to się świetnie składa :-) Mam do Ciebie prośbę, żebyś sprawdził jaką ilość skanlinii zajmuje jeden znak wyświetlany przez XEP80. Bowiem są sprzeczne źródła, twierdzące raz że ta ilość to 10 linii, innym razem że 11. Stephen w podlinkowanym wątku sprawdził że w trybach NTSC i PAL ta ilość to 10 skanlinii, ale chciałbym żeby zweryfikował to również choć jeden Europejczyk z PAL-owskim komputerem i PAL-owskim telewizorem. Jeślibyś to sprawdził, będę mógł poprawić błąd w Atari800, które wyświetla teraz 11 linii.