Autor Wątek: Próby udawania (grafiki) ZX Spectrum  (Przeczytany 7060 razy)

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Próby udawania (grafiki) ZX Spectrum
« dnia: 2013.08.19, 09:45:45 »
Zrobie lekki oftop, choć będzie dotyczył języka C.

Moje eksperymenty w C dotyczące multicolorowych trybów Timexa.
Wolę najpierw napisać coś w C, dopracowac, zoptymalizować wiedząc co Z80 lubi,
by ostatecznie przepisac kod do asma.

« Ostatnia zmiana: 2013.08.22, 08:13:58 wysłana przez Tygrys »

MarekS

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Zielona Góra
Odp: Odp: Programowanie w SDCC
« Odpowiedź #1 dnia: 2013.08.19, 21:09:59 »
Zapytałbym się o emulator, jakiś konkretny, czy może rękodzieło?

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Odp: Programowanie w SDCC
« Odpowiedź #2 dnia: 2013.08.20, 08:26:37 »
To jest rękodzieło, nadal rozwijane i niewiele potrafiące. Nazywanie tego emulatorem jest błędne. Ja bym to nazwał 'symulatorem grafiki ZX Spectrum'.

MarekS

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Zielona Góra
Odp: Odp: Programowanie w SDCC
« Odpowiedź #3 dnia: 2013.08.20, 21:25:57 »
O to miło, zawsze warto coś napisać, sam po długiej przerwie powróciłem do swojego symulatora ZX'a.

Domyślam się że w tym projekcie nie chodzi tylko o samą interpretację danych, ale również całą symulację przebiegu procesu wyświetlania przez "ULĘ", by trzymać przebiegi.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Odp: Programowanie w SDCC
« Odpowiedź #4 dnia: 2013.08.20, 22:12:09 »
Symulacja ULA jest jedynie na poziomie wyświetlania gotowego obrazu. Nie ma timingów ani nic, bo to akurat nie jest mi do niczego potrzebne, przynajmniej na razie.
Jedynym ułatwieniem jest to że dane do generowania obrazu znajdują się w bajtach tabeli RAM od16384 do 23296 ;)
Niedawno doszedł timexowy multicolor, a kolejce czeka HiRes.

MarekS

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Zielona Góra
Odp: Odp: Programowanie w SDCC
« Odpowiedź #5 dnia: 2013.08.20, 23:02:03 »
Ok, na razie skupię się na zwykłym obrazie ZX48, podłączę emulację Z80, obsługę klawiatury to może mi to ruszy, tak przed końcem tygodnia lub miesiąca ;-).

Ah, ta spectrumowa organizacja obrazu ;-)

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #6 dnia: 2013.08.22, 08:15:38 »
Nie jest z tym aż tak źle ;) Zacznij od wyświetlenia grafiki w 8x8 z atrybutem a później to już pójdzie łatwo.

MarekS

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Zielona Góra
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #7 dnia: 2013.08.22, 12:25:01 »
Obraz mam zrobiony, bo to zadanie, na jedną herbatę, tj. jedną godzinę, albo na około 120 linii kodu, bo stawianie pikseli mam "unroll".

Ale organizacja zawsze była dla mnie "urocze",  bo już w latach 80 była anachroniczna ;-), ale skoro tak zrobili ULĘ, to co robić ;-), jak skończę ten mini emulator, to może napisze jakiś artykuł, być może komuś się przyda.

MarekS

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Zielona Góra
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #8 dnia: 2013.08.26, 22:17:56 »
gdy już ma się zrobiony prosty interpreter dla standardowego obrazu ULA, to można też zrobić interpreter dla multigigascreen:

obraz z bazy: ZX-Art: http://zx.maros.pri.ee/eng/authors/b/bfox/star-tree/border:1/palette:pulsar/mode:mix/

przykład (scr1-gs-82.png) dla mutligigascreen z atrybutami 8x2:


oraz (scr2-gs-88.png) zwykły gigascreen atrybuty 8x8, obraz http://zx.maros.pri.ee/eng/authors/p/pheel/oldscool-scene-island/






Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #9 dnia: 2013.08.27, 08:02:19 »
Fajne ;) Widzę, że przejmujesz się flashem. Ja jeszcze tego nie zrobiłem, bo nie miałem takiej potrzeby... na razie.

MarekS

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Zielona Góra
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #10 dnia: 2013.08.27, 10:38:22 »
co do flash'a to bit został odczytany i na razie tyle ;-), może dziś dokonam implementacji "migania", a swoją drogą te GigaScreen'owe obrazki są eleganckie, ale został mi jeszcze tryb multigigascreen "1", on ma kombinowane atrybuty, pierwsze 8 kolumn 8x8, 16 kolumn 8x1 i ponownie 8 kolumn 8x8, ehh te Spektrumowe kombinacje ;-)

pewnie w przyszłości postaram się zrobić ten projekt też w VHDL, ale na razie niech będzie w C++

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #11 dnia: 2013.11.08, 09:28:02 »
Miałem chwile wolnego i  zoptymalizowałem procedurę wyświetlającą obraz ZXa.
Startowałem z poziomu 200fps (200 konwersji ekranu, jeden po drugim, w ciągu sekundy, na moim komputerze), a skończyłem na prawie 800.
Czasami warto pooptymalizować ;)

MarekS

  • ***
  • Wiadomości: 111
  • Miejsce pobytu:
    Zielona Góra
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #12 dnia: 2013.11.08, 18:16:46 »
Zazdroszczę, ale nie FPSów pod tysiaka ;-) ale owych wolnych chwil. Nie mniej jak tylko zrobię interpreter multigigascreen "1", to fotkę naturalnie umieszczę ;-). Ciekawe kiedy to będzie?

A jaki to był tryb, natywny dla ZX'a, czy może ten z Timex'a z atrybutami 8x1?

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4540
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: Próby udawania (grafiki) ZX Spectrum
« Odpowiedź #13 dnia: 2013.11.10, 09:29:31 »
Natywny oraz Timexowy. Timexowy jest wolniejszy od natywnego o kilkanaście ramek.