Gönderen Konu: Amstrad CPC aktif gösterim yüzeyi büyüklüğü  (Okunma sayısı 7864 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2866
  • Advanced User Simulator
    • ae unutmadan
evet garip bir cümle kullandım biliyorum ama Overscan ve underscan alanları da dahil olaibliyor bu bahsettiğim şeye.

Soru basit, amstrad cpc CRTC'nin çizebildiği en geniş alanı pixel ölçüsü ile nasıl ifade edebiliriz?



Örn.
Zx Spectrum Buffer 256x192
Bu buffer'ın üstünde, sağ ve solunda 48, altında 56 pixellik border alanı var. Başka ekran modu yok, yani ula'nın çizdiği alan: 352x292

C64, standard dışı bir bir saat hızı var, dolayısı ile PAL'de yatay 768 pixel çizmiyor, 504 pixel çiziyor, bunun hblanklarını atınca geriye 403 pixel kalıyormuş: 403x284

Amiga, border yok onda, overscan var, 384x285 lores (3 pixel kayıp), PAL interlaced 768x570 maximum, son 6 pixel görüntülenemiyormuş.

Amstrad'ı araştırmadım, tanımıyorum, birsürü ekran modu var, donanımı tanıyan biri lazım. Hadi bakalım CPC Club, know your hardware!

Sebep? Şöyle bir çalışma başlattım:
https://docs.google.com/spreadsheets/d/1LwaNlTO4jv2Hdko35Fq3KGeTEIs7uri3DMgvPCz2CSU/edit?usp=sharing

Çevrimdışı matahari

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 208
    • The Blog of Mert Börü
Ynt: Amstrad CPC aktif gösterim yüzeyi büyüklüğü
« Yanıtla #1 : 28 Ocak 2019, 23:30:54 »
Sevgili Ref,

Spreadsheet'inizi inceledim.
  • Amstrad satırındaki bilgiler doğrudur. (Tek eksik, interlace çözünürlüğünün belirtilmemiş olması.)
  • Bulduğunuz CPCWiki linki, eksikleri olmasına karşın, bu konu hakkındaki birçok soruyu yanıtlayacak niteliktedir.

İzninizle, konuya farklı bir açıdan yaklaşıp CPCWiki'de kaleme alınmamış birkaç hususu paylaşayım. Belki ileride sizin ya da bir başka Z80 programcısının işine yarayabilir.

Kısaca özetlersek;

Her ne kadar Amstrad CPC ailesi ile ilgili birçok online kaynakta en yüksek çözünürlük olarak 832x288 pixel kullanılabileceği belirtilse de, aslında birkaç küçük CRTC trick yardımıyla 832x292 pixel çözünürlük ekrana basılabilir.

Ancak,
  • Her iki çözünürlüğün de 'standart dışı' olması,
  • Amstrad MP1/MP2 modülatör çıktısının standart PAL TV ile görüntülenmesinde yaşanan senkronizasyon sorunları,
  • Amstrad monitör modelleri arasındaki teknik uyumsuzluklar,
  • Amstrad CRTC versiyonları arasındaki zamanlama/overscan uyumsuzlukları,
  • CPU'nun tamamen bu işe odaklanarak başka bir iş yapamaması,
sebepleriyle, pratikte en fazla 768x288 pixel çözünürlük tercih edilir. Eğer interlace kullanılırsa, tarama satır (scanline) sayısı ikiye katlanarak 768x576 pixel ekrana basılır.

Detaya girersek;

Düşeyde iki VSync arasında toplam 312 adet tarama satırı mevcuttur. VCC=R7, VCC=R6 ve VSync için gereken süre yüzünden, 24 tarama satırı kullanılmaz. Toplam tarama satırı 288 ile sınırlı tutulur. (Bazı CRTC trickleri sayesinde bu sayıyı 4 arttırarak 292'ye çekmek mümkün, ancak CPC ailesi için tek tip CRTC olmamasından kaynaklanan uyumsuzluklar yüzünden en fazla 288 tercih edilir.)

Yatayda ise durum biraz daha farklı. Ekran Mode'larından bağımsız olarak, her tarama satırında 64 adet NOP komutu çalıştırılacak kadar süre (64x4 T-state) bulunur. Bu sabit süre içerisinde her Mode'da farklı sayıda pixel ekrana basılır. Örneğin Mode 2'de 4 T-state'lik süre içerisinde, önceden ekran hafızasına yazılmış olması kaydıyla, 2 renkten oluşan toplam 16 pixel ekrana taşınır. Bu işlemin 64 kez tekrarlandığını düşünürsek, Amstrad'ın Mode 2'de her tarama satırı için aslında 1024 pixel taşıyabilme potansiyeli olduğunu kolayca görürüz. Ancak, HSync ve benzeri senkronizasyon işlemleri için gereken süreler aradan çıkarılınca, geriye en fazla 832 pixel kalır.

Border kapatılarak overscan mode'una geçilmesi durumunda, Mode 2'de standart ekran hafızası kullanılarak bir tarama satırında 768 pixel ekrana kolayca basılabilir. 768 pixel'den fazla (örneğin 832 pixel) satır genişliği durumunda ise, max. ekran hafızası 32K olabileceği için, ya pixel basmadan sadece raster boyama yoluna gidilir ya da ekran hafıza adresi her tarama satırında yeniden tanımlanır. Bu durumda CPU'nun neredeyse tamamı rasterline işlemlerine ayırıldığı için bu yöntem pek tercih edilmez, sadece 768 pixel ile sınırlı tutulur.

*NOT: Yukarıdaki bilgiler sadece gerçek Amstrad donanımları için geçerlidir. Emülatörlerin durumu bambaşka. Günümüz standartları çerçevesinde bulabileceğimiz en kaliteli Amstrad emülatörü olan WinApe, alttan/üstten toplam 18 tarama satırını kırparak en fazla sadece 768x270 pixel çözünürlüğü destekler! (Bu yüzden yazılan kodların gerçek bir donanım üzerinde test edilmesini şiddetle tavsiye ederim.)

Çevrimdışı Osman Tansel

  • Retromanik
  • *****
  • İleti: 8
  • LET a=a+1
Ynt: Amstrad CPC aktif gösterim yüzeyi büyüklüğü
« Yanıtla #2 : 03 Nisan 2019, 13:00:14 »
Sebep? Şöyle bir çalışma başlattım:
https://docs.google.com/spreadsheets/d/1LwaNlTO4jv2Hdko35Fq3KGeTEIs7uri3DMgvPCz2CSU/edit?usp=sharing
Ref kardeş, değinmeden geçemedim... Gençliğimde, sene 84-85, Ankara'nın ünlü kitapçısı Galeri Kültür'ün arkasında elektronik ürünler satan bir mağazanın vitrininde Comx35 diye bir bilgisayar görüp maddi yetersizlik nedeniyle alamamıştım. Satın almak için duyduğum isteğin nedeni, fotoğrafda da göreceğiniz gibi, klavyesinin yanındaki joystick'ti... İlgili linki de yolluyorum, umarım listenize girecek kadar bilgi vardır.

https://en.wikipedia.org/wiki/Comx-35




Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2866
  • Advanced User Simulator
    • ae unutmadan
Ynt: Amstrad CPC aktif gösterim yüzeyi büyüklüğü
« Yanıtla #3 : 03 Nisan 2019, 22:39:18 »
Sebep? Şöyle bir çalışma başlattım:
https://docs.google.com/spreadsheets/d/1LwaNlTO4jv2Hdko35Fq3KGeTEIs7uri3DMgvPCz2CSU/edit?usp=sharing
Ref kardeş, değinmeden geçemedim... Gençliğimde, sene 84-85, Ankara'nın ünlü kitapçısı Galeri Kültür'ün arkasında elektronik ürünler satan bir mağazanın vitrininde Comx35 diye bir bilgisayar görüp maddi yetersizlik nedeniyle alamamıştım. Satın almak için duyduğum isteğin nedeni, fotoğrafda da göreceğiniz gibi, klavyesinin yanındaki joystick'ti... İlgili linki de yolluyorum, umarım listenize girecek kadar bilgi vardır.

https://en.wikipedia.org/wiki/Comx-35




Arşivimde bir adet mevcut. :) ComX'in gizemli bir duruşu var, sebebi de içindeki işlemcilerin nasa'dan arta kalan kozmik radyasyona daha dayanıklı çiplerden oluşması konusundaki hikaye. Açıp bakmadım aslında, biraz üzerine kozmik radyasyon sıkayım bakayım ne olacak falan demedim (henüz). :D ComX pek ilgimizi çekmiyor çünkü üzerinde 15-20 tane yazılım geliştirilmiş. ComX emülasyonuna ilgi duyan var mı bilmiyorum.

Kafamda raspberrypi tabanlı bir amiga handheld projesi var, ama amiga emülasyonu çalıştıracak makinenin tüm 8bitleri de çalıştırması mümkün olacaktır. Bu tabloyu yaratmaktaki amacım "bizim ilgi duyduğumuz retro bilgisayarların hepsi için optimum performans verecek bir LCD panel var mıdır?" sorusuna cevap vermekti. Veremedim :D Çok fazla farklı çözünürlük kullanılmış, görüntü upscale edilirken mutlaka bozulmaya uğramak zorunda kalacak. Ya da 4k gibi aşırı yüksek çözünürlükte bir monitör kullanmak gerekiyor ki benim amacım bu işi çok ucuza halletmekti. Neyse şimdilik rafa kaldırdım, biraz daha yaşlanayım öyle...