Retrojen Forum

Retro Sistemler => Diğer Retro Sistemler => Konuyu başlatan: doMiNO - 01 Mart 2022, 01:47:33

Başlık: MSX1 için Turrican geliyor
Gönderen: doMiNO - 01 Mart 2022, 01:47:33
Yıl olmuş 2022, bir yandan Putin nükleerleri ateşleyip dünyayı yok etmeye hazırlanıyor ama birileri de bunu umursamayıp MSX1 için Turrican kodluyor.

Oyunun release edilebilecek seviyeye gelmesi için henüz erken görünüyor olsa da, Geppo arkadaşımız kodlamaya devam ediyor ve kaydettiği aşamaları youtube kanalında tüm insanlıkla paylaşıyor. Grafikler C64 versiyonundan rip edilmiş. Daha iyi olabilirdi sanki. Muhtemelen daha sonra elden geçirecektir grafikleri. Buna rağmen WIP hâli bile gayet hızlı ve hoş göründü gözüme. Tamamlandığında güzel bir sonuç ortaya çıkacak gibi.

Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 01 Mart 2022, 01:53:33
abi şimdi bunu görünce commodorecuların neden spectrum oyunlarıyla dalga geçtiğini daha iyi anladım :D allah kurtarsın diyorum.. :)

Ama kule çok iyi olmuş, beğendim. Bu nasıl MSX1 oluyor onu pek anlamadım.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: doMiNO - 01 Mart 2022, 02:06:59
abi şimdi bunu görünce commodorecuların neden spectrum oyunlarıyla dalga geçtiğini daha iyi anladım :D allah kurtarsın diyorum.. :)

WIP vaziyetteki oyun hakkında ileri geri konuşup koca bir camiaya haksızlık ediyorsun ama. Hiç yakıştıramadım senin gibi bir Z80 dostuna. Bu oyun tamamlansın, o zaman göreceğim ben seni.  :P

Ama kule çok iyi olmuş, beğendim. Bu nasıl MSX1 oluyor onu pek anlamadım.

Yıllarca MSX1'de kule yapılamaz diye beyinlerinizi yıkadılar, evet. Bütün medya organları aynı palavrayı sıkınca bir süre sonra herkes inanır oldu buna. Sizi kandıranlar, gerçeklerin günyüzüne çıkmayacağını sandılar. Yanılıyorlardı. MSX insanı böyle neye uğradığına şaşırtır işte.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 01 Mart 2022, 02:19:05
Bize öyle söylenmişti, kule yapılamaz denmişti. Ben de inanmıştım. Spectrum sürümündeki kuleyi z80 dünyasındaki tek kule sanırdım. Yapılamaz denirdi.


Bu msx'in kulesi


bir msx kulesi değil, ZX kulesi


hatta bence c64'ün kahverengi kulelerinden bile güzel.
 


madem kule gözetleme işine girdim, amiga kulesini de koyayım dedim:
 


çok fena bulaştım kule avına, kurtulamıyorum, CPC kulesi:
 

youtube'dan parça parça kesip birleştirmek zorunda kaldım, cpc'de kimse game map yapmamış.


PC engine kulesi, yine youtube'dan:
 



Nes Kulesi:
 

Bu kule bana epey güdük geldi. Ama kendi havası var.

Son kule, gameboy kulesi:
 


SEGA Genesis'deki kule PC engine'in pixel pixeline aynısı.

SNES'de kule yok mesela. Adeta skandal. Meğer kule yapılamayan sistem SNES miş!!!!111


Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Cengiz Demir - 01 Mart 2022, 12:45:03
@Ref  ZX80 kulesi daha ön plana çıkması için; hiç bir filtreden geçirilmemiş.
Fakat diğerleri biraz flulaştırılmış gibi geldi bana nedense..  ;D
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 01 Mart 2022, 15:23:40
@Ref  ZX80 kulesi daha ön plana çıkması için; hiç bir filtreden geçirilmemiş.
Fakat diğerleri biraz flulaştırılmış gibi geldi bana nedense..  ;D

tarafsızım ilk üçünü platforma özel web sitelerinden aldım, alttaki üçünü youtube'dan ekran görüntüsü olarak kendim kestim, bir tercih yok. Spectrumcular genelde titiz insanlarsa ben ne yapayım.   
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Alco - 02 Mart 2022, 22:05:50
@doMiNO Bu arkadaş geliştirme günlüğü falan gibi bir başlık altında herhangi bir yerde paylaşıyor mu bu yaptıklarını?
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: doMiNO - 03 Mart 2022, 01:26:29
@doMiNO Bu arkadaş geliştirme günlüğü falan gibi bir başlık altında herhangi bir yerde paylaşıyor mu bu yaptıklarını?

