forum speccy.pl

ZX Spectrum => SOFTWARE => Wątek zaczęty przez: Gelip w 2012.12.02, 19:57:16

Tytuł: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.02, 19:57:16
Męczę się z jedną rzeczą. Otóż udało mi się nagrać i poprawić plik WAV z kasety z pewną grą która zawiera własny loader Cerikopik (bez zabezpieczenia). Nie wiem co jest grane bo gra wczytuje się tylko prawidłowo w emulatorze Spectaculator 7.51 i tylko w trybie Load from Audio Source.
- plik WAV ma format 44100Hz 16bit Mono i jest odtwarzany za pomocą programu Virtual Audio Cable (program jest po to aby zamiast wejścia Line In używać wyjścia WAVE karty dźwiękowej wprost do emulatora
- konwersja do 22050Hz 8bit Mono nic nie daje (taki format normalnie łyka Spectaculator)
- żadne programy PC nie dają rady maketzx, wav2tzx
- żadne programy ZX nie dają rady i pojawia się Tape error (Copy-Copy, Compress Copy, Kovacs Copy)
Załączam plik WAV (gra La Formica WAV (http://www63.zippyshare.com/v/80874404/file.html))

Pytanie od razu - czy grę z własnym loaderem można skopiować za pomocą wyżej wymienionych programów typu Copy-Copy?
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.02, 22:45:55
Standardowo nie da się skopiować, bo bloki po loaderze mają wyższą prędkość. Nie jest to dwukrotna prędkość, którą obsługują kopiery turbo, więc nie da się załadować.

Pytanie od razu - czy grę z własnym loaderem można skopiować za pomocą wyżej wymienionych programów typu Copy-Copy?

Do Copy Copy jest program (nakładka) Turbo, długości kilkaset bajtów, którą ładowało się LOAD AT ... , a potem inicjowało USR. Potem można było wybierać prędkość komendą PAUSE. Tyle że nie mam już tego, a w sieci nie znalazłem  :(
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.03, 10:58:36
Programy na pececie powinny jednak to skonwertować. To znaczy nie ma żadnych przeszkód jeśli chodzi o metodę. Moim zdaniem sygnał jest słabej jakości. Nie udało mi się wczytać w pięciu próbach. Loader wchodzi, a potem błędy.
No i oczywiście można zgrać jako snapshot.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Tygrys w 2012.12.03, 14:36:53
Udało mi się wyłowić loader ;) Z danymi jest gorzej.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.03, 20:48:03
Dzięki za chęci Tygrys - tyle to i mi się udało wyłowić :-). Prawdopodobnie Cerikopika nie łykają programy typu Copy-Copy.

Do Phonex: mówisz że sygnał słabej jakości. To jakim cudem gra wgrywa się bez problemu do Spectaculator 7.51 z odtwarzacza Winamp 5 ??? Dowody w załącznikach. To mnie wkurza właśnie i nie daje spokoju. Wydaje się iż sygnał słabej jakości a jednak Spectaculator daje radę - czyżby miał jakieś wspomagacze? A może to zasługa Virtual Audio Cable? Muszę spróbować odtwarzać z  drugiego komputera bez stosowania VAC. Zdaje się iż to nie wina jakości sygnału a loadera Cerikopik. Program Compress Copy zawsze wyrzuca komunikat PARITY po wczytaniu ekranu startowego.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: RafalM w 2012.12.03, 23:21:46
Cytuj
Wydaje się iż sygnał słabej jakości a jednak Spectaculator daje radę - czyżby miał jakieś wspomagacze?

Bardzo możliwe - filtry odsiewające określone częstotliwości itp.

Programy typu MakeTzx też je mają ale są one napisane tak że radzą sobie tylko z określonymi loaderami, takimi dla jakich autor napisał wsparcie w kodzie.

A co do tematu wątku to WAV z custom loaderem w większości przypadków nie da się przerobić na TAP. Można natomiast na TZX :)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Tygrys w 2012.12.04, 10:04:57
Na szybko rzuciłem okiem na ten własny loader. Są pewne podobieństwa, aczkolwiek timingi są różne. Dlatego też żaden z programów nie potrafi ich poprawnie zinterpretować danych.


Loader:
INC IX
DEC DE
EX AF, AF'
LD B, $C1
LD L, $01
L_FEE8: CALL L_FF24
RET NC
LD A, $C8
CP B
RL L
LD B, $BF
JR NC, L_FEE8
LD A, H
XOR L
LD H, A
LD A, D
OR E
JR NZ, $FECF
RET

ROM:
new byte can now be collected from the tape.

05C2 LD-NEXT      INC   IX                  Increase the 'destination'.
05C4 LD-DEC       DEC   DE                  Decrease the 'counter'.
                  EX    AF,A'F'             Save the flags.
                  LD    B,+B2               Set the timing constant.
05C8 LD-MARKER    LD    L,+01               Clear the 'object' register apart
                                            from a 'marker' bit.

The 'LD-8-BITS' loop is used to build up a byte in the L register.

05CA LD-8-BITS    CALL  05E3,LD-EDGE-2      Find the length of the 'off' and
                                            'on' pulses of the next bit.
                  RET   NC                  Return if the time period is
                                            exceeded. (Carry flag reset.)
                  LD    A,+CB               Compare the length against
                                            approx. 2,400 T states; resetting
                  CP    B                   the carry flag for a '0' and
                                            setting it for a '1'.
                  RL    L                   Include the new bit in the L
                                            register.
                  LD    B,+B0               Set the timing constant for the
                                            next bit.
                  JP    NC,05CA,LD-8-BITS   Jump back whilst there are still
                                            bits to be fetched.

The 'parity matching' byte has to be updated with each new byte.

                  LD    A,H                 Fetch the 'parity matching'
                  XOR   L                   byte and include the new byte.
                  LD    H,A                 Save it once again.
Passes round the loop are made until the 'counter' reaches zero. At that point the 'parity matching' byte should be holding zero.
                  LD    A,D                 Make a further pass if the DE
                  OR    E                   register pair does not hold
                  JR    NZ,05A9,LD-LOOP     zero.
                  LD    A,H                 Fetch the 'parity matching'
                                            byte.
                  CP    +01                 Return with the carry flat set
                  RET                       if the value is zero.
                                            (Carry flag reset if in error.)

Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gryzor w 2012.12.04, 10:10:42
No wlasnie, jak gra ma wlasny loader, to pewno cos jest zmienione, wystarczy nawet, ze inaczej obsluzy bajt parzystosci.

Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.04, 11:05:26
Zdaje się iż to nie wina jakości sygnału a loadera Cerikopik.

Sygnał jest kiepski, bo "się chwieje". Widać na paskach pilota. Więc jeśli stałe czasowe loadera nie zostały obliczone precyzyjnie, a "na oko", to może wychodzić poza granice tolerancji. Przy dobrym sygnale może ładować na granicy tolerancji.

Program Compress Copy zawsze wyrzuca komunikat PARITY po wczytaniu ekranu startowego.

Bo prędkość jest inna. Nigdy tego nie załaduje. (Chyba że różnica mieści się w granicach tolerancji).

A co do tematu wątku to WAV z custom loaderem w większości przypadków nie da się przerobić na TAP. Można natomiast na TZX :)

