Autor Wątek: Akcelerator graficzno-dźwiękowy do Spectrum  (Przeczytany 13826 razy)

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Akcelerator graficzno-dźwiękowy do Spectrum
« dnia: 2016.07.13, 20:57:35 »
Ponieważ to mój pierwszy post na forum, to witam wszystkich serdecznie.

Chodzi mi po głowie pomysł zbudowania akceleratora bazującego na RPi Zero (mały, tani, popularny) z wykorzystaniem minimalnego interfejsu (najlepiej bez ale chyba się nie obędzie). Podłączenie RPi daje także możliwość korzystania z internetu, interfejsów SPI, klawiatury itp., a wszystko za 5$. Dodatkowo implementacja akceleratora będzie w software, więc można go w nieskończoność rozbudowywać lub wdrażać konkurencyjne implementacje.

Co chciałbym uzyskać:
1. Komunikację po portach w obie strony, tak aby można było korzystać z akceleratora także w BASICu
2. Mirrorowanie pamięci video w celu wyświetlania jej zawartość przez RPi i dalej poprzez HDMI na monitorze
3. Możliwość zapisu i odczytu dowolnej komórki pamięci RAM ZX Spectrum (zamiast komunikacji przez port - zależy co szybsze)

W związku z tym mam pytania - jak to osiągnąć?
Znalazłem ciekawe rozwiązania bazujące na układzie 8255 jak UR-4 czy http://bneven.com/zxio.html ale czy konieczne jest użycie w ogóle dodatkowego układu? Czy nie wystarczyłby level-shifter i podpięcie się bezpośrednio pod GPIO RPi?
Mirror pamięci to zapewne sprawa trudniejsza i niemożliwa do wykonania bez układu buforującego który czytałby szynę adresową i szynę danych procesora i kopiował dane wysyłane do videoramu także do swojej pamięci - czy dobrze kombinuję? Mówię o buforowaniu, ponieważ RPi z Linuxem nie jest systemem czasu rzeczywistego i gubiłby dane. Na początek myślałem o podpięciu Teensy 3.1 (które jest tanie i posiada kontrolery DMA i odpowiednią szybkość i liczbę pinów), który zczytywałby dane i wysyłał po SPI do RPi.
Co 3 pkt. rozumiem, że nie jest to banalne jeśli w ogóle wykonalne bez ingerencji w płytę główną? Czy może coś podobnego jak jak wspomniany dzisiaj DataGear Velesofta?

Co sądzicie?

steev

  • *****
  • Wiadomości: 1363
  • Miejsce pobytu:
    inode 42
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #1 dnia: 2016.07.13, 22:49:39 »
Krok 2 - do RPi dochodzi cpld i shadow RAM żeby stworzyć bufor. To rodzi kolejne pomysły, więc...
Krok 3 - wywalamy cpld i RAM, zastępując je FPGA. Rozwijamy skrzydła i...
Krok 4 - wywalamy niepotrzebny już ZX Spectrum
;)
IMHO - fajność dłubania : 10+, praktyczność : 3... może 4...

Natomiast sam pomysł sprzęgnięcia RPi z ZXem jako moduł uniwersalnego intrerfejsu jest całkiem fajny.
Osobiście jestem zwolennikiem stosowania mikrokontrolerów (każdemu jego porno) ale RPi miałby w pewnych aspektach sporą przewagę.

(btw, z interfejsowych ciekawostek : http://www.fruitcake.plus.com/Sinclair/Spectrum/Spectra/SpectraInterface.htm )
Machines should work. People should think.

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #2 dnia: 2016.07.13, 23:43:38 »
:) Chodziło mi maksymalne obcięcie kosztów, stąd pomysł na samo "gołe" RPi.
Sam mikrokontroler nie wystarczy, ponieważ żaden nie da mi HDMI, stąd RPi (Zero).

PS. Spectrę widziałem.

