Gönderen Konu: MSX1 için Turrican geliyor  (Okunma sayısı 17646 defa)

0 Üye ve 3 Ziyaretçi konuyu incelemekte.

Çevrimdışı Skate

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 172
Ynt: MSX1 için Turrican geliyor
« Yanıtla #15 : 07 Mart 2022, 00:56:47 »
ekte: Eğer turrican big boss sprite'ı 2.0 aspect değil de  1.0 aspectli bir ekranda olsaydı düdük boss olurdu.

Burada hatalı bir bilgi var Ref. C64'de spritelar 24 pixel genişliğinde ve 48'e expand edilebiliyor. Ama burada sadece 5 tane expand edilmemiş sprite var. Yani 2 pixel genişlikte gözükmesi aslında sprite'ın genişliğini artırmıyor, sadece çözünürlüğünü yarıya düşürüyor. Spritelar 24x21 yerine 12x21 oluyorlar. Sen büyük ihtimalle bunları genişletilmiş sprite olarak düşündün. Eğer multicolor'ı genişletirsen her bir pixel 4 pixele denk gelmeye başlar, feci bir görüntü çıkar ortaya. Ancak hires / tek renk sprite genişletilirse dediğin olur. Burada öyle bir kullanım yok, spritelar orjinal boyutlarında.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2881
  • Advanced User Simulator
    • ae unutmadan
Ynt: MSX1 için Turrican geliyor
« Yanıtla #16 : 07 Mart 2022, 09:56:15 »
MSX için sonuç değişmiyor, her durumda TV'de o genişlikte bir boss çizebilmesi için iki katı data aktarması gerekecek. c64'de sprite desteği olmasa bile c64 burada düşük ekran çözünürlüğü ile daha büyük sprite avantajına sahip olacak. 

Çevrimdışı Skate

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 172
Ynt: MSX1 için Turrican geliyor
« Yanıtla #17 : 07 Mart 2022, 15:08:57 »
MSX için sonuç değişmiyor, her durumda TV'de o genişlikte bir boss çizebilmesi için iki katı data aktarması gerekecek. c64'de sprite desteği olmasa bile c64 burada düşük ekran çözünürlüğü ile daha büyük sprite avantajına sahip olacak.

Muhabbeti uzatmak için yazmıyorum emin ol. Sadece neyi yanlış anladığını netleştirmek için yazıyorum. "iki katı data" demenin sebebi senin hala 1 pixel = 1 bit olarak kabul etmen. O geniş pixeller 2 bit. Yani 8 pixel genişliğindeki bir cursor karesi içinde 1 byte 4 pixeli temsil ediyor. Yan yana 10 cursor karesi kaplayan bir sprite için 10 byte harcanıyor, ister 10 byte'da 80 hires, ister 40 multicolor pixeli olsun. 2 bpp modu yani o sprite'ın kullandığı. Bu durumda MSX ile aralarında bir avantaj / dezavantaj oluşmuyor. MSX'in spriteları ile aynı byte sayısı geçerli. MSX'de 2 bpp modu o şekilde yok biliyorum, başka yöntemlerle spriteları üst üste bindirip fazladan renk elde ediyorlarmış, o da belki sonraki modellerindedir detayına bakmadım. Ama sonuç olarak iki katı data aktarılmasının çıkış noktasının yanlış anlaşıldığını sanıyorum.

Ama bak şöyle bir örnek gösterebilirim sana.

https://csdb.dk/release/?id=211921

Bu introyu yapan arkadaşa aşağıdaki kardan adamı sprite'a convert etmesi için yardımcı olmuştum. Bu kardan adam multicolor çözünürlüğünde görünüyor, yine 2x1 pixellerden oluşuyor (çizilen orijinal grafik multicolor bitmap idi zaten). Ama spritelarda 8x8'lik alana 3 renk gelme gibi bir olay olmadığından, 24x21'lik alan 3 renk paylaştığından, kardan adam da sprite satırı başına 8 rengi geçmediğinden ben şöyle bir yöntem kullanmayı uygun gördüm. Kardan adamın her bir rengini tek renk spritelara çevirdim, bunu yaparken 2x1'lik pikselleri 1x1 gibi düşündüm. Sonra spriteları X'de genişleşttim. Renk karışması olmadan aynı görüntü çıktı ortaya. Orada her sprite satırında (yine multiplexer var) 8 sprite var üst üste, her sprite'da tek bir renk kanalı var.

Bu örnek senin dediğine denk geliyor. Ben 8 bit set ederek ekranda 16 piksellik alanı boyuyorum bunda. Ama Turrican'da o durum söz konusu değil yani.

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2881
  • Advanced User Simulator
    • ae unutmadan
Ynt: MSX1 için Turrican geliyor
« Yanıtla #18 : 07 Mart 2022, 16:36:41 »
"iki katı data" demenin sebebi senin hala 1 pixel = 1 bit olarak kabul etmen. O geniş pixeller 2 bit. Yani 8 pixel genişliğindeki bir cursor karesi içinde 1 byte 4 biti temsil ediyor. Yan yana 10 cursor karesi kaplayan bir sprite için 10 byte harcanıyor, ister 10 byte'da 80 hires, ister 40 multicolor pixeli olsun. 2 bpp modu yani o sprite'ın kullandığı. Bu durumda MSX ile aralarında bir avantaj / dezavantaj oluşmuyor. MSX'in spriteları ile aynı byte sayısı geçerli.