A, no jasne! Pewnie że tzx. Czyli jeśli gdzieś tam jest przełącznik "-rom" to należy go usunąć.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.04, 17:01:56
OK, może być i TZX. O loaderze Cerikopik można poczytać w szczegółach na:
http://zxbyte.ru/byte23.htm (http://zxbyte.ru/byte23.htm) tylko że tam Cerikopik ma zabezpieczenie przed ładowaniem do innego komputera niż "Byte" ale sam loader działa chyba na podobnej zasadzie. Jest nawet program do łamania zabezpieczenia ale nie na PC tylko na ZX Spectrum. Próbowałem tym programem złamać ale niestety tam nie ma czego łamać bo program nie rozpoznaje zabezpieczenia typu Cerikopik.

Jak to przerobić na TZX. Trzeba coś kombinować w Spectaculator skoro się wczytuje to pomyślałem iż wczytam to do programu Copy-Copy uruchomionego w tym emulatorze ale to nie wchodzi niestety :-(
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.06, 18:46:22
Udało mi się zrobić pliki WAV z kasety Cerikopik. Pliki można bez problemu otworzyć w emulatorze Spectaculator
http://www14.zippyshare.com/v/33790179/file.html (http://www14.zippyshare.com/v/33790179/file.html)
Może komuś uda się zrobić z tego TZX :-)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.06, 20:58:58
Zadziwiające!
Nie zwróciłem uwagi że to wav i chciałem załadować do ZX Spin, tak jakby to był tap.
I załadowało się!!!