jackfinch

  • ****
  • Wiadomości: 426
  • Miejsce pobytu:
    uk
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #3 dnia: 2016.07.14, 05:04:38 »
Witam
Gdzie można kupić RPi Zero za 5$, bo jakoś nigdzie nie mogę znaleźć w tej cenie.
Pozdrawiam

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #4 dnia: 2016.07.14, 08:11:38 »
ThePiHut.com? Pimoroni.com?
RPi Zero pojawia się średnio co dwa tygodnie i kosztuje 4 funty. Dostaję od nich notyfikację zawsze jak są na stocku. Obecnie nie ma.

zaxon

  • *****
  • Wiadomości: 4693
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #5 dnia: 2016.07.14, 09:16:33 »
Ben robi ZX HD, niedlugo juz powinien miec dostepne. Z tego co wiem to wlasnie bazuje na RB pi , ma wyjscie HDMI i ULE plus,

https://www.youtube.com/watch?v=5BXVwEvXEa4
Siedem kilo smalcu,gesich jajek kopa,zeby moc to polknac tegiego trza chlopa. GG 3456993

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #6 dnia: 2016.07.14, 10:24:30 »
Widziałem również ZX HD i faktycznie pomysł jest bardzo podobny.
Mi chodzi o to, o czym marzyłem 30 lat temu mając pierwszego Timexa: szybka grafika w BASICu i spritey (jak zobaczyłem je pierwszy raz na SVI 738 spać nie mogłem).
Mirroring video (co widać na video ZX HD) jest jako drugi priorytet. Na początku zakładałem, że akcelerator będzie pracował jako dual screen. Potem stwierdziłem, że przecież RPi to także możliwość korzystania z internetu (np. ładowanie gier lub grafiki) oraz karty SD, więc zastąpi także DIVIDE i General Sound z samplami. RPi jako akcelerator/koprocesor ma właściwie nieskończone możliwości (USB, kamery itp) jako rozszerzenie ZX Spectrum.
Najbardziej zależało mi na komunikacji bez dodatkowych rozbudowanych interfejsów - początkowo nawet myślałem o porcie EAR/MIC ale prawdopodobnie będzie zbyt wolny do komunikacji - stąd pytanie czy nie można się po prostu podpiąć pod edge connector bezpośrednio z GPIO RPi? Co o tym sądzicie? (oprócz ewentualnej zamiany sygnałów 5V na 3.3V)?

zaxon

  • *****
  • Wiadomości: 4693
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #7 dnia: 2016.07.14, 12:01:35 »
W zasadzie to najprosciej podlaczyc sama membrane , a na Pi napisac emulator ZX-a  :D Ale to juz tez bylo ;)   http://sinclair.recreatedzxspectrum.com/
Siedem kilo smalcu,gesich jajek kopa,zeby moc to polknac tegiego trza chlopa. GG 3456993

Barts

  • *****
  • Wiadomości: 505
  • Miejsce pobytu:
    Łódź
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #8 dnia: 2016.07.14, 12:14:58 »
Ben robi ZX HD, niedlugo juz powinien miec dostepne. Z tego co wiem to wlasnie bazuje na RB pi , ma wyjscie HDMI i ULE plus,
https://www.youtube.com/watch?v=5BXVwEvXEa4

Co rozumiesz przez "mieć dostępne"? Będzie sprzedawał, czy udostępni schematy?

ZX Freeq

  • *****
  • Wiadomości: 1833
  • Miejsce pobytu:
    Warszawa
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #9 dnia: 2016.07.14, 12:36:14 »
Że niedługo będzie sprzedawał. Chociaż to "niedługo" się przeciąga.... Zdaje się, że są jakieś zawirowania personalne....
ZX80|ZX81+16kB+PandAY|ZX 48k/+/128k+/+2/+2A/+3/Vega/Next|QL+QIDE|JS128|Timex 2048+2040|UK2086|FDD3000+3.5''|AY|ZX HD|Divide2k11/2k14|DivMMC/PicoDivSD|BetaDisk 128|Opus|Masakrator FM|If 1/2/Microdrv|Multiface 1|+2A\B SDI-1|SJS 1/2|ZX Printer|TZXDuino|+3 HxC USB|ZXUno|Omni
Z88|A500/600|PC200|Ent128

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #10 dnia: 2016.07.14, 13:44:56 »
Zaxon, ja nie chcę emulatora przecież :) Tak samo jak bym nie chciał zrobić na FPGA 100x szybszego ZXa z 2GB RAMu. Dla mnie fun z takiego sprzęgnięcia RPi z ZX będzie polegał zarówno na rozwijaniu firmware'u RPi jak i wykorzystywaniu jego możliwości przez ZX - wciąż te same ograniczenia 48KB RAMu, wolny procesor itp. W pewnym sensie takie rozwiązanie jest podobne do GeneralSound'a tylko że zawiera w sobie również "koprocesor" graficzny.

