Autor Wątek: Jak przerobić grę z własnym loaderm - plik WAV na TAP?  (Przeczytany 22067 razy)

Gelip

  • *****
  • Wiadomości: 769
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
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)

Pytanie od razu - czy grę z własnym loaderem można skopiować za pomocą wyżej wymienionych programów typu Copy-Copy?
« Ostatnia zmiana: 2012.12.02, 19:59:59 wysłana przez Gelip »
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #1 dnia: 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  :(

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #2 dnia: 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.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #3 dnia: 2012.12.03, 14:36:53 »
Udało mi się wyłowić loader ;) Z danymi jest gorzej.

Gelip

  • *****
  • Wiadomości: 769
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #4 dnia: 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.
« Ostatnia zmiana: 2012.12.03, 21:00:30 wysłana przez Gelip »
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #5 dnia: 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 :)

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #6 dnia: 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.)

« Ostatnia zmiana: 2012.12.04, 10:19:06 wysłana przez Tygrys »

Gryzor

  • *****
  • Wiadomości: 2010
  • Miejsce pobytu:
    Warszawa
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #7 dnia: 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.


Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #8 dnia: 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ąć.

Gelip

  • *****
  • Wiadomości: 769
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #9 dnia: 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 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 :-(
« Ostatnia zmiana: 2012.12.04, 17:11:55 wysłana przez Gelip »
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

Gelip

  • *****
  • Wiadomości: 769
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #10 dnia: 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
Może komuś uda się zrobić z tego TZX :-)
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #11 dnia: 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
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ę?

Gelip

  • *****
  • Wiadomości: 769
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #12 dnia: 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".
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

Gelip

  • *****
  • Wiadomości: 769
    • Sysprep WinXP SP2 64-bit for pure UEFI with ACPI, AHCI, NVMe, USB 3.x
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #13 dnia: 2012.12.07, 15:14:47 »
Zeskanowałem oryginalną instrukcję do kasety Cerikopik - format DJVU: http://www60.zippyshare.com/v/28210895/file.html
"Byte" Personal Computer
Брестское ПО средств вычислительной техники

Phonex

  • *****
  • Wiadomości: 1261
  • Miejsce pobytu:
    Warszawa
Odp: Jak przerobić grę z własnym loaderm - plik WAV na TAP?
« Odpowiedź #14 dnia: 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.