Carramba!
Czemu nikt nie powiedział, że ZX Spin łyka wavy?  ;)
A ja tu próbuję odtwarzać z Winampa...

No tak: w okienku wyboru plików jest "All suported types " i JEST m.in. wav na liście, ale SIĘ NIE MIEŚCI w wyświetlanym oknie. W Help jest że można wav. Powtórne odkrycie Ameryki zajęło mi tym razem na szczęście tylko 4 dni. Wcześniej nie zajmowałem się wav.

Noooo, teraz jak mi się to ładuje to można się pobawić  :)

Udało mi się zrobić pliki WAV z kasety Cerikopik. Pliki można bez problemu otworzyć w emulatorze Spectaculator
http://www14.zippyshare.com/v/33790179/file.html (http://www14.zippyshare.com/v/33790179/file.html)
Może komuś uda się zrobić z tego TZX :-)

Okazuje się, że w ZX Spin również.  :D

No dobrze, a tak na poważnie: po co to wszystko przerabiać?
Rozumiem "La Formica". To nieznana gra. Ale reszta?
Przecież są w sieci do ściągnięcia...
Bo screeny są w spiralkę?
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.06, 21:22:15
Choćby dlatego, że screeny są w spiralkę :-). Zaciekawiło mnie dlaczego nie da się tego skopiować w popularnym programie Copy-Copy lub Compress Copy. Zresztą natrafiłem na ciekawy temat na forum zx.pk.ru o wersjach programów i gier znalezionych na kasetach. Jest też specjalny portal dotyczący tematu. Po prostu jakby nikt nie słyszał o kasetach Cerikopik innych niż tych dwóch dodawanych standardowo do komputera "Bajt".
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.07, 15:14:47
Zeskanowałem oryginalną instrukcję do kasety Cerikopik - format DJVU: http://www60.zippyshare.com/v/28210895/file.html (http://www60.zippyshare.com/v/28210895/file.html)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.07, 15:55:10
Mam tajną broń. ;) Jest jeszcze jeden kopier, który ładuje różne prędkości. Ale zgrywa tylko ze standardową. Więc wymagałoby dodatkowych zabiegów. Przetestuję w weekend.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.07, 21:49:39
He, he. Dwie gry już gotowe w TZX :-)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.08, 09:58:03
No to gratuluję!
Jakim programem?
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.08, 11:39:10
Program ZX-Blockeditor i modyfikacja ustawień Pilot i Sync w odpowiednich blokach w pliku TZX. A plik TZX otrzymujemy z VOC2TZX podobno. Niestety ja tego nie skonwertowałem. Jest to zasługa użytkownika DDp na forum zx.pk.ru w temacie: http://zx-pk.ru/showpost.php?p=557722&postcount=3640 (http://zx-pk.ru/showpost.php?p=557722&postcount=3640) Pytałem go jak tego dokonał ale niestety to jego sekret. Napisał mi tylko tyle, że to jest proste :-) i używa następujących programów: VOC2TZX i ZX-Blockeditor ale co i jak konfiguruje w tych programach to nie wiem. Cytuję DDp:
Cytuj
Main "secret": modify waveform to standard format and read as standard block. Then use ZX-blockeditor for make non-standard speeds, pulses, etc.
P.S. A twoja tajna broń, co to za program?
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.08, 12:27:17
"Pierwotna wersja" Compress Copy http://www.worldofspectrum.org/infoseekid.cgi?id=0008843, która, jak się okazało, ma zmianę stałych czasowych LOAD.
Ale dalej nie daje się załadować. Oglądałem oryginalną procedurę ładującą i chyba jest impuls synchronizacji niestandardowy, dlatego źle ładuje.

Plan był taki:
1. załadować do TFCopy
2. zgrać w normalnej szybkości z peceta na reala z wgranym kopierem ;) (lub na taśmę)
3. wgrać do Copy Copy na ZX Spin i zgrać jako tzx
3. zmienić typ bloku danych na Turbo Data
4. pozmieniać stałe czasowe już gotowego tzx edytorem.