Ponieważ ja jestem bardziej softwarowy niż hardwarowy to trudno mi stwierdzić jak trudny byłby ten projekt od strony sprzętowej - czy potrzebuję skomplikowanego interfejsu czy po prostu podpinam się pod szynę. Na pewno nie chcę żadnych CPLD/FPGA.

steev

  • *****
  • Wiadomości: 1363
  • Miejsce pobytu:
    inode 42
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #11 dnia: 2016.07.14, 15:25:48 »
Ponieważ ja jestem bardziej softwarowy niż hardwarowy to trudno mi stwierdzić jak trudny byłby ten projekt od strony sprzętowej - czy potrzebuję skomplikowanego interfejsu czy po prostu podpinam się pod szynę. Na pewno nie chcę żadnych CPLD/FPGA.
Pi Zero ma za mało pinów, żeby się podpiąć bezpośrednio do szyny. Bez wielonóżkowego CPLD się IMHO nie obejdzie (lub bez worka  TTLi :)
Machines should work. People should think.

smok.wawelski

  • ***
  • Wiadomości: 225
  • Miejsce pobytu:
    Warszawa
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #12 dnia: 2016.07.15, 00:01:25 »
RPi Zero ma 25 GPIO. Ile wg Ciebie bym potrzebował, aby zrobić najprostszy interfejs, który siedziałby na porcie Spectrum i pozwalał na dwukierunkową komunikację?
Jeśli dobrze liczę to http://bneven.com/zxio.html używa 14 pinów + reset.
Jeśli nóżek jest za mało, do testów mam jeszcze Teensy 3.1, który ma z kolei 33 GPIO.

PS. Głupie pytanie: czy port joysticka (mam Timexa 2048) może być użyty jako output? Znalazłem opis Alchemista (ultra high loader) który potrafi ładować dane z prędkością 180Kbps przez port joysticka, ja potrzebuję głównie w drugą stronę.

trojacek

  • *****
  • Wiadomości: 6839
  • Miejsce pobytu:
    Warszawa
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #13 dnia: 2016.07.15, 00:04:10 »
czy port joysticka (mam Timexa 2048) może być użyty jako output?

Bez przeróbek - nie.

steev

  • *****
  • Wiadomości: 1363
  • Miejsce pobytu:
    inode 42
Odp: Akcelerator graficzno-dźwiękowy do Spectrum
« Odpowiedź #14 dnia: 2016.07.15, 01:15:34 »
RPi Zero ma 25 GPIO. Ile wg Ciebie bym potrzebował, aby zrobić najprostszy interfejs, który siedziałby na porcie Spectrum i pozwalał na dwukierunkową komunikację?
Jeśli dobrze liczę to http://bneven.com/zxio.html używa 14 pinów + reset.
Zależy co chcesz osiągnąć.
Jeśli planujesz jedynie dwukierunkową komunikację na wybranym porcie (kolejnych portach), to mniej więcej właśnie tyle.
Jeśli chcesz sniffować szynę żeby śledzić zapisy do pamięci obrazu, powiedziałbym, że minimum 26.
Jeśli chcesz by RPi udawała równocześnie kilka urządzeń (klawiatura, myszka, joy, magnetofon, dźwięk) to zacząłbym liczyć od 28.
Jeśli chcesz przejąć szynę i modyfikować/czytać pamięć (pamiętaj o odświeżaniu i nie wchodź w paradę ULA!) przekroczysz 30.
Machines should work. People should think.