101 Ostatnio edytowany przez FUJI (2010-02-22 10:27:35)

Krótki napisał/a:

(...)program w BUT wczytywał się bez widocznych oznak błędu do samego końca, po czym program leciał w krzaki. Zupełnie jak Hacker pod emulatorem.

Zgadza się. Jeśli chodzi o Hackera, to uszkodzenia są w okolicach 1'05.500'' (to łatwe do naprawienia przez wzmocnienie) i znacznie gorsze około 2'28.297''. Siedziałem nad tym trochę i niby udało się uzyskać wszystkie bloki w całości, ale teksty w grze, pomimo że niby działa, są nieczytelne.

Krótki napisał/a:

Liczę na to, że w którymś momencie konwersja do CAS będzie potrafiła przynajmniej pokazywać miejsca, gdzie dane nie są 100% pewne.

Pokazuje, natomiast problemem jest właściwe poprawienie, bez sumy kontrolnej to trudne.

Krótki napisał/a:

Nie rozumiem. Czy chcesz przez to powiedzieć że obrazy WAV które posiadasz są nieprawidłowo zgrane? Zawierają inne dane niż fizyczne kasety?

Sam zgrywam kasety, na dość porządnym deck-u Yamahy. Teraz nie mam czasu, ale trochę póżniej pokażę na obrazku, o co chodzi.

Krótki napisał/a:

A oto i nowa wersja A8CAS.

Ha!, Już się nie mogłem doczekać update-u :). Ja też nie próżnuję. Konwersja turbo działa mi coraz lepiej. Dodałem obsługę plików HEX, w związku z tym jedna propozycja: ponieważ w pliku cas może być wiele bloków FUJI, to zamiast umieszczać nazwę w drugiej linii pliku hex może lepiej zapisywać w nim bloki FUJi tak jak inne ?
Są też początki konwersji do plików binarnych (np. xex). W drugą stronę jeszcze nie, ale nie będzie to trudne, niedługo dodam więc funkcjonalność Turgena.

Krótki napisał/a:

obsługa SIO patcha do wczytywania i zapisu kaset

Działa, ale niestety jeszcze nie za dobrze. Próbowałem wczytać przekonwertowane spyvsspy z tpp, niby się wczytuje, ale na końcu jest crash. Bez sio patch-a działa.

Krótki napisał/a:

FUJI, weź zobacz czy nowa wersja działa z blokami "data" długości 0.

Jest OK. Dzięki za poprawkę, muszę dodać, że spodziewałem się pytania w stylu "a po co bloki data z zerową długością" ;). Generalnie takie bloki nie są potrzebne, można je konsolidować z następnymi blokami data, tyle że jeszcze tego nie zaimplementowałem i bug wyszedł przypadkiem.

Aha, potwierdziłem na prawdziwym sprzęcie, że polaryzacja sygnału nagrań AST (tudzież UM i ATT) rzeczywiście nie ma znaczenia.

102

FUJI napisał/a:

Pokazuje, natomiast problemem jest właściwe poprawienie, bez sumy kontrolnej to trudne.

!00% wykrywalność błędów by wystarczyła :)

FUJI napisał/a:

Dodałem obsługę plików HEX, w związku z tym jedna propozycja: ponieważ w pliku cas może być wiele bloków FUJI, to zamiast umieszczać nazwę w drugiej linii pliku hex może lepiej zapisywać w nim bloki FUJi tak jak inne ?

Racja. Niech blok będzie wyglądał tak: FUJI <nazwa>
Sądzę że nie ma potrzeby zapisywania długości bloku, tak jak w blokach "data" / "fsk ". Prawdę mówiąc, noszę się z zamiarem usunięcia zapisywania długości także z bloków "data"/"fsk ", i przeniesienia tej wartości do komentarza na końcu linii (po ";"). Dzięki temu nie trzeba będzie pamiętać o zmianie długości bloku w przypadku ręcznego poprawiania HEX-a. Masz coś przeciwko?

FUJI napisał/a:

Działa, ale niestety jeszcze nie za dobrze. Próbowałem wczytać przekonwertowane spyvsspy z tpp, niby się wczytuje, ale na końcu jest crash. Bez sio patch-a działa.

Jak działa nie gorzej niż w "oryginalnym" Atari800, to jest dobrze. Może Spy vs Spy ma custom loader albo jakieś zabezpieczenie. Widziałem w Green Beret takie coś: po wczytaniu program sprawdza wartość RTCLOCK - jeśli jest za mała (gra z patchem wczytuje się parę sekund, więc wartość wychodzi za mała), to wpada w nieskończoną pętlę. Moze w SVS też coś namieszali - w każdym razie dzięki.

