1

Temat: Zgrywanie kaset - początki

Witam
Jak lata temu pisałem, że będę zgrywać taśmy, to zgram i nie trzeba mi co 10 lat przypominać :). Tyle, że na Atari dopiero z tym zaczynam i mam z tym pewien problem.
Na początku kasety bez Turbo ROMu (te z Turbo ROMem ładują się przez "Start+Option" na Atari bez cartridge, jeszcze do nich nie podchodziłem). Natomiast wynik zgrywania jest nieco dziwny, stąd moje pytanie o pomoc w prawidłowym zgraniu taśm do plików CAS na PC. Taśm, dodajmy, w raczej słabym stanie.
Pierwsza taśma jaką zgrywałem (typowy "zestaw", co ciekawe na całkiem współczesnej kasecie Raks) zawierał po 2 gry na stronę, ładowane "Start+Option", bez turbo.
Zgrywania dokonałem magnetofonem stereofonicznym do Line In, zapis pojawił się na jednym kanale. Po uzyskaniu pliku WAV przepatrzyłem go ogólnie i stwierdziłem dziury (demagnetyzacja), które pojawiły się w tych samych miejscach i na kolejnym zrzucie. Po zmianie skosu głowicy dziury pojawiły się, ale w innym miejscu nagrania. Otworzyłem dwa zrzuty w Audacity i za pomocą spektrogramu zsynchronizowałem je, po czym dziurawe "pakiety" połatałem z jednego pliku w drugi.
Tak przygotowany plik potraktowałem programem a8cas-util.pl, ale dopiero zmniejszenie --resistor do 0.03-0.01 spowodowało uzyskanie prawidłowego odczytu do pliku .cas. Pliki .cas sprawdziłem na emulatorze Altirra, metoda sprawdziła się i gry działają bez problemu. Sprawdziłem również metodę z łataniem pakietów w plikach .HEX, również okazała się pomocna gdy są prawidłowo zidentyfikowane rozmiary i ilość rekordów. Pliki skonwertowane z powrotem do WAV'a dają się odtwarzać do magnetofonu Atari przez adapter kasetowy, i działają również na Atari.
I teraz przychodzi do kasety "Włóczykij", oryginał. Te same problemy - "dziury" magnetyczne, rozwiązałem je w ten sam sposób - "łataniem", ale ponieważ problemem były wyłącznie sumy kontrolne pakietów, to łatałem już w plikach .HEX. Wynikowy .HEX skonwertowałem do CASa (plik w załączeniu), który to zawiesił emulator jeszcze przed pokazaniem się loadera. To samo dzieje się na Altirra i Atari800.
I teraz rzecz dziwna: Ten plik .CAS skonwertowany do WAV'a i odtworzony Atari 65XE działa. Wydaje mi się, że dziura magnetyczna w środku rekordu danych nie wygląda na zabezpieczenie przed kopiowaniem, a nawet przy takim zabezpieczeniu "dziura" byłaby obecna w tym samym miejscu przy różnych ustawieniach głowicy no i ponownie odtworzony z CAS'a plik nie ładowałby się do prawdziwego Atari.

Jak zrobić poprawny plik .CAS? Czy może to jest poprawny plik CAS, tylko emulatory go nie obsługują?

Ostatnio edytowany przez MCbx (2019-01-01 06:54:29)

Post's attachments

A_Wloczykij.cas 61.32 kb, liczba pobrań: 12 (od 2019-01-01) 

Tylko zalogowani mogą pobierać załączniki.

2

Odp: Zgrywanie kaset - początki

Jaki cel przyświecał zgrywaniu Włóczykija ?

3

Odp: Zgrywanie kaset - początki

Chcę zgrać wszystko co mam do dokładnych kopii, bo już dziury tym nagraniom wypadają.

4

Odp: Zgrywanie kaset - początki

Plik który udostępniłeś bez problemu wczytuje się i działa pod Altirra 3.10. Plik jest niestandardowy nie wiem czy w jakiś sposób "zabezpieczony" przed kopiowaniem i jest zabezpieczony przed kopiowaniem, dwa pierwsze bloki są standardowe i zawierają loader,  który uruchamia się po owych dwóch pierwszych rekordach i przejmuje dalsze ładowanie gry. Jedyne co musisz zrobić aby gra się poprawnie wczytała pod emulatorem to wyłączyć "CIO patch" dla "C:" i wczytywać to wszystko w rzeczywistym tempie :)