Evet. İlk mesajda paylaştığım youtube videosunun bulunduğu kanalda seyrek de olsa gelişim aşamalarıyla ilgili videolar paylaşılıyor. Bunun dışında aşağıdaki linkten daha kapsamlı ve taze bilgiye ulaşmak mümkün oyunun geliştirme süreci hakkında.

https://www.msx.org/forum/msx-talk/development/project-t-first-wip?page=0
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 03 Mart 2022, 21:47:08
https://homebrew.file-hunter.com/index.php?id=turrican
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Skate - 04 Mart 2022, 01:22:19
Biz 90 başında smooth scroll eden C64 versiyonunu oynadık, bitirdik. 2022'de smooth scroll edemeyenini yapmaya çalışıyorlar. Sonuçta 8 bit coder diyorsun, meslektaş diyorsun... Ama gülme de geliyor tabii ister istemez. :)

Ekranda onlarca sprite aynı anda hareket etmeden ciddi yorum yapmam. Orjinali 24, AEG'in yıllar sonra yaptığı engine 32 sprite destekliyor bu arada, dip not.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: doMiNO - 04 Mart 2022, 02:26:14
Biz 90 başında smooth scroll eden C64 versiyonunu oynadık, bitirdik. 2022'de smooth scroll edemeyenini yapmaya çalışıyorlar. Sonuçta 8 bit coder diyorsun, meslektaş diyorsun... Ama gülme de geliyor tabii ister istemez. :)

Smooth scroll edenini yapmaya çabalamamaları çok da ayıplanası bir durum değil zira MSX1'de scroll register olmadığı için smooth scroll külfetli iş. Turrican gibi hızlı olması gereken bir oyunda uygulanmaması anormal karşılanmaz MSX camiasında. Bu oyunda kabul edilebilir hız için göz zevkinden feragat etmek gerekiyor maalesef. Bu konuda C64 ile yarışması mümkün değil MSX'in. Belki Turrican oynarken hızı dert etmeyen Spectrum'cuları hedefleyen, üç beş fps'lik smooth scroll edebilen bir alternatif de sunulabilir ileride.  :)

Ekranda onlarca sprite aynı anda hareket etmeden ciddi yorum yapmam. Orjinali 24, AEG'in yıllar sonra yaptığı engine 32 sprite destekliyor bu arada, dip not.

Henüz mevcut vaziyetin üstüne eklenmesi gereken çok şey var ama nihai sonucun hızda çok kayıp yaşatacağını sanmıyorum. 32 sprite MSX'in elinin kiri. Scroll register gereksiz bir şey diyen adamlar 32 hardware sprite destekleyelim biz bu sistemde demekten geri kalmamışlar neyse ki.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Skate - 04 Mart 2022, 03:00:01
Smooth scroll edenini yapmaya çabalamamaları çok da ayıplanası bir durum değil zira MSX1'de scroll register olmadığı için smooth scroll külfetli iş.

Biz tüm gün @Ref'e ZX Spectrum ile laf sokarken en çok hw scroll olmamasını kullanırız. MSX1 de nasibini alıyor tabii. Bana ne, olsaymış... :)

Henüz mevcut vaziyetin üstüne eklenmesi gereken çok şey var ama nihai sonucun hızda çok kayıp yaşatacağını sanmıyorum. 32 sprite MSX'in elinin kiri. Scroll register gereksiz bir şey diyen adamlar 32 hardware sprite destekleyelim biz bu sistemde demekten geri kalmamışlar neyse ki.

32 sprite olayını biliyorum da NES'in 64 sprite'ı gibi biraz tırt ne yazık ki. 8x8, 16x16 ile olmuyor bu iş. Yine deli gibi multiplexer gerekecek. Bosslar ekranın yarısına yakınını kaplıyor zaman zaman. Commodore 64'de 24x21'lik spritelardan diziyorsun bir sürü, hatta boss levellarında 32 de değil, daha fazla sprite da destekleniyor tabii. Aynısını sen 8x8'lik spritelarla falan yapmaya kalkarsan vay haline. Tam multiplex edeceğin noktada kaç register birden değiştireceksin, o kadar zamanın var mı? MSX1'de kullanılan trickleri bilmiyorum, sprite pointerlarını tek bir hw register ile switch etmek mümkün oluyor mu ya da bu oyun açısından kullanışlı oluyor mu bilmiyorum. Ama arkadaş epey kafayı çizecek o işlere girişince. Grafikleri küçültmeyi deneyebilir ama bossları küçültürse artık o oyun Turrican olmuyor zaten, başka bir şey oluyor. :)
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: doMiNO - 04 Mart 2022, 22:28:35
Biz tüm gün @Ref'e ZX Spectrum ile laf sokarken en çok hw scroll olmamasını kullanırız. MSX1 de nasibini alıyor tabii. Bana ne, olsaymış... :)