A nawiasem mówiąc, Spy vs Spy to błędny dump - na końcu rekordów kończących części nagrania, znajdują się nadmiarowe śmieci. Nie przeszkadza to we wczytywaniu, ale ja jestem pedant. Dely, załączam poprawioną wersję CAS-a:
http://students.mimuw.edu.pl/~tk197881/ … vs_spy.cas
Od dawna leży tam też poprawione Kissin' Kousins (wersja w TPP ma błędy):
http://students.mimuw.edu.pl/~tk197881/ … ousins.cas

FUJI napisał/a:

Generalnie takie bloki nie są potrzebne

Przydają się, żeby zapisać IRG dłuższe niż 65,535 sek.

FUJI napisał/a:

Aha, potwierdziłem na prawdziwym sprzęcie, że polaryzacja sygnału nagrań AST (tudzież UM i ATT) rzeczywiście nie ma znaczenia.

Masz magnet przerobiony na AST? Rób foty do Atariki! :)

Ale jak wczytywałem na emulatorze, to np. Tiger Attack wczytywał się z błędami przy polaryzacji "najpierw zbocze opadające, potem rosnące". Rozumiem że to błąd emulacji?

A8CAS - narzędzie do 100% archiwizacji kaset Atari

103

Krótki napisał/a:

!00% wykrywalność błędów by wystarczyła :)

Hmmm... zależy komu :P.

Krótki napisał/a:

Racja. Niech blok będzie wyglądał tak: FUJI <nazwa>

Czytasz mi w myślach. Zresztą - to się samo narzuca.

Krótki napisał/a:

Prawdę mówiąc, noszę się z zamiarem usunięcia zapisywania długości także z bloków "data"/"fsk ", i przeniesienia tej wartości do komentarza na końcu linii (po ";").

No w sumie można sobie łatwo policzyć, ile jest bajtów. Więc przeciwko nic nie mam.

Krótki napisał/a:

Jak działa nie gorzej niż w "oryginalnym" Atari800, to jest dobrze.

Zwracam honor. Działa nie gorzej, a nawet lepiej, bo "oryginał" nie toleruje bloków 'data' z zerową długością :). Testowałem na tej grze z lenistwa, bo za jednym zamachem sprawdzałem właśnie bloki o zerowej długości.  Oczywiście nie używałem pliku cas z tpp, tylko przekonwertowany od nowa.
Tak przy okazji - jak to jest z legalnością publicznego udostępniania tych wszystkich programów ? Nikt się raczej w tych czasach nie będzie upominał o kasę za rozpowszechnianie, ale jak to formalnie wygląda, wie ktoś ? Z tego co pamiętam to w Polsce prawo autorskie chroni (lub chroniło) prawa autora chyba jakoś tak przez 70 lat...

Krótki napisał/a:

Masz magnet przerobiony na AST? Rób foty do Atariki! :)

A po co ? Wygląda jak każde XC12 :D.
No dobra, chodzi pewnie o elektronikę. Jak będę miał czym, to zrobię zdjęcia, ale nie wiem, kiedy to będzie.

Krótki napisał/a:

Ale jak wczytywałem na emulatorze, to np. Tiger Attack wczytywał się z błędami przy polaryzacji "najpierw zbocze opadające, potem rosnące".

Rzeczywiście. Jutro postaram się to jakoś sprawdzić w naturze.

Wracając do Turbo Rom-u. Jak przygotowywałem poniższy obrazek, to wyszło mi, że miałem do tej pory strasznego pecha i trafiałem na najgorsze przypadki. Po zgraniu paru innych fragmentów, a szczególnie świeżo nagranego, okazało się, że ogólnie nie jest aż tak źle, choć problem z przynajmniej niektórymi nagraniami pozostaje. Na poniższym obrazku (click) przypadki ekstremalne - najgorszy i "idealny", na różnych tasiemkach występują też stany pośrednie. W górnej części jest zsamplowany oryginał. W dolnej części ten sam fragment po skopiowaniu przy pomocy komputera i kopiera Turbo Rom na inną taśmę i ponownym zsamplowaniu w tych samych warunkach. Magnetofon podpięty do Atari wczytuje bez zająknięcia zarówno jedno jak i drugie. Bezbłędna obróbka tego górnego wydaje się niemożliwa (w tej postaci), dolnego raczej nie przysporzy żadnych problemów.
http://www.arus.net.pl/FUJI/a8cas-util/turborom-thumb.png
Jestem ciekawy, jak komuś innemu wyszła by próba zgrania do pliku audio innego materiału w formacie Turbo Rom na innym sprzęcie. Jak by ktoś mógł coś takiego zrobić, to proszę o udostępnienie dumpów.

