Autor Wątek: Timex TC2048 vs Sinclair ZX Spectrum  (Przeczytany 19993 razy)

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #15 dnia: 2014.09.30, 08:08:29 »
Ze schematu nie wynika, by był intencjonalnie zaimplementowany odczyt portu 255.
A nie mam sprawnej klawiatury, by podłączyć do Harlequina :/

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #16 dnia: 2014.09.30, 09:33:09 »
Pływające I/O to efekt uboczny uproszczenia konstrukcji ULA i dotyczy on nie tylko portu 255 ale dowolnego nieparzystego portu w Spectrum bez dodatkowego hardware'u, który dekodowałby stosowne adresy i podawał swoje dane. Jeśli więc na schemacie nie widać nic takiego to można spokojnie założyć, że Harlequin będzie działał jak Spectrum zwłaszcza, że eliminacja tego efektu ubocznego powodowałaby straty na zgodności z oryginałem.



trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #17 dnia: 2014.09.30, 09:37:22 »
OK, rozumiem, ale nie widzę, w jaki sposób na szynę danych przy aktywnym sygnale IORQ miałyby być wystawione atrybuty. Może i konstruktorzy ULA coś sobie uprościli, ale logikę Harlequina trzeba by do tego nieco "zepsuć".
Jak pisałem, nie mam klawiatury, którą mógłbym podłączyć, aby sprawdzić na Harlequinie.

Gryzor

  • *****
  • Wiadomości: 2010
  • Miejsce pobytu:
    Warszawa
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #18 dnia: 2014.09.30, 09:41:36 »
Timex ma bufor LS245 (albo 244, nie pamietam) na szynie, zgodnie ze sztuka.
Przez to nie ma efektu floating bus. Przez to tez chyba nie dziala IF2.
Ma tez oddzielne tory EAR i MIC - SCLD mial troche wiecej koncowek :-) Dlatego nie ma dzwieku podczas ladowania.

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #19 dnia: 2014.09.30, 09:51:26 »
@trojacek Tu jest wyjaśnione (w pierwszym zdaniu pierwszego punktu) skąd się bierze pływające I/O: http://ramsoft.bbk.org.omegahg.com/floatingbus.html
Nie znam się na elektronice na tyle, żeby ocenić czy Harlequin ma (albo nie ma) te rezystory tam gdzie oryginalne Spectrum ;)

trojacek

  • *****
  • Wiadomości: 6846
  • Miejsce pobytu:
    Warszawa
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #20 dnia: 2014.09.30, 10:09:40 »
Tak, Harlequin ma te rezystory. Faktycznie to może tak zadziałać, a nawet jeśli nie, to można zmniejszyć wartości w drabince U47, by działało :D

andy

  • *****
  • Wiadomości: 1068
  • Miejsce pobytu:
    Kielce Wsch.
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #21 dnia: 2014.10.01, 20:21:33 »
Pamiętam ze 3-4 gry z przerobionymi loaderami. Po załadowaniu była opcja "Spectrum czy Timex" i jakieś POKE'i.
pzdr
a.
POKE 35899,0  ZX 81, ZX Spectrum +, +2, Harlequin, ZX Max 48 & 128, Spider 48, Chrome 128, TC 2048, divIDE, CPC 464

djslam

  • *
  • Wiadomości: 17
  • Miejsce pobytu:
    Bydgoszcz
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #22 dnia: 2015.03.20, 22:04:15 »
Pamiętam, że z Uridium też był problem i w Bajtku opublikowany był listing, który umożliwiał uruchomienie tej gry na TC 2048.

A masz możliwość odtworzenia tego listingu? Pamiętasz, który to był nr Bajtka? Szukam spor czasu wersji działającej na TC2048 i nie ma... na portugalskich stronach tylko dead link :(

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #23 dnia: 2015.03.21, 03:09:37 »
Znalazłem to!! :D

Tyle że nie w Bajtku a w Komputerze 1-88s24.
Zakładam że nawet jak go nie masz to wiesz skąd wziąć djvu.
Miłej zabawy. ;)
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

djslam

  • *
  • Wiadomości: 17
  • Miejsce pobytu:
    Bydgoszcz
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #24 dnia: 2015.03.21, 09:03:23 »
No i elegancko :) Wielkie dzięki... jak uda mi się przerobić Uridium to opublikuje wersję działającą dla wszystkich zainteresowanych. A jak już idziemy tym torem to Arkanoid też nie działa poprawnie na TC, jest też jakaś możliwość naprawy tego problemu?

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #25 dnia: 2015.03.21, 11:10:52 »
Tu na początku wątku wymieniają kilka tytułów, a kto wie może dalej są na nie sposoby, nie chciało mi się czytać. ;)
http://www.programd.com/57_d2f2b0ef71e8a637_1.htm