32 sprite olayını biliyorum da NES'in 64 sprite'ı gibi biraz tırt ne yazık ki. 8x8, 16x16 ile olmuyor bu iş. Yine deli gibi multiplexer gerekecek. Bosslar ekranın yarısına yakınını kaplıyor zaman zaman. Commodore 64'de 24x21'lik spritelardan diziyorsun bir sürü, hatta boss levellarında 32 de değil, daha fazla sprite da destekleniyor tabii. Aynısını sen 8x8'lik spritelarla falan yapmaya kalkarsan vay haline. Tam multiplex edeceğin noktada kaç register birden değiştireceksin, o kadar zamanın var mı? MSX1'de kullanılan trickleri bilmiyorum, sprite pointerlarını tek bir hw register ile switch etmek mümkün oluyor mu ya da bu oyun açısından kullanışlı oluyor mu bilmiyorum. Ama arkadaş epey kafayı çizecek o işlere girişince. Grafikleri küçültmeyi deneyebilir ama bossları küçültürse artık o oyun Turrican olmuyor zaten, başka bir şey oluyor. :)

Oyunu MSX2+ için kodlasa çok daha kolay altından kalkılabilecek bir iş aslında. Hatta daha önce Spectrum sürümü MSX2 için port edilmiş ve ortaya en azından Spectrum'daki kadar içler acısı bir sonuç çıkmamış. MSX2'ye adapte etmek yerine MSX2+ için sıfırdan kodlansaydı gayet sorunsuz ve akıcı bir oyun olabilirdi fakat hiç de sansasyonel bir durum olmazdı bu. Adam bir challenge olarak MSX1'i seçmiş. Çok daha kısıtlı imkânlarla oynanabilir bir Turrican kodlamak takdiri hak eder. Tamamlandığında neye benzeyecek göreceğiz. Merakla takip ediyorum ben de.

MSX2'deki Turrican şu:
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Skate - 06 Mart 2022, 17:03:02
Sen MSX2 deyince ampul yandı. Ben MSX1'in bir çok spec'ini MSX2 ile karıştırmışım. O zaman elemanın ZX Spectrum benzeri bir versiyon yapmaktan başka çaresi kalmıyor zaten. MSX1'de tek satırda gösterilebilen maksimum sprite sayısı 4. Yani adam 16x16 bile kullansa, 64 piksel genişliğini geçemiyor. Ekteki boss'u falan ne yapacaksın? Dediğim gibi iş soft spritelara kalacak. 32 sprite epey çöp olacak yani. Kurşun, minik yaratıklar falan için kullanılabilir ancak spritelar, öyle gözüküyor. Normalde bosslar sprite, kurşunlar soft sprite gibi tasarlanması lazım. MSX1'de buna imkan yok.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 06 Mart 2022, 23:16:26
bir de orada c64'de 1 pixelin aslında 2 pixel olması gibi bir avantaj var. Aynı büyüklükte obje, yatay olarak iki kat büyük görünüyor :D MSX'de öyle bir mod yok görünüşe göre.
Bu spectrumda da bir sorun. normalde 8 byte oynatacağına 16 byte oynatman gerekiyor, zaten herhangi bir donanım desteği de yok. bu işler epey anlamsız kalıyor. Turrican c64'ün bu özelliklerine göre tasarlanmış bir oyun. c64'e özel tasarım yapılmış bir oyunu msx'e dönüştürmeye çalışmak iyi fikir değil aslında. Turrican'ı amigada oynamıştım, süper keyifsiz, boş bir oyundu. Bundan güzel bir sürü oyun vardı, bu yaygara neden kopmuştu anlamamıştım, halbuki c64'de rüya gibi oyun. Ayağa tam oturan terlik gibi bişey (asla bulamadım onu).

ekte: Eğer turrican big boss sprite'ı 2.0 aspect değil de  1.0 aspectli bir ekranda olsaydı düdük boss olurdu.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Skate - 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.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 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. 
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Skate - 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.
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 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ş?
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Skate - 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....
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Ref - 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
Başlık: Ynt: MSX1 için Turrican geliyor
Gönderen: Skate - 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.