104 Ostatnio edytowany przez seban (2010-02-23 09:23:52)

Co do moich doświadczeń z TurboROM... ten system używa dość krótkich impulsów aby uzyskać dużą szybkość transmisji... pasmo które musi przenieść magnetofon jest spore. To co widać w przypadku górnej próbki to problem z pasmem magnetofonu, wysokie częstotliwości nie są prawidłowo przenoszone... problemem jest złe ustawienie głowicy... Turbo-ROM jest na to cholernie wrażliwy. Obejrzyj zgrane nagrania w domenie częstotliwości (spectal view) zobaczysz że problemem było złe ustawienie głowicy i brak przenoszenia wysokich częstotliwości...

Nie wiem jak dokonujesz dumpów z taśm, jakiś deck? Bo o ile możesz liczyć na prawidłowe ustawienie głowicy w jakimś fabrycznym decku, to nie masz pewności co do ustawienia głowicy w magnetofonie który nagrywał kasetę w systemie Turbo-ROM.


Wyglądu AST i tego co jest w środku:

http://atariarea.krap.pl/forum/viewtopi … 841#p76841
http://atariarea.krap.pl/forum/viewtopi … 072#p77072

pozdrawiam
Seban

105 Ostatnio edytowany przez FUJI (2010-02-23 21:16:09)

Podejrzenia są rzeczywiście takie, że coś jest nie tak z nagraniem, ale:
- głowice w magnetofonie turbo i deck-u na którym sampluję (Yamaha KX-W482) wyglądają na zgodnie ustawione, o czym świadczy dolne nagranie
- magnetofon turbo bez problemów wczytuje górne nagranie, a zsamplowane jest niewyraźne i w zasadzie nie powinno się wczytywać
- nie wiem czemu obciąłem podziałkę z czasem - nie widać tego, ale częstotliwość dla tych węższych impulsów wynosi max. 6kHz, czyli niewiele więcej niż dla sygnału 'mark' w sygnale fsk, nie jest to więc częstotliwość, aż tak bardzo wysoka

Myślę, że warto tu przytoczyć wzmiankę, że po upadku współpracy między firmami Plus i Mapasoft wyniknęły problemy z przeróbkami magnetofonów i masowym przegrywaniem kaset na dwukasetowcach w firmie Mapasoft, więc zostały wprowadzone "drobne różnice" w standardach zapisu. Może więc być tak, że sygnał celowo jest "zniekształcony" i trzeba wiedzieć, jak go poprawnie odczytać.

Uprzedzę propozycję fotografowania wnętrza magnetofonu - nie otworzę go, bo stracę gwarancję ;). Piękna plomba jest założona od prawie 20 lat i szkoda ją zdzierać.

EDIT:
Tiger Attack (AST) - flac nagrany na taśmę zachowuje się tak jak pod emulatorem - w postaci oryginalnej wczytuje się za każdym razem, odwrócony albo się wiesza, albo nie wczytuje do końca, albo nawet pierwszy blok nie chce się wczytać. Natomiast po przerobieniu na CAS i ponownie na audio wczytuje się przy obu polaryzacjach i na emulatorze i na magnetofonie. Gratuluję zatem wierności emulacji :). Trzeba jednak pamiętać, że nagranie oryginalnego dumpa na taśmę nie jest miarodajne, np. próbowałem też z Joe Blade i w ogóle nie chciało mi się wczytywać w żaden sposób.

106

Krótki napisał/a:

A nawiasem mówiąc, Spy vs Spy to błędny dump - na końcu rekordów kończących części nagrania, znajdują się nadmiarowe śmieci. Nie przeszkadza to we wczytywaniu, ale ja jestem pedant. Dely, załączam poprawioną wersję CAS-a:

Dziękóweczka, już podmieniłem pliki.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

107 Ostatnio edytowany przez FUJI (2010-02-28 21:26:25)