Zmienić typ bloku można, tak jak pisze DDp, w ZX-Blockeditor. Do zmiany parametrów wystarczy tape browser w ZX Spin.
Wszystko przede mną, bo ta wersja La Formica zrobiona przez DDp nie działa niestety.

Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.08, 13:13:10
Właśnie przed chwilą zrobiłem test. Plan jest taki sam jak u Ciebie.
1. ZXSpin i uruchomiony program Turbo Compress Copy w trybie L
2. Wczytujemy plik WAV 44100Hz Mono 8bit w normalnej prędkości akceptując błędy PARITY
3. W ZXSPin wstawiamy nowy pusty plik WAV jako tape, włączamy nagrywanie (F9) i zapisujemy wszystkie bloki z TCC wciskając S i A (cały czas w trybie L)
4. Tworzymy plik TZX. Taki plik WAV bez problemu łyka np. WAV2TZX w ten sposób:
wav2tzx -rom - ignore -filter plik.wav5. Teraz wystarczy odpowiednio wyedytować stworzony plik TZX np. w ZX-Blockeditor :-) tylko jakie wartości pilot i sync mam podać :-)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.09, 10:37:01
3. W ZXSPin wstawiamy nowy pusty plik WAV jako tape, włączamy nagrywanie (F9) i zapisujemy wszystkie bloki z TCC wciskając S i A (cały czas w trybie L)

A no jasne! Nie trzeba na taśmę!  :D :D
Ale i tak nie doszedłem do tego punktu. Nie mogę tego załadować bez błędu.

Nie wolno zaakceptować błędu "parity" nie wiedząc dlaczego. Można np. jeśli się okaże, że jest zgrane bez bitu parzystości, ale to nie ten przypadek. Loader co prawda nie sprawdza parzystości dla screenu, ale dla danych sprawdza.

...  tylko jakie wartości pilot i sync mam podać :-)

To nie takie proste. Pilot i sync, zdaje się, są jednak standardowe. Kruczek jest głębiej.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.09, 11:26:15
Dlaczego nie możesz załadować bez błędu? Moje pliki WAV otwierają się bez problemu w emulatorach Spectaculator 7.51 i ZX SPin 0.7 - może nie tak wczytujesz? Zrób tak:
1. Otwórz ZX Spin
2. Z menu Tools otwórz Tape Browser i z menu File wybierz Insert Tape i otwórz plik WAV (plik zostanie automatycznie odtwarzany więc należy go zatrzymać i przewinąć do początku)
3. W oknie głównym programu wpisujesz LOAD "", wciskasz Enter i klikasz PLAY w Tape Browser
4. Musi się wczytać tym sposobem na bank :-)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.09, 11:40:40
Załadować grę mogę.
Nie mogę załadować bez błędu innym sposobem niż oryginalny loader. Kopierem czy własną procedurką...
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.09, 18:35:28
OK. DDp skonwertował pozostałe pliki :-). Niektóre mimo iż są na kasecie Cerikopik nie mają tego loadera i dlatego są w formacie TAP. Pozostałe oczywiście w TZX.

Zauważyłem iż pliki La Formica i Saboteur różnią się nieco od tych które umieściłem na forum wcześniej. Mają nieco inne bloki dotyczące impulsów Pilot, Sync i bit 0 i bit 1.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.09, 18:57:03
Ropracowałem go dokładnie  :)
Niezły patent: brakuje pół bita w sygnale - brak JEDNEGO impulsu! Bit na taśmie to dwa impulsy: początek i koniec.
A na dodatek zakręcony loader.
Ale wersje DDp, mimo że wszystko mają jak trzeba (także poprzednie), nie działają na ZX Spin. Działają na Spectaculatorze? Albo na realu?
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.09, 19:04:18
U mnie działają na Spectaculator ale i w ZX Spin tylko trzeba wyłączyć Flash Loading.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.09, 19:36:21
Rzeczywiście. Czyli że nie do końca są poprawne. Wersje w wav działały z Flash Loading! Przynajmniej z Edge Detection działają.