peki o geniş pixelleri aslında istese hi-res olarak kullanabilir miydi adam? bilerek mi yan yana iki pixel koyarak yapmış ve detaysız olmasını tercih mi etmiş?

Çevrimdışı Skate

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 172
Ynt: MSX1 için Turrican geliyor
« Yanıtla #19 : 07 Mart 2022, 17:00:05 »

peki o geniş pixelleri aslında istese hi-res olarak kullanabilir miydi adam? bilerek mi yan yana iki pixel koyarak yapmış ve detaysız olmasını tercih mi etmiş?

Öncelikle yanlış bir ifadem olmuş "1 byte 4 biti temsil ediyor" demişim, "1 byte 4 pixeli temsil ediyor" olacak tabii ki doğrusu, orijinal mesajı editledim.

İsterse hires olarak kullanabilirdi evet, ama grafik de sprite başına tek renge düşerdi tabii. Yani yine çok renkli bir boss olabilirdi ama bir kısmı bir renk, diğer kısmı başka renk gibi tasarlanması gerekirdi, çok sınırlayıcı olurdu.

C64'ün 2 bpp'yi 2 pixele scale etmesi çoğu platformda olmayan bir özellik. Ama bunu şu şekilde de yanlış algılamamak lazım. C64'de MC modeda pikseller geniş, demek ki bir byte 8 pixele denk geldiğine göre 1 byte ile 2 cursor genişliği alanı kaplayabiliyor. Hayır, 1 byte 4 piksele düşüyor ve yine 1 cursor karesi genişliğine denk geliyor. Diğer 8 bit bilgisayarlarda, örneğin yeni yapım aşamasında olan Commander X16'de ya da MSX1 gibi platformlarda genellikle bu farklı uygulanıyor. 2 bpp grafik modu dediğinde pikseller genişlemiyor ama bu sefer 1 cursor karesine 2 byte harcıyorsun. Avantajın da çözünürlüğü korumak oluyor. Ama bu bir trade off. X16 gibi donanımlarda bunu yapıp 2x ya da 4x scale edebiliyorsun sprite'ı, MSX1'de bu özellik yok. Yani X16'de C64 ile birebir aynı modu, hatta C64 olmayan 2x ekstra scale'i yapabiliyorsun hem X, hem de Y'de. Ama sonuç olarak Turrican'da spritelar genişletilmiş olmadığı için söz konusu durum C64'ün 5 sprite'ının 5x24 = 110 piksellik bir alanı kaplaması. Yani burada hires'i multicolor'ı geç. 5 sprite 110 piksellik alan cover ediyor, ister tek renk ister çok renkli. Çok renkli olursa çözünürlük 55'e düşüyor ama yine 110 cover ediyor. MSX1'de ise 5 sprite maksimum 16*5=80 piksel cover edebiliyor ama maalesef donanım tek satırda maksimum 4 sprite yan yana getirebilmekle sınırlı olduğu için bu 64 piksele düşüyor. Aslında MSX'de sonraki modellerde olduğu gibi tek satırda 8 sprite gösterilebilse hires de olsa en azından 128 piksel, yani Turrican'daki boss'un kapladığı alandan fazlası spritelarla boyanabilecekmiş. Hatta 7 sprite bile 112 piksel ile aynı boyutta, hatta 2 piksel daha büyüğüne izin veriyor. Ama işte 4 sprite sınırı direk bu kullanımı çöpe atıyor.

Bana bu projeyi getirseler, deseler ki MSX1'de Turrican kodlayacaksın, nasıl yaparsın? Boss levelları için bossları mecburen soft sprite yapar, oyunun geri kalanında kurşunlar soft sprite olsa da bu bölümde kurşunları hardware sprite'a dönüştürürdüm. Yani iki alternatifli engine yazardım. Ulaştığın noktaya göre hard/soft spritelar switch edebilirdi. Bakalım arkadaş nasıl bir yöntem izleyecek? Daha da merak ettiğim bossları smooth hareket ederken görebilecek miyiz yoksa 8'er 8'er hoplaya zıplaya mı dolaşacaklar etrafta....

Çevrimdışı Ref

  • Yönetici
  • Özgür Retrocu
  • *
  • İleti: 2881
  • Advanced User Simulator
    • ae unutmadan
Ynt: MSX1 için Turrican geliyor
« Yanıtla #20 : 07 Mart 2022, 22:48:29 »
smooth hareket etmesi için preshifted spritelar gerekir, o büyüklükte spriteları taşımak için 1MB ram lazım ona. Büyük olasılıkla karakter bazlı ilerler

Çevrimdışı Skate

  • RAAT
  • Retro Meraklısı
  • *
  • İleti: 172
Ynt: MSX1 için Turrican geliyor
« Yanıtla #21 : 08 Mart 2022, 04:16:29 »
smooth hareket etmesi için preshifted spritelar gerekir, o büyüklükte spriteları taşımak için 1MB ram lazım ona. Büyük olasılıkla karakter bazlı ilerler
Eğer diskten yükleme özellikleri gelişmişse, oyun devam ederken arkaplandan yükleme yapılabiliyorsa bu sorun olmaz. Turrican'da boss'a ulaşırken genellikle tekrar önceki haritaya dönemeyeceğin bir pozisyona sokuyor seni. O nedenle o noktada haritanın artık ulaşılamayan kısımlarına boss'u yükletebiliriz. Ama yükleme çok yavaş ya da oyun devam ederken arkaplandan yükleme imkansız ise tabii bu plan suya düşer.