Ha! Okazuje się że najlepsze są rozwiązania najprostsze. Wystarczy nagranie Turbo Rom przepuścić przez filtry highpass (~1 kHz)  i lowpass (~6 kHz), żeby dostać całkowicie strawną postać. Już używałem filtra lowpass dla niektórych nagrań AST, co podnosiło skuteczność konwersji, jak widać warto tego używać chyba dla wszystkich formatów turbo :). Można też próbować z filtrem bandpass (dla Turbo Rom z centrum w 3.5kHz i z promieniem 2.5kHz).

EDIT:
Ha! Dodając odpowiedni filtr highpass (cutoff 650 Hz) i dopasowując filtr lowpass z rezonansem (cutoff 3920 Hz) udało się bez dodatkowych zabiegów (poza zwykłym wzmocnieniem 4x) przekonwertować Hackera! Działa! -> Hacker PL. :) (po skończeniu ładowania mimo śmieci na ekranie trzeba nacisnąć start).
Po eksperymentach z Turbo Rom podniosłem dla tego formatu cutoff dla filtra highpass do 2600 Hz (ta częstotliwość odpowiada sygnałowi pilotującemu i jest najniższa z używanych).

108 Ostatnio edytowany przez FUJI (2010-03-07 11:27:39)

Znalazłem na forum tutaj dump jednej z wersji cartridge-a Turbo Rom. Przy pomocy atari800 przeanalizowałem procedury odczytu i zapisu, w związku z czym na Atariki są uzupełnione informacje o tym systemie. Dzięki temu udało mi się też wreszcie odpowiednio dostroić konwerter, można się zapoznać z przykładem na stronie z przykładami.

Emulator świetnie obsługuje uidealnione nagrania Turbo Rom, pomimo dużej szybkości transmisji działa bezbłędnie, jak widać zależności czasowe są bardzo wiernie zachowywane.

Dałem sobie siana z zabawą z filtrami dla Turbo Rom (patrz poprzedni post). Niby można coś przez to zyskać, ale niestety dla każdego nagrania trzeba się było mocno namęczyć z dopasowaniem parametrów. Stwierdziłem, że jednak regulacja skosu głowicy jesty łatwiejsza i pewniejsza ;). Widać głowice w magnetofonach komputerowych są bardziej tolerancyjne (czyli mniej dokładne ?). Oczywiście czasem takie filtry pomagają naprawić uszkodzone nagrania (patrz poprzedni post).

Przy okazji chyba wyjaśniła się sprawa z nieczułością AST na odwracanie fazy sygnału. Jeżeli tak jak w przypadku Turbo Rom mierzone są czasy trwania tylko jednego poziomu sygnału, to ponieważ w AST szerokości obu poziomów prawie zawsze są równe, nie ma znaczenia, który wystąpi pierwszy (znaczy czy pierwsze jest zbocze narastające czy opdające).  Oczywiście zdarzają się  wyjątki. W wolnej chwili przeanalizuję procedury AST pod debuggerem atari800 (całkiem przyjemny jest).

Aha, Krótki nie informował o tym tutaj, ale wypuścił parę dni temu wersję 1.0 swojego dzieła :).

109

A tu ciekawostka "w temacie": http://technowinki.onet.pl/wiadomosci/r … tykul.html

110

digisoft napisał/a:

Chciałbym się pochwalić przed szanownym gronem kolegów że udało mi się to co niektórzy mówili że jest niemożliwe, a mianowicie to że z TURGENA wygenerowałem plik wave który wczytuje się pod emulatorem w systemie Turbo Blizzard.

Program , a właściwie plugin nie nadaje się jeszcze do publikacji , ale jak czasu starczy to go dopieszczę.

Dzięki FUJI za natchnienie poprzez Twoją dyskusję z Krótkim na temat Turbo.

To tak na szybko.

Development version TURGEN DEV(8.2) should support Turbo blizzard. It was tested using A8CAS extended emulator and worked fine. It is unknown whether it works on real system. You can download that development
version from here: http://www.baktra.wz.cz/software/turgen/english.html

111

FUJI napisał/a:

Aha, Krótki nie informował o tym tutaj, ale wypuścił parę dni temu wersję 1.0 swojego dzieła :).

A bo nie zrobiłem nic spektakularnego, czym możnaby się pochwalić.

Dziś natomiast wypuściłem wersję 1.1, z dodaną możliwością dostrajania parametrów konwersji WAV->CAS z poziomu wiersza poleceń. Zostało to wymuszone przez jedną wredną kasetkę o nazwie Miecze Valdgira 2. Jest ona zabezpieczona za pomocą rekordów, w których środku zmieniany jest baudrate! Żeby poprawnie obsługiwać takie rekordy, musiałem przepisać na nowo spory kawałek kodu.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