Tamte pierwsze tzx nie działały. Były właśnie przesunięte o jeden impuls! To daje zabawne efekty: niby się ładuje, część danych jest poprawna a w dziwnych i nieoczekiwanych miejscach pojawiają się błędy  ;)
Można łatwo to stwierdzić - wystarczy w tamtych starych tzx-ach w "Sequence of 17 Pulses" dopisać (Add) osiemnasty impuls o długości 1. I działa! :D
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.09, 19:49:10
Świetnie, że to wyczaiłeś :-). Właśnie testuję z prawdziwą maszyną odtwarzając pliki w programie Tapir i wczytują się bez problemu. Na forum zx.pk.ru dodałem też uszkodzoną wersję gry FIST+ którą udało mi się zgrać wcześniej. Gra wczytuje się, muzyka gra, menu działa ale coś jest nie tak z ekranem. Załączam plik RZX do Spectaculatora.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.09, 22:06:54
Jak się wczytuje - to nie jest interesujący  ;)
Ktoś inny może się zainteresuje.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.09, 22:57:00
Jak to nie interesujący - to plik do kompletu z tej samej kasety pochodzi tylko uszkodzony trochę. Na zx.pk.ru dałem link do pliku WAV który trzeba też przerobić na TZX. Tutaj też mogę dać link: http://www34.zippyshare.com/v/19458231/file.html (http://www34.zippyshare.com/v/19458231/file.html)

P.S. Zresztą DDp poradził sobie i z tym plikiem już :-) :-) No to zostało 2 gry do kompletu: ADVANCED PINBALL SIMULATOR i BATTLE SHIPS. Może BATTLE uda mi się zgrać ale PINBALL nie wiem bo mi wciągnęło taśmę i teraz jest trochę pogięta :-(
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.10, 01:20:24
Cytat: Phonex
Loader co prawda nie sprawdza parzystości dla screenu, ale dla danych sprawdza.
Racja, dostałem od DDp programik do sprawdzania sumy kontrolnej bloków w pliku TZX (w przykładzie Fist+):
TZXv1.13                                                               
  1. ID32 (archive info)                                               
  2. ID10 - standard checksum - Ok                                     
  3. ID10 - standard checksum - Ok                                     
  4. ID12 (pure tone)                                                   
  5. ID13 (pulse sequence)                                             
  6. ID14 - CERIKOPIK title screen - possible Ok                       
Note: The Cerikopik loader has no check of the sum for the title screen.
  7. ID12 (pure tone)                                                   
  8. ID13 (pulse sequence)                                             
  9. ID14 - CERIKOPIK checksum - Ok                                     
 10. ID12 (pure tone)                                                   
 11. ID13 (pulse sequence)                                             
 12. ID14 - CERIKOPIK checksum - Ok                                     
 13. ID10 - standard checksum - Ok                                     
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.10, 17:16:38
Udało mi się odtworzyć plik Side 2 z uszkodzonej taśmy. Dało się odczytać blok Bytes a blok Program skopiowałem z pliku Side 1 zmieniając nazwę na storona 2. Wszystko w ZX-Blockeditor :-). Czekam też na rezultaty pracy DDp odnośnie pozostałych dwóch gier które zgrałem jeszcze raz i umieściłem pliki WAV na forum. Może będzie komplet :-)