UPDATE: szybko rzuciłem okiem na loader, wychodzi na to że po pierwszych dwóch rekordach loader oczekuje określony stan na linii DATA_IN odczekuje chwile a potem przechodzi do ładowania rekord po rekordzie dalszej części pliku, który jest już zwykłym plikiem w formacie binarnym (Atari DOS).

jak skonwertuje się plik CAS który dołączyłeś na format A8CAS-HEX, to widać że po dwóch pierwszych rekordach jest krótki blok FSK, właściwie to zawiera on tylko pisk (być może jest to tylko sygnał SPACE nadany na DATA_OUT przed następnymi rekordami) ... kurczę blade... ja już chyba gdzieś ten kod widziałem (loadera) ... tylko nie mogę sobie przypomnieć gdzie... jak mnie "oświeci" to nie omieszkam poinformować ;-)

A8CAS-HEX
FUJI 
baud 00738
data 21021 55 55 fc 00 01 00 07 50 e4 a2 00 bd 00 04 9d 80 07 e8 10 f7 86 3d ad 0f d2 29 10 d0 f9 a9 06 8d 1c 02 ad 0f d2 29 10 f0 f9 ad 1c 02 d0 e8 20 9d 07 30 65 85 2c 20 9d 07 85 2d 25 2c c9 ff f0 ee 20 9d 07 85 2e 20 9d 07 85 2f a9 ae 8d e2 02 a9 07 8d e3 02 a5 2e c5 2c a5 2f e5 2d 90 10 20 9d 07 30 4e 88 91 2c e6 2c d0 ea e6 2d d0 e6 ad e2 02 c9 ae d0 07 ad e3 02 c9 07 f0 b2 a9 3c 8d 02 d3 20 92 04 ; standard record; length=132, checksum=04 OK
data 00268 55 55 fc 07 a9 34 8d 02 d3 a9 30 8d 1c 02 ad 1c 02 d0 fb f0 99 6c e2 02 a9 3c 8d 02 d3 6c e0 02 a4 3d cc 8a 02 90 03 4c 7a e4 b9 00 04 e6 3d a0 01 60 f3 36 54 6c 9a c1 04 71 76 b3 d5 13 8d af d7 f8 3d b7 d9 22 48 98 c1 f4 12 23 2d 39 53 61 75 89 8b 8d 8f 91 93 95 97 99 9b 9d 9f a1 a3 a5 a7 a9 ab ad af b1 b3 b5 b7 b9 94 94 00 70 70 70 42 40 bc 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 af ; standard record; length=132, checksum=af OK
fsk  00032 1584 ; length=1; duration=158 ms
data 00396 55 55 fc ff ff 2f 02 2f 02 00 ff ff 00 16 fb 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a9 20 8d 08 16 8d 09 16 8d 0a 16 8d 0b 16 a9 03 8d 0f d2 a9 00 8d 08 d2 60 a2 00 bd 00 16 d0 08 e8 e0 04 d0 f6 4c 72 16 a9 00 9d 10 16 bd 00 16 38 e9 01 0a 0a 0a 3e 10 16 0a 3e 10 16 0a 3e 10 16 0a 3e 10 16 18 69 b6 9d 0c 16 bd 10 16 69 16 9d 10 16 a9 00 9d 00 16 9d 08 16 4c 34 16 a2 9c ; standard record; length=132, checksum=9c OK
data 00367 55 55 fc 00 bd 08 16 c9 20 d0 06 e8 e0 04 d0 f4 60 bd 0c 16 85 c8 bd 10 16 85 c9 a0 00 8a 0a aa b1 c8 9d 00 d2 a0 20 b1 c8 9d 01 d2 8a 4a aa bd 0c 16 18 69 01 9d 0c 16 bd 10 16 69 00 9d 10 16 fe 08 16 4c 7b 16 14 1e 28 32 3c 46 50 5a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4f 4c 4a 48 46 44 42 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b4 ; standard record; length=132, checksum=b4 OK