112

Takie pytanko do wszystkich (Fuji, Krótki). Użyszkodnik widny (czyli ja) potrzebuje ciut pomocy. Gdzie znajdę helpa do A800? , bo np. nie mogę wyłączyć FullScreena.

113

DOC/USAGE, sekcja "Keyboard, joystick and other controllers" (szczególnie "SDL keyboard, joystick and other controllers").

A8CAS - narzędzie do 100% archiwizacji kaset Atari

114

Krotki napisał/a:

Zostało to wymuszone przez jedną wredną kasetkę o nazwie Miecze Valdgira 2. Jest ona zabezpieczona za pomocą rekordów, w których środku zmieniany jest baudrate!

No proszę, też niedawno trafiłem na coś takiego, konkretnie kasetową wersję systemu Turbo 2000 (do pobrania z sekcji przykładów na mojej stronie). W tym przypadku wystarczyło zapisanie niestandardowych części w postaci bloków "fsk ", mało eleganckie, ale działa. W przypadku "Mieczy Valdgira 2" coś nie bardzo zadziałało. Siadłem więc również do przepisywania kodu, w pewnym momencie udało mi się dostać nawet lepszy efekt niż Twój (wszystkie niestandardowe bloki w identycznej postaci, długości kolejno 15, 16, 101), ale za to inne tasiemki przestały się konwerować, więc kombinuję dalej. Jak byś mógł udostępnić oryginalnego dumpa to był bym wdzięczny. W zamian ;) udostępnię inną tasiemkę, która też sprawia pewne problemy (obu konwerterom), chociaż w zasadzie wcale nie jest aż taka niezwykła.

Krótki napisał/a:

A właśnie: w bloku "pwms" brakuje informacji, czy logiczna 1 jest wtedy, gdy zbocze sygnału opada, czy gdy się wznosi. Bez tego nie da się z CAS-a odtworzyć oryginalnego WAV-a.

Krótki napisał/a:

Ale w takim razie pojęcia '0' i '1' nie mogą się pojawić w specyfikacji CAS.

Po analizie procedur obsługi turbo (tych z loaderów i kartridży) wydaje mi się, że jednak na potrzeby emulatorów dobrze by było dodać informację (sugestię), jak należy interpretować sygnał, ponieważ w pliku CAS nie ma informacji, jaki konkretnie zapis turbo przechowuje. Do odtworzenia sygnału audio jest to zbędne, ale emulator magnetofonu musi wysyłać bezpośrednio zera i jedynki w odpowiedniej kolejności. Jeżeli się nie pomyliłem, to czasem zbocze opadające wyzwala jedynkę, a czasem zero. Czasem nie ma to znaczenia (np. AST), ale czasem ma. Dodałem więc miejsce na odpowiednią informację w bloku 'pwms' (opis na stronie).
Kontynuując rozmowę o zmianach w HEX - myślę, że ze wszystkich rodzajów bloków dobrze usunąć długość z początku i przenieść do komentarzy - przy ręcznych poprawkach to się daje we znaki, jak się zapomni zmienić. Choć z drugiej strony można po prostu ignorować pierwszą liczbę przy konwersji z HEX na coś innego. Dobrze by było się zdecydować na jednolity format...

baktraaa napisał/a:

Development version TURGEN DEV(8.2) should support Turbo blizzard.

W zamian moje narzędzie wzbogaciło się m.in. o obsługę czeskiego Turbo 2000, po tym jak zgłosił się chętny zza gór... ;)

115 Ostatnio edytowany przez Krótki (2010-04-12 20:23:57)

FUJI napisał/a:

Siadłem więc również do przepisywania kodu, w pewnym momencie udało mi się dostać nawet lepszy efekt niż Twój (wszystkie niestandardowe bloki w identycznej postaci, długości kolejno 15, 16, 101),

Przecież mój dump ma dokładnie takie parametry. Zapewne użyłeś a8cas-convert z domyślnymi parametrami. Ustaw --stop-bit-deviation=0.1.

FUJI napisał/a:

ale za to inne tasiemki przestały się konwerować, więc kombinuję dalej.

Automatu który bezbłędnie skonwertuje wszystkie taśmy _bez ingerencji użytkownika_ stworzyć się nie da. Ja u siebie rozwiązałem problem tak, że w szczególnie wrednych przypadkach użytkownik będzie musiał dostroić parę parametrów.


FUJI napisał/a:

Jak byś mógł udostępnić oryginalnego dumpa to był bym wdzięczny.