P.S. Na końcu taśmy jest muzyczka (http://www18.zippyshare.com/v/48205534/file.html) - prawdopodobnie pochodzi z programu "WW" działającego pod CP/M w komputerze Byte-01
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.10, 21:56:53
A więc mamy komplet. Cała kaseta Cerikopik -  Link: << Cerikopik (http://zxbyte.ru/doc/byte_kopik_tape1.zip) >>

Zmieniłem link bo stary wygasł.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Tygrys w 2012.12.11, 08:10:23
Gratuluje determinacji w dążeniu do celu! ;)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.17, 09:04:00
No tak, cel osiągnięty ale to nie ja skonwertowałem WAV do TZX tylko DDp :-) Nadal nie wiem jak to zrobić :-(. Skąd DDp wiedział, że trzeba wstawić w pliku TZX sekwencję pulsów i jakich na dodatek? No nie pojmuję tego. Niestety nie chce powiedzieć jak to zrobił. Zacytuję go jeszcze raz:
Cytuj
Main "secret": modify waveform to standard format and read as standard block. Then use ZX-blockeditor for make non-standard speeds, pulses, etc.

Inny cytat:
Cytuj
Horace Goes Skiing восстановлен путём замены основного блока (не удалось прочитать 5 байт по смещению ~0x1e95)

Ja wysłałem mu pliki WAV w fromacie 44100Hz Mono 8bit. Napisał iż konwertuje je do standardowego formatu - co to może oznaczać? Zauważyłem jedną rzecz odnośnie pliku WAV FIST+. Wysłałem mu niby uszkodzony plik WAV również 44100Hz Mono 8bit. Udało mu się skonwertować. Napisał, że dodał trochę magii :-) do pliku WAV:
Cytuj
Where in it bad blocks? You afflict me, here there are no bad blocks! (Just need to apply a tiny magic (http://narod.ru/disk/64378821001.0fe0c45393b2ef23769bc0e97a5e829c/fistplus_7z.html))
i w linku poprawiony przez niego plik WAV. Okazuje się iż plik ma teraz format 43873Hz Mono 16bit czyli zmienił 44100Hz na 43873Hz i 8bit na 16bit tylko czy to jest ten standardowy format o którym pisał ?!!
Dlaczego akurat 43873Hz a nie np. 48000Hz ???
ZX Spin naprowadził mnie na pewien trop. Otóż po załadowaniu pliku w Tape Browser pokazuje ciekawą rzecz odnośnie wartości T-states. Wiem już jak ją oblicza, dzieli częstotliwość zegara Z80 przez częstotliwość próbkowania pliku WAV:
3 500 000 Hz / 44 100 Hz = 79 Ts
3 500 000 Hz / 43 873 Hz = 79,7 ~ 80 Ts
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2012.12.17, 14:26:50
A może tę sekwencję pulsów da się podejrzeć w pliku WAV w edytorze audio w dużym powiększeniu po prostu?
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Phonex w 2012.12.17, 21:38:23
Po kolei

Skąd DDp wiedział, że trzeba wstawić w pliku TZX sekwencję pulsów i jakich na dodatek?

Po prostu ma na mundurku naszywkę sprawności "Hacker", czy jak sam mówi "Magik"  ;)
Trzeba po prostu obejrzeć loader w kodzie debuggerem/monitorem. Jeżeli jest turbo - można odczytać stałe czasowe. Wygodnie jest wstawić pułapkę żeby odczytać wartości rejestrów - stąd można wziąć długość i adres początkowy.

A może tę sekwencję pulsów da się podejrzeć w pliku WAV w edytorze audio w dużym powiększeniu po prostu?

Sekwencja impulsów jest dlatego, że nie da się zapisać tego w normalnym pliku. Normalnie jeden bajt to 16 impulsów. Na początku pliku są dwa impulsy synchronizacji. To razem 18. W tym Cerikopiku jest o jeden impuls mniej!
Impulsy w sekwencji mają taką samą długość jak potem bity w następnym bloku. To czy mają to być zera (krótsze) czy jedynki można odczytać debuggerem. Akurat w tym przypadku nie ma to żadnego znaczenia bo loader nic z tym wczytanym "niecałym" bajtem nie robi.
Impulsy synchronizacji (dwa pierwsze w sekwencji) według mnie nie są w Cerikopiku takie jak podał DDp, tylko standardowe: 667/735. Ale w zasadzie nie ma to znaczenia. Mogą być tamte.

Cytuj
Main "secret": modify waveform to standard format and read as standard block. Then use ZX-blockeditor for make non-standard speeds, pulses, etc.
...
Napisał iż konwertuje je do standardowego formatu - co to może oznaczać?

To turbo więc możnaby to wczytać gdyby przekształcić do standardowej prędkości. Rozciągnąć w edytorze audio! Ale bez impulsów synchronizacji, bo mogą się zrobić "za długie" i będzie błąd!
W sumie ciekawy pomysł, ale taki "dookoła". Według mnie załadowanie przerobionym oryginalnym loaderem jest pewniejsze. Chociaż jeżeli nie byłoby żadnych zabezpieczeń, a tylko turbo, to by wystarczyło.
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2013.04.02, 15:41:58
Chciałem tylko dodać iż wszelkie info na temat tej kasety dodał Prusak na swojej stronie.

Spectrum-совместимый компьютер "Байт", дополнительные кассеты (http://zxbyte.ru/byte26.htm)
Tytuł: Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
Wiadomość wysłana przez: Gelip w 2014.07.20, 09:52:44
Zamieszczam nowy link do kasety Cerikopik (http://zxbyte.ru/doc/tape/nabor2_tzx.zip).
(http://zxbyte.ru/pic/byte10_14_sm.jpg) (http://zxbyte.ru/pic/byte10_14.jpg)
Po wielu latach Prusak uzyskał w końcu dostęp do kilku takich kaset. Okazało się iż moja kaseta to Набор 2 - jedna z serii Набор 1 - Набор 11. Szata graficzna portalu zxbyte.ru uległa nieco zmianie a wraz z nią zmieniły się linki do niektórych plików - między innymi do kasety Cerikopik.