@cobol: ... nie wszystko musi mieć sens i cel ;) jeżeli komuś takie coś przynosi radość i powoduje że powracają dawne wspomnienia.. to czemu nie? nawet jak to będzie zgrane coś co leży dawno w sieci... to sama chęć archiwizacji swoich dawnych zbiorów może być całkiem dobrym powodem. A może w zbiorach trafi się jakaś nietypowa/niespotykana wersja?

Ostatnio edytowany przez seban (2019-01-01 17:38:03)

5

Odp: Zgrywanie kaset - początki

Wielkie dzięki za informacje! Wyłączyłem patch'a i ruszyło, Wygląda na to, że moim błędem było pomylenie patch'a na szybkie ładowanie z "warp mode".

Celem było przede wszystkim wyrobienie sobie techniki odzyskiwania - jak robiłem przy archiwizacji taśm z innych komputerów. Po drugie - nie wiem czy jest zrzucony ten "Polski Dizzy" w CASie.

to sama chęć archiwizacji swoich dawnych zbiorów może być dobrym powodem. A może w zbiorach trafi się jakaś nietypowa/niespotykana wersja?

Dokładnie o to mi chodzi - zrzuciłem teraz np. Future Composer, i o ile sam program jest w zasadzie ten sam co w obecnych .xex'ach, to po nim są w dystrybucji dodatkowo w ilości 5 sztuk przykładowe projekty.

6

Odp: Zgrywanie kaset - początki

Mam kolejne pytanie, tym razem na temat taśm w Turbo.
Chodzi o Turbo ROM Mapasoftu z Krakowa, wersja 3.0, bez włącznika, z trzyrekordowym loaderem. Mam taśmy i odpowiednio zmodyfikowany magnetofon (o czym świadczy naklejka z Mapasoftu).
Tyle, że:
1. Gra ładuje się na Atari bez problemów z taśmy jak i ze zrobionego zeń WAVa (adapter "samochodowy"),
2. a8cas-util wykrywa jeden rekord Turbo ROMu z niewłaściwą sumą kontrolną.
3. Dla porównania czy w ogóle jest to Turbo ROM, wygenerowałem WAV'a z podobnej gry Turgenem - wynik Turgena w konfiguracji Turbo ROM zupełnie nie przypomina sygnałów, jakie ja mam na taśmie - jest więcej bloków, nieco inne częstotliwości na spektrogramie, a dodatkowo wynik z loaderem nie ładuje się na magnetofonie od Mapasoftu (boot error po załadowaniu loadera na samym początku sygnału Turbo).
Czy to jest kolejna odmiana Turbo ROMu, czy Turgen generuje niewłaściwego wave'a dla Turbo ROM?
Dla przykładu umieszczam plik w tym Turbo ładujący się na Atari: tutaj.
Ten jeden segment od a8cas-util mi podejrzanie wygląda, bowiem podczas ładowania uszkodzonego programu Atari jest mi w stanie wyrzucić błąd nawet po środku tego bloku, a nie tylko na końcu gdzie powinna być sprawdzana suma kontrolna.

7

Odp: Zgrywanie kaset - początki

Mapasoft robił też Blizzarda. To może to jednak nie jest TurboROM?
W sumie czy TurboROM czymś się różnił od TurboROM Plus?

8

Odp: Zgrywanie kaset - początki

MCbx napisał/a:

zrzuciłem teraz np. Future Composer, i o ile sam program jest w zasadzie ten sam co w obecnych .xex'ach, to po nim są w dystrybucji dodatkowo w ilości 5 sztuk przykładowe projekty.

Czy mógłbyś to udostępnić?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

9

Odp: Zgrywanie kaset - początki

No to tak:
1. Zrobiłem z tego WAV'a w Turbo dwa pliki CAS: Normalny, z loaderem i Turbo z parametrem --turbo turborom. Oczywiście ten z Turbo ROM miał nieprawidłową sumę kontrolną.
2. Te pliki na powrót przekształciłem do WAVa - remastering, bez zwracania uwagi na sumę kontrolną.
3. ... po czym poprawnie uruchomiłem z tego nowego WAVa grę na Atari.