Wieczorkiem.

FUJI napisał/a:

W zamian ;) udostępnię inną tasiemkę, która też sprawia pewne problemy (obu konwerterom), chociaż w zasadzie wcale nie jest aż taka niezwykła.

A co to będzie?

FUJI napisał/a:

Po analizie procedur obsługi turbo (tych z loaderów i kartridży) wydaje mi się, że jednak na potrzeby emulatorów dobrze by było dodać informację (sugestię), jak należy interpretować sygnał, ponieważ w pliku CAS nie ma informacji, jaki konkretnie zapis turbo przechowuje.

Wiesz co? Sprawa jest śliska. Skoro do odtworzenia oryginału jest to zbędne, to można by przyjąć założenie, że ta informacja nie powinna być w pliku CAS. Proponuję taką "granicę abstrakcji": w pliku CAS znajdują się tylko informacje niezbędne do odtworzenia oryginalnej kasety (można wtedy się kłócić, czy opisy w blokach FUJI są zgodne z tym podejściem, ale na razie to pominę). Taka granica jest w jakiś sposób naturalna.

Poza tym, emulator i tak musi sam podjąć decyzję, jak interpretować dane z taśmy. Mamy przecież taki przypadek użycia:
- kaseta nagrana w Turbo A
- magnetofony w Turbo A tłumaczą zbocze opadające na sygnał 1 DATA_IN
- user wczytuję kasetę na magnetofonie dla Turbo B i oprogramowaniu, które pozwala na magnetofonie Turbo B wczytywać programy z kaset w Turbo A
- magnetofony w Turbo B tłumaczą zbocze opadające na sygnał 0 DATA_IN
Wtedy bit sugestii w CAS jest nie tylko niepotrzebny, ale i dezorientujący.

FUJI napisał/a:

Dobrze by było się zdecydować na jednolity format...

Z jakichś powodów technicznych jeszcze tego nie zrobiłem - ale jakby co, to chcę po prostu usunąć informację o długościach bloków z formatu HEX (czyli drugą liczbę z linii "data" i "fsk "). A co sobie każdy z nas będzie zrzucać do komentarzy, to już oczywiście bez znaczenia. Acha, i znak komentarza ";" ma nie być wymagany, jeśli komentarza nie ma w ogóle.

FUJI napisał/a:

W zamian moje narzędzie wzbogaciło się m.in. o obsługę czeskiego Turbo 2000, po tym jak zgłosił się chętny zza gór... ;)

Rozumiem że zmiana polegała wyłącznie na zdefiniowaniu parametrów (częstotliwości, długości) tego turba? Ciekaw jestem, czy nie dałoby się tego jakoś zautomatyzować.

EDIT: Już. Konwertujemy z --stop-bit-deviation=0.3.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

116 Ostatnio edytowany przez FUJI (2010-04-13 00:06:29)

Krótki napisał/a:

Przecież mój dump ma dokładnie takie parametry. Zapewne użyłeś a8cas-convert z domyślnymi parametrami. Ustaw --stop-bit-deviation=0.1.

Ach. Znaczy się, że jak konweruję cas do hex to a8cas-convert po drodze jak gdyby przerabia go na wav i potem dopiero na hex od nowa badając długość bitów ? Myślałem, że w hex pojawia się  dokładnie to, co jest w cas, po co od nowa przekodowywać ?

Krótki napisał/a:

Automatu który bezbłędnie skonwertuje wszystkie taśmy _bez ingerencji użytkownika_ stworzyć się nie da.

E tam, się nie da. Wszystko jest kwestią włożonego wysiłku, który się opłaca lub nie (w tym przypadku pewnie raczej nie ;)). Zapewne również da się automatycznie rozpoznawać typy turbo :P.

Krótki napisał/a:

A co to będzie?

Pytanie spowodowało, że popatrzyłem na listę na Twojej stronie, i widzę, że niczym nie zaskoczę. Chodzi o "Special Forces" czyli "Operation Blood II". No i popróbowałem z bit-deviation w a8cas-convert i wtedy poszło bez problemów :cool:. Mimo to - obiecane linki: strona A (cas, tu nie ma niczego niezwykłego), strona B (niestandardowe długie rekordy z niestandardową prędkością zapisu): cas, flac.
Jeszcze ciekawostka. Byłem ciekawy, czy Twój algorytm radzi sobie z tym, z czym mój obecny roboczy z założenia sobie nie poradzi. Mnie się nie udało dobrać parametrów dla a8cas-convert, ale ja nie znam go zbyt dobrze. Spróbuj przekonwertować ten hex na cokolwiek i z powrotem i otrzymać taki sam hex (np. bezpośrednio hex->hex).