A jeśli chcesz zagrać w Arkanoida to wejdź na Google grafika i wpisz "atari breakout" to wyświetli ci rozwiązanie. ;)

« Ostatnia zmiana: 2015.03.21, 12:44:49 wysłana przez ZbyniuR »
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #26 dnia: 2015.03.23, 08:30:28 »
A jak już idziemy tym torem to Arkanoid też nie działa poprawnie na TC, jest też jakaś możliwość naprawy tego problemu?

Niestety raczej nie. Arkanoid jest jedną z kilku gier na Spectrum, które do synchronizacji grafiki używa czegoś co się nazywa "floating bus" - przy odczycie z portu, który nie jest dekodowany przez żadne podłączone urządzenie ULA wystawia na szynie danych ostatnio bajt zapisany do pamięci atrybutów. Dzięki temu można na przykład synchronizować wyświetlanie do dołu ekranu zamiast do początku ramki. W wypadku Spectrum programy używające tego efektu czytają dane z portu 255 - w wypadku TC jest on używany do przełączania trybów graficznych i odczyt z niego zwraca (o ile pamiętam) aktualnie ustawiony tryb graficzny. Na ile rozumiem konstrukcję TC nie ma on w ogóle odpowiednika floating bus'a (który w ZX jest efektem ubocznym niepełnego dekodowania ULA) i te kilka gier (w tym najbardziej znana - Arkanoid) po prostu nie da się na tym sprzęcie odpalić.

edit : Wciągnąłem Arkanoida do emulatora i podejrzałem co się tam dzieje - jeśli wywalić całkiem synchronizację do portu 255 to gra rusza, ale jest niegrywalnie szybka. Jeśli zamiast tego wstawić synchronizację do ramki (EI/HALT, bo normalnie gra chodzi z wyłączonymi przerwaniami) to gra też rusza, ale jest dla odmiany niegrywalnie wolna. Trzeba by pokombinować z przerobieniem pętli synchronizującej na jakieś proste opóźnienie, ale wtedy prawie na pewno gra będzie chodzić nierówno - jak będzie robić coś więcej niż tylko wyświetlać paletkę i piłeczkę to będzie zwalniać. Obawiam się, że cała walka chyba jest niewarta świeczki.
« Ostatnia zmiana: 2015.03.23, 09:01:44 wysłana przez matofesi »

ikci

  • *****
  • Wiadomości: 1216
  • Miejsce pobytu:
    Kraków
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #27 dnia: 2015.03.23, 21:17:00 »
Tym bardziej, że jest Batty - klon Arkanoida, który śmiga na TC2048  8)
ZX Spectrum 48K, ZX Spectrum +, ZX Spectrum 128K, ZX Spectrum +2, ZX Spectrum +2B, ZX Spectrum +3, TIMEX TC2048, UNIPOLBRIT Komputer 2068, Didaktik Gama 80kB, 
Amstrad/Schneider CPC6128, Schneider CPC464, Commodore C64, Atari 800XL, 65XE 130XE, A500+, A600, A1200, ATARI 1040 STF

djslam

  • *
  • Wiadomości: 17
  • Miejsce pobytu:
    Bydgoszcz
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #28 dnia: 2015.03.23, 21:48:01 »
Tylko, że pamiętam Arkanoida, który działał na TC2048 bez problemów. Grałem w niego namiętnie, niestety kopia kasety z grą przepadła... W necie jakiś koleś z Chile opublikował TZX gier Uridium, Arkanoid i paru innych na TC2048, ale linki nie działają :/ Aktualnie staram się z nim skontaktować... Kto wie może się uda.

matofesi

  • *****
  • Wiadomości: 2049
  • Miejsce pobytu:
    Toruń/Poland
Odp: Timex TC2048 vs Sinclair ZX Spectrum
« Odpowiedź #29 dnia: 2015.03.24, 08:17:55 »
Tylko, że pamiętam Arkanoida, który działał na TC2048 bez problemów.

Ja nie mówię, że nie da się tego zrobić. Mówię tylko, że trzeba by bardzo dokładnie "rozmontować" pętlę synchronizującą do ekranu i zamienić na pętle opóźniające. A i tak nie będzie to działało dokładnie tak jak na ZX, bo jeśli przed pętlą opóźniającą będzie się działo mniej to następne operacje nastąpią za wcześnie i całość będzie chodzić za szybko. Może to powodować zmiany prędkości ale również "ścinanie" sprite'ów jeśli kod rozejdzie się z rastrem. Trochę lepiej mogłoby być gdyby połączyć pętle opóźniające z synchronizacją do przerwania (co kilka-kilkanaście pętli opóźniających dodać EI/HALT/DI) - wtedy być może dałoby się uzyskać większą stabilność.