Zacząłem więc intencjonalnie psuć plik CAS w turbo obserwując reakcję Atari na popsutego wave'a, żeby sprawdzić dla jakiego zakresu ma on te sumy kontrolne. Wnioski:
1. "Load error" pojawia się najczęściej gdy występuje przez pewien czas brak sygnału ("dziura" na nagraniu). To chyba raczej nie jest suma kontrolna mniejszych bloków.
2. Przy innych błędach, gra po prostu nie startuje, wraca do loadera, załącza silnik magnetofonu i czeka na coś, co można załadować. Pomimo usilnych prób nie udało mi się zrobić tak popsutego pliku, żeby wystartował i np. miał problem z jakimś sprite'm.

I teraz dwa pytania:
1. Czy jest możliwe, że Turbo ROM Mapasoftu miał inną metodę sprawdzania sumy kontrolnej (inne położenie sumy? inna metoda obliczeń?) niż Turbo, którego sumy liczy a8cas-util?
2. Czy Turbo ROM z Turgena to jest ten sam Turbo ROM, jakiego parametry ma a8cas-util?

Porada dla potomnych, bo ja się z tym dwie godziny męczyłem: Należy unikać odtwarzania "dociętych" WAVów przez odtwarzacz Audacious z Debiana, bo ma ładne "fade in" i "fade out", co prawda efekt bardzo krótki, ale ma i on ma wpływ na odtwarzanie.

->mono
A proszę, załącznik. Część tych przykładów to jakbym z gier znał (drugie to chyba Draconus).

Post's attachments

future_composer.cas 20.94 kb, liczba pobrań: 9 (od 2019-02-07) 

Tylko zalogowani mogą pobierać załączniki.

10

Odp: Zgrywanie kaset - początki

Analizowałem takie nagrania TurboROM dawno temu. Wygląda to tak:
- suma kontrolna JEST obliczana i kontrolowana, psucie pliku cas zepsuje wczytywany program, choć przy pewnej dozie szczęścia może nie zepsuć sumy kontrolnej
- suma kontrolna jest liczona ze wszystkich bajtów całego bloku turbo (o ile pamiętam po prostu xor)
- prawidłowa suma kontrolna jest przechowywana w loaderze, nie w bloku turbo
- nie można sumy kontrolnej wyciągnąć wprost z loadera, bo cały loader jest "zaszyfrowany" (o ile pamiętam dwukrotny xor). Ja po prostu uruchamiam wczytywanie pod emulatorem i znajduję odpowiedni bajt pod debuggerem. Pewnie gdzieś na biurku wala mi się kawałek papieru, na którym mam zapisane, który to bajt (spotkałem się z dwiema wersjami loadera)
- blok turbo jest wczytywany jak leci i poza liczeniem sumy kontrolnej nie jest sprawdzane nic innego (np. loader nie wie, ile bajtów ma wczytać)
- warunkiem koniecznym i wystarczającym do zakończenia wczytywania jest wystąpienie błędu odczytu (zbyt długiego lub zbyt krótkiego impulsu)
- po błędzie odczytu sprawdzana jest suma kontrolna. Jeżeli jest OK, to program jest uruchamiany, jeżeli nie, to ponownie uruchamia się odczyt
- w związku z powyższym nagranie idealne, czyli takie, w którym ostatni impuls nagrania odpowiada ostatniemu bitowi danych nigdy nie skończy się wczytywać
- ten typ nagrań był głównym powodem, dla którego przy dorabianiu zapisu turbo w emulatorze atari800 dodałem tworzenie sztucznych zakłóceń na końcu zapisu każdego nagrania turbo (paru niewymiarowych impulsów po wyłączeniu silnika magnetofonu); takie zakłócenia w niczym nie przeszkadzają, a pomagają w tym i w jeszcze jakimś jednym przypadku

11

Odp: Zgrywanie kaset - początki

Dziękuję bardzo za odpowiedź! To już mi wystarczy do rozpracowania reszty i wyjaśniło dlaczego mam takie wyniki.

12

Odp: Zgrywanie kaset - początki

Turgen's Turbo ROM plugin generates files loadable by the following cartridge image:

http://www.atari.org.pl/forum/viewtopic.php?id=5652
This matches description from atariki: http://atariki.krap.pl/index.php/Turbo_ROM

It is possible that there existed more systems called Turbo ROM (or different versions existed) using different file formats.
Information on them is sketchy at best, unfortunately. I really do not know.

I tested the plugin successfully with the a800-a8cas emulator and once with real hardware and cassette adapter.