Krótki napisał/a:

Wiesz co? Sprawa jest śliska. (...)Poza tym, emulator i tak musi sam podjąć decyzję, jak interpretować dane z taśmy.(...)

Cóż - dla mnie to w zasadzie rybka czy taka informacja będzie czy nie. Wydawało mi się, że to może się jednak przydać, a tu niespodzianka - poprzednio to ja się opierałem... Na pewno masz lepsze rozeznanie w tym, jak działa emulator, więc zdam się na Twój osąd.

Krótki napisał/a:

Z jakichś powodów technicznych jeszcze tego nie zrobiłem - ale jakby co, to chcę po prostu usunąć informację o długościach bloków z formatu HEX (czyli drugą liczbę z linii "data" i "fsk ").

:o A zdawało mi się, że to akurat coś prostego. No nic, tymczasem będę sobie dalej konwertował hex do cas przed użyciem (ja wtedy prawie od razu pozmieniałem).

Krótki napisał/a:

Rozumiem że zmiana polegała wyłącznie na zdefiniowaniu parametrów (częstotliwości, długości) tego turba? Ciekaw jestem, czy nie dałoby się tego jakoś zautomatyzować.

Głównie chodzi o szerokości i tolerancje szerokości impulsów oraz sposób liczenia sumy kontrolnej. Jeśli chodzi o same impulsy, to na pewno się da wykryć ich szerokości i dewiację tychże, podobnie jak dla bitów w sygnale fsk. Które zbocze jest pierwsze też w sumie dało by się wykryć (choć pewnie nie zawsze). Z kolejnością bitów w bajcie już może być gorzej, bo trzeba by analizować otrzymane dane. Sama suma kontrolna (zwłaszcza xor) może nic nie  powiedzieć, nawet nie wiadomo na początku, jaki jest algorytm jej liczenia (albo czy  w ogóle jest).  Konkretny format można by rozpoznawać na podstawie długości bloków i ich nagłówków, ale tu już potrzebny jest zestaw parametrów, który trzeba przechowywać i próbować dopasować, dlaczego więc nie przechowywać również "wykrywalnych" parametrów. Czeski program w turbo 2000, na którym ćwiczyłem, nie miał bloku nazwy, a na podstawie zawartości nic by się nie dało wywnioskować, bo dopiero loader (w standardzie) tę zawartość rozszyfrowuje w locie podczas wczytywania, po podaniu właściwego "hasła". Jak dla mnie na razie prościej jest podać format w linii poleceń i poprzestać na stałych ustawieniach.

Krótki napisał/a:

EDIT: Już. Konwertujemy z --stop-bit-deviation=0.3.

Dzięki.

117 Ostatnio edytowany przez Krótki (2010-04-14 21:32:35)

FUJI napisał/a:

Ach. Znaczy się, że jak konweruję cas do hex to a8cas-convert po drodze jak gdyby przerabia go na wav i potem dopiero na hex od nowa badając długość bitów ? Myślałem, że w hex pojawia się  dokładnie to, co jest w cas, po co od nowa przekodowywać ?

Bo dzięki temu możliwe jest debugowanie plików HEX, o którym pisałem tu. Ale dobrze by było, żeby konwersja z CAS/HEX do CAS/HEX nie psuła zawartości kasety - pomyślę nad tym w wolnym czasie.

FUJI napisał/a:

E tam, się nie da.

No pewnie - skoro człowiek umie, to komputer też by mógł ;P

A całkiem serio, trudno jest "zwyczajną" nieregularność w sygnale na kiepskiej jakości taśmie od zmiany baudrate'u w środku bloku. Albo pozwalamy na nieregularności i ryzykujemy przeoczenie zmiany baudrate'u, albo dokładnie wykrywany zmianę lecz zmniejszamy tolerancję błędów, co powoduje że słabszej jakości bloki przestają się konwertować.

FUJI napisał/a:

Mimo to - obiecane linki:

Rzeczywiście - nic nadzwyczajnego ;)

FUJI napisał/a:

Spróbuj przekonwertować ten hex na cokolwiek i z powrotem i otrzymać taki sam hex (np. bezpośrednio hex->hex).

Nie da rady, ale tylko dlatego, że wewnętrzny bufor sygnałów ma na sztywno ustawiony rozmiar 50 - a w twoim pliku żeby dobrze rozpoznać baudrate, trzeba wczytać ze 100 początkowych sygnałów.

