Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trCommodoreCommodore YazılımBir "Bad Apple" da benden gelsin... (megaOne Bad Apple)
Sayfa: [1] 2   Aşağı git
Yazdır
Gönderen Konu: Bir "Bad Apple" da benden gelsin... (megaOne Bad Apple)  (Okunma Sayısı 16869 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« : Eylül 21, 2016, 12:53:59 ÖS »

Bundan bir süre önce, organizasyon ve dekorasyon işleri ile ilgilenen bir arkadaşım ziyaretime geldi. Sinemanın 100. yıldönümü sebebi ile bir organizasyon düzenlemekte olduğunu bir konuda yardıma ihtiyacı olduğunu belirtti. Hazırladıkları organizasyonda ziyaretçilere, sinemanın doğduğu yıllardaki anbiyansı yaşatmak için o yıllarda kullanılan film göstericilerden birinin çalışır modelini yapmak istiyordu. Aslen benim ilgi alanıma hiç girmediği halde, enteresan bir fikir olduğu için seve seve kabul ettim. Yapacağımız alet bir mutoscope'tu ve ne yüksek teknoloji, ne elektronik ne de bilgisayar ile ilgiliydi.

Çeşitli varyasyonları olan cihaza bir örnek:


Bu cihazın içerisinde bir tambur ve tambur üzerine dizilmiş yüzlerce fotograf var. İzleyici cihaza yaklaşıp manivelayı yavaş yavaş çevirerek karelerin akmasını sağlıyor. Sadece yaklaşık 1dk kadar kapasitesi var ve ses yok.

Örnek bir film tamburu, tabiri caiz ise ilkel DVD...


Amcam kim bilir ne seyrediyor.


Neyse, konuyu çok dağıtmadan giriş kısmını geçip sadede geleceğim. Bir kaç gün araştırma yaptıktan sonra, yapacağımız cihazın ölçüleri, temel çalışma mantığı gibi taslakları oluşturup çizimleri hazırladım.



Marangoz arkadaşı çağırıp, o yıllardaki örnekleri gösterip ne tarz bir kabin istediğimizi anlattım ve taslak çizimleri verdim. Bir kaç gün sonra ofiste içi boş bir mutoscope duruyordu. İş beklediğimden çok daha iyi olmuştu.



Şimdi geçmişten günümüze ışınlanan bu kabini canlandırmak gerekiyordu. Oynatacağımız film organizasyonun anlam ve önemine binayen Lumiere Kardeşler'in 1895 yapımı Trenin Gara Girişi idi. Filmi karelerine bölüp ayrı ayrı bastırıp ciltçide ciltlettirip ansiklopedi kalınlığında 4 adet blok elde ettim. Blokları tambur üzerine yapışıtırıp, manivela dişli mekanizmasını da yapıp mutoscopu kısa sürede bitirdim. Çok keyifli bir iş oldu.





Film'in youtube linki:
https://www.youtube.com/watch?v=1dgLEDdFddk

Şimdi eğer buraya kadar okuduysanız diyeceksiniz ki, "Bad Apple" ne alaka? Bunun forumla ve retro ile özellikle Commodore Yazılım ile ne alakası var... Dedim ya girişi kısa tutmaya çalışıyorum ama hanüz bitiremedim...

Yıllık iznime bayram tatilinden bir hafta önce çıktığım için, tatilden döndükten sonra henüz resmi tatil devam ediyordu. Haftasonuna doğru artık canım iyice sıkıldı ve birşeyler yapmak istedim. Henüz (hala!) megaOne programlayıcı PCB'leri ve de VGA16 PCB'leri gelmediği için, ne o konularda ne de kabin projesinde ilerleyemiyordum. Bir anda aklıma i_r_on'un IRQHack ile yaptığı video oynatma projesi geldi. megaOne ile ne yapılabilir acaba dedim.

Tabiki başlarda hedefleri yüksek tutarak teorik hesaplar yapmaya giriştim. Acaba megaOne içerisine hi-res modda full screen kaç snlik bir video sığabilirdi. Kaba hesapla 130 full screen frame sığabilir görünüyordu. Hani frame rate'i düşük tutsak bile bir dk lık bir video bile bu şekilde sığamayacaktı. Hem kısa hem de anlamlı bir film ne olabilir diye düşünürken mutoscope projesi geldi aklıma. Sinema tarihinin ilk filmi olan Lumiere Kardeşler'in Trenin Gara Girişi'ni oynatabilir miydim acaba? Yaklaşık 1dk ve o yıllarda kullanılan frame rate 15fps. 900 Frame sığdırmam gerekiyordu. Ama megaOne içerisinde 130 framelik yer vardı. Hadi frame rate'i biraz düşürsek, biraz da full screen oynatmakta feragaat etsek olabilir miydi?

Yaklaşık 2 gün boyunca defalarca denedim, ölçülerle oynadım vb. 10fps nin altına inmeden 2.5MB dan daha küçük bir set elde edemedim. Sonra bunu biraz da olsa sıkıştırsak nasıl olur acaba dedim. Hem C64 tarafında hızlıca açılabilmeliydi hem de yaklaşık %60 oranında sıkıştırabilmeliydim. Aklıma RLE algoritması geldi. Hem basit hem hızlı hem de kayıpsız... Bu şekilde biraz ilerleme kat ettim ancak 1MB altına hala inmiyordu.

Sonra farkettim ki RLE, C64'ün bitmap yapısına uygun değil. Zira hafızada alt alta gelen 8 byte dizili, sonra bir yan karta geçip yukarıdan aynı şekilde devam ediyor. RLE ise bir birini tekrar eden aynı byte'lar olduğunda çok efektif. Yani eğer alt alta gelen byte'lar bir yan karta geçmeden önce yukarıdan aşağıya kadar iner ve kolon bitince bir yan kolona geçilecek olursa çok daha iyi sonuç alacağız. Ben RLE'yi bu şekilde çalıştırmaya karar verdim ve beklediğim gibi rahat rahat 1MB altına indi toplam 506 kare 320x200 video.

Sözüne ettiğim karelerden bir örnek:


Yalnız bu datayı stream ederken her 8byte geldiğinde, yeni kartın yerinin hesaplanması gerekiyordu. Uzunca bir süre C64 tarafında bunu optimize etmeye uğraştım. Ama olmadı. Data megaOne'a sığdı ama C64 bu stream'i istediğim hızda decode edip oynatamıyordu. Maksimum 2fps civarında bir hız elde ettim. Tekrar başa döndük. Ya fps düşüreceğim ya da full screen olamayacak. Ama bu sefer sığmadığı için değil C64 yetişemediği için...

Aklıma demolarda kullanılan bir teknik geldi. Eğer datayı bitmap hafızasına değil de, karakter seti datasının üzerine stream edersem, karakterleri de ekrana istediğim şekilde sıralarım ve her 8byte'da bir yaptığım hesaplara gerek kalmazdı. Ama bir ekranı doldurmak için 4 karakter seti gerekiyordu ve bunların uygun scanlinelarda bank in/out edilmesi gerekiyordu. Video oynatma sırasında ekranda screen tearing oluşmaması için de page flipping yapmalıydım yani toplamda bana 8 karakter seti gerekiyordu. VIC-II aynı anda sadece 16KB adresleyebiliyor bu arada.

Çok detaya girmeyeceğim aslında olası gibi görünse de bu fikir de yattı. :/

Tatil bitmek üzereydi ve en azından ne yapılabilir diye hızlanmaya karar verdim. Şu ana kadar yaptığım çalışmalar boşa gitmesin diye sadece iki karakter seti kullanarak sonucu görmek istedim. Bu kadar teori acaba nasıl sonuç verecekti. Tabi karakter seti sayısı azalınca ister istemez video boyutu küçüldü. Bir frame'i sığdırabileceğim maksimum boyut 144x122 yani 18x15 karakter. Bu C64'ün çözünürlüğünün yaklaşık yarısı gibi.

Şimdi bu projeye başlarken megaOne kartuşun avantajlarından yararlanmak istiyordum ama C64 sınırlamalarından dolayı istediğim hedefi tutturamadım. C64 assembly yeteneklerim de oldukça körelmiş olduğu için uzun uzadıya optimizasyon işlerine giremedim. Neyse player'ı yazdım bitirdim ama iş içime sinmedi. Bu 1dk lık film bu çözünürlükte anlam bulmadı.

Ha bu arada video iyice küçülünce megaOne içerisinde bol bol hafıza kaldı. Ben de o zaman daha uzun bir film oynatayım bare dedim ve bir anda aklıma "Bad Apple" geldi. 2200 üzerinde frame, 700KB altına sıkıştı ve real time oynatılabilir durumda. Hatta yaklaşık 2 ekran tarama süresinde 1 frame decode edebiliyorum. Biraz optimizasyonla 20-25fps bile mümkün. Ama elimdeki frameler 12.5 fps için extract edilmişti. Tekrar extract etmeye üşendim.

Aslında daha önce C64 de release edilen bir sürümü var.
http://csdb.dk/release/?id=131628

Benim "Bad Apple" ım ise megaOne avantajlarını kullanıyor ve video daha küçük olsa bile kayıpsız sıkıştırıldığı için çok daha kaliteli.

Seyrederken ekranın ortasında ufacık pencerede kalınca video içime sinmedi, biraz süsledim ben de... Sağ ve soldaki efektler ile ekran daha dolu oldu. Sanki bir demo havası oluştu hafiften. Gerçi amaç sadece megaOne ile video oynatmaktı.

Ekran yerleşimi aşağıdaki gibi. Sarı kutucular videonun oynadığı bölüm. Dikkat ederseniz karakterler yukarıdan aşağıya doğru sıralı. Bu şekilde çok efektif RLE uygulanabiliyor video üzerinde.



Aşağıdaki videoyu telefonla çektim çok iyi olmadı ama fikir verecektir.


Eğer megaOne kartuşunuz varsa ekteki imajı yükleyip denyebilirsiniz. (Tamam şaka yapıyorum, söz yakında gelecek PCB'ler isteyenler edinebilecek...) Ama emulatörde denemek isterseniz crt imajı aşağıda.
http://s000.tinyupload.com/?file_id=01186321824594778625

Son olarak ilgilneneler için assembly source da burada.
http://s000.tinyupload.com/?file_id=79671385659313561110
 
Keyifli seyirler...
« Son Düzenleme: Eylül 21, 2016, 13:02:36 ÖS Gönderen: delimawi » Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
izmirmaster
Uzman
*****
Mesaj Sayısı: 5.383



Üyelik Bilgileri WWW
« Yanıtla #1 : Eylül 21, 2016, 13:11:23 ÖS »

ilker hocam tambur sabit bir hızlamı dönüyor yoksa tamamen el güçü ile istediğin bir şekilde mi? Hareket ediyor takılma vs oluyormu tamamen merak
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #2 : Eylül 21, 2016, 13:14:00 ÖS »

Yok, el ile istediğin hızda çeviriyorsun. Kahkaha Takılma falan olmuyor, tıkır tıkır geçiyor kareler önünden çizgi film gibi. Videosunu çekmeyi unuttum, seyretmesi keyifli bir alet...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
Agony
Uzman
*****
Mesaj Sayısı: 2.544


Amiga gibi yar, Commodore gibi de yadigar olmaz.


Üyelik Bilgileri
« Yanıtla #3 : Eylül 21, 2016, 13:22:11 ÖS »

Üstad, mutoscope harika gözüküyor. Marangoz işinin ustasıymış cidden, 100 yıllık restore edilmiş ahşap gibi Bu aletleri çıplak gözle de görmek isterdim doğrusu. Anca oyunda görebildim. (Bioshock: Infinite)

C64 için yaptığını görsel harika olmuş gerçekten. Akışkanlığı özellikle. Gerçek bir C64'te de aynı performans olur umarım.
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #4 : Eylül 21, 2016, 13:24:36 ÖS »

Gerçek C64'de denedim. Hiç fark yok. Ama 1084 ekranı çok parladığı için videoyu post etmedim. Kahkaha Teşekkürler...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
ilkerficicilar
Uzman
*****
Mesaj Sayısı: 1.122


Üyelik Bilgileri WWW
« Yanıtla #5 : Eylül 21, 2016, 13:29:41 ÖS »

Ama bu harika olmuş
Logged

http://cbm.ficicilar.name.tr/ - Commodore Hacking
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.758


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #6 : Eylül 21, 2016, 13:33:03 ÖS »

Nedir bu "Bad Apple" bilmiyorum ama (birazdan araştıracağım kesin) daha dün şu videoyu seyretmişken oldukça hoş bir sürpriz oldu. Kahkaha



Yukarıdaki düzenek de olayı megaOne'a bağlaman da harika olmuş. Ellerine emeğine sağlık.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
ibeser (Ayak Takımı)
Deneyimli
*****
Mesaj Sayısı: 2.412


Sega<Nintendo<Amiga


Üyelik Bilgileri WWW
« Yanıtla #7 : Eylül 21, 2016, 13:39:34 ÖS »

Maşallah eline sağlık. Bana uzak konular olsa da emek verdiğin görülüyor. Demo pek güzel olmuş. Amiga demolarına benzettim
Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #8 : Eylül 21, 2016, 13:41:28 ÖS »

Teşekkürler İlker.

@Simon, bu da harika bir çalışma olmuş. Aklımda bir de Doberman la bunun C64 için full screen olanını yapmak var ama bakalım ne zaman olur... Kahkaha
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #9 : Eylül 21, 2016, 13:44:24 ÖS »

@ibeser, teşekkürler. Amiga versiyonu da buymuş:
https://www.youtube.com/watch?v=XsJnMWX1qa0

Ayrıca Bad Apple ile ilgili bazı bilgiler aşağıda:
http://knowyourmeme.com/memes/bad-apple
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
ibeser (Ayak Takımı)
Deneyimli
*****
Mesaj Sayısı: 2.412


Sega<Nintendo<Amiga


Üyelik Bilgileri WWW
« Yanıtla #10 : Eylül 21, 2016, 13:51:38 ÖS »

Teşekkürler.
Bu arada bad apple terimini ben de yeni duydum. Abiler Vectrex için bile yapmışlar

Logged

eins
Uzman
*****
Mesaj Sayısı: 1.816


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #11 : Eylül 21, 2016, 13:58:42 ÖS »

Bu seyredenler için zaten viral oldu da, developerlar arasında da çeşitli platformlara port edilme konusunda alışkanlık yarattı. Mübarek port edilmediği cihaz kalmayacak. Bu da ilginç olmuş...

Stop motion yapan arkadaş da çok kasmış ama gerçekten ilginç olmuş:


Şimdi sağa sola bakmaya başladım bunu başka nereye port edebiliriz diye.  Animasyonu yakında çamaşır makinesine de port ederlerse hiç şaşırmayacağım... Kahkaha

Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
ibeser (Ayak Takımı)
Deneyimli
*****
Mesaj Sayısı: 2.412


Sega<Nintendo<Amiga


Üyelik Bilgileri WWW
« Yanıtla #12 : Eylül 21, 2016, 14:02:02 ÖS »

Evet stop motion suyunu çıkarmış... Çok başarılı!
« Son Düzenleme: Eylül 21, 2016, 14:04:00 ÖS Gönderen: ibeser (Ayak Takımı) » Logged

LW3D
Yönetici
*****
Mesaj Sayısı: 11.415


Günü Kurtaran Avam Hiooargggh :)


Üyelik Bilgileri WWW
« Yanıtla #13 : Eylül 21, 2016, 14:35:13 ÖS »

Videoda adım geçti Demoda...

Mutoskop acayip bir aletmiş insan evine alıp koymak istiyor Aslında görüntü üzerine bir müze olsa radyo/TV ile alakalı bir fakültenin, bu tür cihazları üretip koysalar çok güzel olurdu... Ellerine sağlık...cihazda, video da çok güzel olmuş...Video C64'de full ekran oynasa çok güzel olurdu...Ama kullandığın yöntemde cazip kılıyor kanımca... Tebrikler.
Logged

joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #14 : Eylül 21, 2016, 14:59:27 ÖS »

@Delimawi, olayı iyice abartmışsın Kahkaha Abi bu nedir böyle, ellerine sağlık. MegaOne demosu'da çok iyi.
Logged
Sayfa: [1] 2   Yukarı git
Yazdır
Gitmek istediğiniz yer: