Gönderen Konu: 2000'li yıllara ait Oric Demoları.  (Okunma sayısı 38564 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2673
  • Advanced User Simulator
    • ae unutmadan
Ynt: oric renkleri
« Yanıtla #15 : 17 Kasım 2013, 22:29:56 »
ama tabii o da spectrum'un sinematik özelliği be :) Batmasın o buffer!

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 320
Ynt: oric renkleri
« Yanıtla #16 : 18 Kasım 2013, 08:23:38 »
Nispeten doğru ama 240x1 de 4 renk maruziyeti yanlış. ön ve arkaplan rengini 240 piksel içinde herhangi bir yerde tekrar belirleyebiliyoruz. ren bilgisini verdikten sonra o satır souna kadar değiştirilmezse aynı kalıyor sadece.

İlk 16 pikselin kullanılmaması diye bir şey yok. Sadece satırın başında o satıra ait renk ve arkaplan bilgisi verdiğinde bir tanesi renk bir tanesi arka plan olmak üzere 2 byte kullanılmadığı için öyle düşünülebilir.

Twilighte'in kullandığı teknik 1 satır atlayarak o grafikleri elde ediyor ama mantığını anlamış değilim. neden 1 satır atlıyor? bilmiyorum. Tek açıklaması çizim süresini yarı yarıya kısaltmak olabilir.

Kısacası o kadar çetrefilli değil. Invers bit kodunu da kullanarak zemin ve ön renk kombinasyonları ile 8 rengi aynı satırda gayet rahat kullanabiliyoruz. Sadece eğer bu renkler değişecekse değişme öncesinde tekrar 1 byte içinde tanımlamak gerekiyor.

Çevrimdışı witchdoktor

  • RAAT
  • Normalleşmiş Retroman
  • *
  • İleti: 758
Ynt: oric renkleri
« Yanıtla #17 : 18 Kasım 2013, 11:22:09 »
C64'ün lineer pixel buffer'ında kolaya alışmış bu arkadaşlara spectrum/oric çok ürkütücü geliyordur eminim.

'Lineer pixel buffer" mı? Dalga mı geçiyorsun?

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2673
  • Advanced User Simulator
    • ae unutmadan
Ynt: oric renkleri
« Yanıtla #18 : 18 Kasım 2013, 22:31:02 »
C64'ün lineer pixel buffer'ında kolaya alışmış bu arkadaşlara spectrum/oric çok ürkütücü geliyordur eminim.

'Lineer pixel buffer" mı? Dalga mı geçiyorsun?

Eheh, evet biraz abartı olmuş, zx spectrum'a göre bir hayli lineer sayılır :D En azından karakterler peş peşe geliyor.

Sadece eğer bu renkler değişecekse değişme öncesinde tekrar 1 byte içinde tanımlamak gerekiyor.

Daha iyi anlamak için soruyorum,
diyelim ki siyah renkte 10 byte boyunca giden bir çizgi var, bunu yapmak için, 1 byte'ta renk gönderdik,  9byte bitmap gönderdik, oldu sana 10 byte, (6x9=) kesintisiz 42 pixellik bir çizgi.

Ve sonra bu uzun siyah çizginin ortasına mavi kısa bir çizgi çekmek istedim, 1 byte siyah + 4 byte bitmap + 1 byte mavi + 1 byte bitmap + 1byte siyah + 4 byte bitmap yaptığımızda nasıl bir çizim oluşuyor? Yani soru şu, 1 byte renk bilgisi kodladığında o sırada çizilmesi gereken bitmap neye dönüşüyor? Sonuçta bitmap büyüklüğü belli. Mesela peş peşe birsürü renk kodu göndersek ne oluyor? Bu örnekte yine kesintisiz 42 pixel çizebildik mi yoksa arada boşluklar mı oluştu?

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 320
Ynt: 2000'li yıllara ait Oric Demoları.
« Yanıtla #19 : 18 Kasım 2013, 23:38:32 »
Evet, arada boşluklar olmak zorunda. Burada yapılan hinlik invert mevzusu. Şöyle ki, araya renk için 1 byte'lık veri koymadan var olan bitmap değerinin 128 fazlasını verdiğimizde orada olması gereken rengin eşleniği oluşuyor.

Çok karıştı değil mi?





Kısacası renk kodlarının ınverse özelliklerine +128 ekleyerek ulaşabiliyoruz. Bunun için yan yana 2 byte'Lık bitmapın arasına renk düzeltici kod koymadan da farklı renkler oluşabiliyor.

Bu yolla her renk değişiminde bir siyah boşluk olmadan arkaplan ve önplan renklerini ve invert kodlarını kullanarak kesintisiz grafikler oluşabiliyor.

Aşağıdaki grafikler elde edilebiliyor bu şekilde.

Image

Image

Image

Image

Image

Image

Image

Image


Tüm bu örnekler üstüne şunu da açık olarak söyleyebilirim ki hala ben de tam manasıyla oturtabilmiş değilim :)


Çevrimdışı witchdoktor

  • RAAT
  • Normalleşmiş Retroman
  • *
  • İleti: 758
Ynt: 2000'li yıllara ait Oric Demoları.
« Yanıtla #20 : 19 Kasım 2013, 14:39:47 »
Bu kadar tantanadan sonra meraklandım ve bir Oric donanım FAQ'ine veya grafik donanımı programlama dokümanlarına ulaşayım dedim ama doğru dürüst bir dokümana ulaşamadım. Hatta bunları ararken BBC Micro vb ile ilgili bazı dokümanlar keşfettim ve onları incelerken buldum kendimi :)

Oric'de sabit bir bitmap yapısı yok mu? Dekode edilen, renk ve bitmap verilerinden oluşan değişken bir bellek bölgesi mi vardır tam anlayamadım doğrusu.

Çevrimdışı Pe@ceR

  • RAAT
  • Tedavideki Retromanik
  • *
  • İleti: 320
Ynt: 2000'li yıllara ait Oric Demoları.
« Yanıtla #21 : 19 Kasım 2013, 17:18:42 »
Bildiğim kadarıyla c64 için her piksel için renk ve piksel haritası ayrılmış değil mi?

Oric'de böyle ayrı ayrı renk ve bitmap hafızası yok.

240x200 piksellik bir hires ekranımız var.

Burada x ekseninde her 6 piksel 1 byte olarak ekran hafızasında yer alıyor.

Yani 1 satırda 240/6 = 40 byte
200 satırda da 40x200 = 8000 byte HIRES ekran hafızasına ayrılmış.

Her satırda, zemin ve yazı rengini belirledikten sonra satır sonuna kadar değişmeden o zemin ve yazı rengi olarak pikseller boyanıyor. Aslında zemin ve yazı olarak adlandırılsa da on ve off rengin ne olduğunu belirlemiş oluyoruz.

Satır boyunca renk bilgisi tanımlamazsa siyah zemin üstüne beyaz seçilmiş oluyor.

Her byte, malum, 0-255 arası değer alabiliyor.

0-7 arası değerler yazı rengini (INK)
8-11 arası değerler flash off, 12-15 arası değerler flash-on anlamında. Piksel ya da tekst modda isek karakterler oric'de yanıp sönme ya da sabit durma özelliğine sahiptir "flash" anlamında.

16-23 arası değerler de zemin rengini (paper) belirler.

Bitmap kodlar 64 - 127 arasındadır. Yani 7.bit  on olduğunda , kalan 6 bit piksel verisi olarak ekranda görünüyor.

Örneğin : 85 = 64+0+16+0+4+0+1   = x|.X.X.X     1 boşluk atlayarak 3 nokta şeklinde görülüyor.

32 ile 63 arası 96 ile 127 arası değerlerin aynısıdır.

128-255 arası da inverse olarak 0-127 arası tüm değerlerin aynısı. Yani 8. bitin on olması, kalan bitlerin oluşturacağı görüntünün inverse renk kodlamasını oluşturuyor. ( mavi üzerine kırmızı yerine kırmızı üzerine mavi gibi )

Oric hires yapısı hakkında tavsiye edebileceğim sayfalar
http://twilighte.oric.org/twinew/graphics.htm
http://oricspider.home.insightbb.com/oric_hires_colour.html
http://www.defence-force.org/computing/oric/coding/part_7/index.htm