Ale nie zrażam się, oto wersja eksperymentalna, w której bufor sygnałów jest przydzielany dynamicznie, wiec możesz ustawić --header-length=100 i będzie OK.

Przy okazji załatwiłem kwestię niezapisywania długości bloków 'data'/'fsk ' w HEX.

A8CAS - narzędzie do 100% archiwizacji kaset Atari

118

Krótki napisał/a:

No pewnie - skoro człowiek umie, to komputer też by mógł ;P

Jeżeli człowiek go nauczy, to będzie umiał :P. Ja swój komputer już nauczyłem, choć się na początku dziko opierał. Screenshot ;):

a8cas-util.pl conv Miecze\ Valdgira\ 2.flac Miecze\ Valdgira\ 2.hex
Starting ecasound... started.
SUMMARY: Data blocks: 940, std: 31 (0 E), nonstd: 0 (0 E), multibaud: 303 (0 E), analysed 41122816 samples.
1553 HEX blocks stored in file new_Miecze Valdgira 2.hex.

Działa ze wszystkimi (sprawdzonymi do tej pory) dumpami kaset bez konieczności zgadywania szerokości i dewiacji. W sumie nic skomplikowanego, tyle że trochę upierdliwe było rozpatrywanie poszczególnych przypadków. Najśmieszniejsze, że jak już mi zaczęło działać, to się zorientowałem, że trochę wcześniej w ramach testów dodałem do kodu fragment, który mi zniekształcał dane wejściowe :/. Tym większa satysfakcja. Znaczy - da się. Update w sekcji download będzie niedługo.
Teraz się wyjaśniły problemy z konwersją "Kissin' Kousins" - pod koniec dwa razy trochę zmienia się prędkość.

Krótki napisał/a:
FUJI napisał/a:

Spróbuj przekonwertować ten hex (...)

Nie da rady, ale tylko dlatego, że wewnętrzny bufor sygnałów ma na sztywno ustawiony rozmiar 50 - a w twoim pliku żeby dobrze rozpoznać baudrate, trzeba wczytać ze 100 początkowych sygnałów.

U mnie sie już da, I to nawet przy 5 sygnałach (rekord złożony z 3 bajtów $80 lub $cc). Widzę, że dla $cc w a8cas-convert też już jest dobrze.

Krótki napisał/a:

Przy okazji załatwiłem kwestię niezapisywania długości bloków 'data'/'fsk ' w HEX.

Super, zwłaszcza że biblioteka i emulator też już uaktualnione. Dzięki. W wolnej chwili dodaj może jeszcze 'FUJI' do hex (o ile nie kłóci się to z Twoimi założeniami).

Przy okazji bug report - jak a8cas-convert konwertuje tego oryginalnego dumpa to powstają nieprawidłowe bloki fsk, a jak się konwertuje wav-a utworzonego z tego cas-a to wszystko wychodzi dobrze.

119

I've taken a look at those various pwm tape image chunks at a8cas-util page.

Latest snapshot of Turgen supports them on output, if you set it in Tape image generator preferences (pwmX chunks instead of trXX chunks). If there will be some changes in pwm chunks, I'll try to watch them closely. Supporting them on input will take some time, because pwm chunks represent superset of Turgen's capabilities.

And I have some food for thought:
I think that in pwms chunk, there could be some field for non-mandatory human readable name of the turbo system, which could be displayed by emulators or tape image editors/viewers. By other hand, such information opens space for inconsistencies in labeling turbo systems, bringing chaos.

120 Ostatnio edytowany przez FUJI (2010-05-11 10:19:18)

baktraaa napisał/a:

Latest snapshot of Turgen supports them on output, if you set it in Tape image generator preferences

Good to see, that it appears to be usable :).

baktraaa napisał/a:

I think that in pwms chunk, there could be some field for non-mandatory human readable name of the turbo system, which could be displayed by emulators or tape image editors/viewers.

It would be handy, but in practice such addition does not suit the idea of "tape image". Emulators don't need to know, what type of turbo is contained inside, they should just translate data to impulses. Similarily, there were also earlier suggestions of adding blocks, which would separate  parts of tapes for easy and fast access (like in case of "The Goonies"), but not everyone liked them.
Another way of attaching such information, also discussed earlier (no final conclusions) is to put it into separate file (ini, xml, txt...) and pack together with .cas, scans of labels etc. in one zip file.