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)
Sayfa: 1 2 3 [4] 5 6   Aşağı git
Yazdır
Gönderen Konu: c64 resim yapma  (Okunma Sayısı 63116 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
witchdoktor
Uzman
*****
Mesaj Sayısı: 6.238



Üyelik Bilgileri
« Yanıtla #45 : Aralık 14, 2012, 00:02:15 ÖÖ »

Kod:
10 poke 53265,59
20 poke 53270,184
30 poke 53272,24
40 for i=0 to 1023
50 poke 1024+i,rnd(1)*256
60 poke 55296+i,rnd(1)*256
70 next i
80 for i=0 to 8191
90 poke 8192+i,rnd(1)*256
100 next i

herşeyi random'a çevirdim. 16 renk ekran açıyor. tüm video ram, color ram ve bitmap alanını random değerlerle dolduruyor. sen "rnd(1)*256" olan yerleri kendi istediğin değerleri dolduracak şekilde değiştirmelisin. nasıl yapacağını bilmiyorsun ve işte o nasıl yapacağın konusu plazma'da yazıyor.

censez41 bu işi herhangi bir doküman okumadan başaracak galiba, bunu yaz bir kenara. VIC-II çipi grafik mimarisini, register'lerin fonksiyonlarını, bitmap bellek dizilimi vb birşey araştırmadan bu noktaya gelmek de her babayiğidin harcı değil.
Logged
witchdoktor
Uzman
*****
Mesaj Sayısı: 6.238



Üyelik Bilgileri
« Yanıtla #46 : Aralık 14, 2012, 00:39:02 ÖÖ »

@censez41
Niyetim kimseyi küçümsemek değil ama retro programlama olaylarına ilgin varsa, birşeyler okuyup adım adım tatbik etmenin önemli olduğuna inandığım için, belirtilen dokümanları okumamaktaki ısrarın bana şaşırtıcı geldi belki de.

Link'leri firewall nedeniyle göremiyorum ama güzel yapımlar olduklarına eminim.
Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #47 : Aralık 14, 2012, 00:53:04 ÖÖ »

Tam olarak ilgim yok sadece resim cizdirme icin okumamam gereken yerleri ayıklayıp okumayı düsunuyorum neden ilgim yok dersen çünkü bu alanda bir yerlere gelmek uzun soluklu bir yolculuk assemply bilmek gerek ora seviye ingilizce gerek ve disket sürücü gerekiyor yani bu saatten sonra ne kadar istesemde artık benden geçti sizin yardımınıza  istediğim programı yazsam bana yeterli
Hepinize iyi geceler".........
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #48 : Aralık 14, 2012, 00:57:37 ÖÖ »

censez41, yaptığın şeyler hiç de öyle iki dakikalık işler değil, gayet güzel iş çıkarmışsın, taktir ettim. iyi grafiker ve müzisyenlerle çok güzel demo ve oyunlar yapabileceğinden hiç şüphem yok.

şimdi gelelim witchdoktor'ın mesajına ve senin algına. sen haklı olarak eleştirel bir mesaja tepki gösterip bir nevi kendi yeteneklerini sergileme, kendini kanıtlama yoluna gitmişsin. bu aslında çok doğal ancak lüzumlu değil. ben olaya dışardan bakan biri olarak şunu söyleyebilirim. witchdoktor senin yeteneklerini değil öğrenme metodunu eleştirdi ki eleştirisinde haklı, benim önceki mesajlarımda da defalarca "önce şu dökümanları bir oku hele..." mesajını görebileceğini tahmin ediyorum. senin verdiği tepki ise "öyle ya da böyle, bak ben bunları yapabiliyorum" şeklinde. doğru, yapabiliyorsun. ama belki biraz daha mühendis mantığıyla ilerlersen (ki ben şahsen mühendislik eğitimi olmayan birisiyim ama çoğu metodu bu biçimde kullanırım), çok daha başarılı olursun.

demek istediğimi özetlemem gerekirse, bu yaptığın örnekleri yaptığın süre ve proje büyüdüğünde projenin başarılı olma ihtimalleri aslında tamamen senin öğrenme ve çalışma yöntemlerine bağlı. eğer yaptığın şeylerin bir kısmını tam olarak anlamadan, örneklerden bakarak yapıyorsan, bir süre sonra sebebini bulamadığın sorunlarla karşılaşabilirsin. sorunlar çıktıkça sebebini bulabilir ve sebebi bulduğunda da hem sorunu çözer, hem de bu bölümle ilgili eksik bilgilerini tamamlamış olursun. ama bu hem aşırı bir zaman kaybı, hem de proje büyüdükçe işin gittikçe sarpa sarması, köklü altyapı değişikliği gereksinimlerini v.s. getirir. ama baştan bir örneği olduğu gibi kullanıp modifiye etmek yoluna gideceğine, aynı örneği belki 15 gün sonra yazabilecek hale gelmeye gayret edersen, o kaybettiğin 15 gün uzun vadede sana kazanılmış aylar olarak geri dönecektir.

böyle biraz nutuk atar gibi oldu kusura bakma ama bizlerden yardım istiyorsan sana yalnızca örnek kod yazıp üç beş satır açıklama yapmamız, hem senin, hem de bizim zamanımızı boşa harcayacağından bunları belirtmek istedim.

bu arada sana bir reference guide vereyim. buradan tüm adreslerin hangi bitleri ne işe yarıyor v.s. bilgilere ulaşabilirsin. yapmak istediğin iş için seni en çok ilgilendiren kısım "VIC-Registers & Infos" bölümü.

http://unusedino.de/ec64/technical/aay/c64/

not: assembly (b ile)

edit: censez41, mesajında kötü birşey yazmamıştın ve çalışmalarını paylaşmıştın. silmen iyi olmamış. benim mesajımdaki referanslar da anlamsız oldu bu durumda.
« Son Düzenleme: Aralık 14, 2012, 00:59:26 ÖÖ Gönderen: Skate » Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #49 : Aralık 14, 2012, 01:15:03 ÖÖ »

Kısıtlı zamanınızı benim icin ayırıp yazdığınız bu mesajlar icin cok teşekkür ederim ben ise diyebilecek
çok  sözüm yok tamamen  haklısınız keske bir 20 sene evelinde imkanlar olsaydı da bu paylaşımları yapsaydık o zaman  konumum cok farklı olabilirdi  ancak kısıtlı zamanımda hobi olarak yaptığım için çok ta yeni şeyler öğrenmeye vaktim olmuyor ama c64 çalıştığı sürece zaman zaman yeni bişeyler denemeye çalışacağım
Tekrar teşekkürler herkeze iyi geceler.
Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #50 : Aralık 17, 2012, 19:32:59 ÖS »

Timanthes programında yuklediğim resmi 160*200 16 renk olarak çevirip jpg olarak nasıl kaydetcem?


Daha sonra bu jpg resmini visual basic de yukleyiP c64 deki dataları yazdiracagim  ayrıca satır numarası ekleyip  txt dosyasına kaydetçem yani visual basic e bir nevi program yazdırcam bunun icin bir algoritma yazabileceğimde inanıyorum
« Son Düzenleme: Aralık 17, 2012, 21:04:49 ÖS Gönderen: censez41 » Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #51 : Aralık 18, 2012, 01:45:49 ÖÖ »

@censez41: eğer timanthes'in son versiyonunu indirdiysen zaten PRG olarak kaydedebiliyorsun. hatta resim gösterme rutinine kadar yazıyor. sana bahsettiğim bitmap, video ram ve color ram datalarını kendisi oluşturuyor. şimdi senin yapmaya çalıştığın şey, doğrudan bu dataları kaydedebilen bir programdan JPG kaydedip (ki kayıplı sıkıştırmaya sahip olduğu için asla tercih etmezdim yerinde olsam. PNG falan çok daha mantıklı olur), sonra VB'den bir converter yazıp, herşey yolunda giderse Timathes'den doğrudan üretebileceğin dataların aynısını üretmek. Bence öğrenme amaçlı diyorsan durma, dene. Amaç c64'de çizdiğin resmi gösterebilmek ise sadece, Timanthes bunu yapabiliyor. Hatta FLI gibi daha komplike grafik modları için bile PRG kaydetme özelliği olan versiyonu var, en son X 2012'de kullandılar gözümün önünde. Tavsiyem Timanthes'in yanında gelen dökümanları okuman, olmadı (döküman okumayı sevmiyorsun ) biraz yukardaki menülerde dolaşıp ne neymiş test etmen.

Sana ipuçları.

1) C64 renklerinde bir layer oluşturmak için yeni layer oluştur ve o layerın üzerinde çalış. (CTRL+SHIFT+n)
2) Ya bu layer'a istediğin resmi yüklet ve renkleri C64 renklerine çevir ya da renkleri çevirip pixellemeye başla. Renkleri çevirme işlemi "Effects->C64 Colorramp" bölümünden yapılıyor.
3) Layer 2'nin üzerine çift tıkla ve "Mode" olarak "Hires multicolor" seç.
4) "File->Save" bölümünden ister PNG kaydet, ister doğrudan Commodore 64 PRG. PRG zaten doğrudan bir C64 emülatöründen çalışabilir haldeki dosya.
« Son Düzenleme: Aralık 18, 2012, 01:47:54 ÖÖ Gönderen: Skate » Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #52 : Aralık 19, 2012, 20:35:44 ÖS »

skate abi

http://www.atlantis-prophecy.org/convert.htm

bu sitede timantes in kullanımını resimli çok güzel anlatmış buna göre bir örnek yapmaya çalıştım ve prg uzantılı dosya hazırladım
 bu prg yi emulatorla birlik te aç yapınca resim çıkmıyor

bu şekilde oluyor

« Son Düzenleme: Aralık 19, 2012, 20:57:32 ÖS Gönderen: censez41 » Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #53 : Aralık 20, 2012, 08:49:38 ÖÖ »

timanthes sadece resim datalarını üretiyor,ürettiği .prg'nin bitmap,videomap ve colormap datalarını hafızada uygun yere atıp,ekrana basacak mini bir programa ihtiyacın var,bununla ilgili skate'in plazmada yazdığı grafik gösterme ile ilgili harika bir tutorial var,ihtiyacın olan tüm bilgiler dataylı olarak yazıyor,fakat sen basic'de yapmak istediğinden işini görürmü bilmem,çünkü assembler.

http://www.plazma-dergi.org/
Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #54 : Aralık 20, 2012, 09:44:17 ÖÖ »

Joker bey tesekkurler bu dataları nasıl açabilirim prg dosyasına benim mini programı nasıl ekleyecem.
Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #55 : Aralık 20, 2012, 11:25:30 ÖÖ »

timanthes'in ürettiği dataları herhangi bir hex editörü ile alabilirsin,
benim kullandığım hex editörü xvi32

http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm

yapman gereken .prg dosyasını xvi32 ile aç,ilk baştaki 2 byte yükleme adresidir,onları sil Timanthes $2000 olarak kaydeder,hex editröde ilk 2 byte 00 20 olarak görülüyor.
şimdi geriye kalan dataların ilk 8000  byte'ı Bitmap
8000-9000 arası = 1000 byte Videomap
9000-10000 arası = 1000 byte Colormap

ilk önce bitmap'i alalım,editörden $1f40'a ilerle,alttaki status bardan da görebilirsin,burada Edit/Delete From Cursor seç,sadece bitmap kaldı elimizde,farklı kaydet ile kaydet,orjinal datalar lazım

şimdi videomap'i alalım,orjinal dosyayı tekrar yükle,ilk iki byte'ı sil,şimdi $1f3f 'e ilerle Edit/Delete To Cursor diyerek ilk 8000 byte'ı uçur,daha sonra $3e8 'e ilerle  Edit/Delete From Cursor diyerek diğer datalarıda uçur,farklı kaydet ile videomap dosyalarınıda al.

sıra geldi colormap dosyalarını almaya,
orjinal dosyayı tekrar yükle,ilk iki byte'ı sil,$2327 'ye gel,Edit/Delete To Cursor diyerek bitmap ve videomap datalarını uçur,geriye sadce colormap dataları kaldı,faklı kaydet seçeneği ile kaydet.

şu anda elinde bitmap,videomap ve colormap dosyaları hazır,artık basic ile nasıl kullanacağını bilmediğimden birşey diyemem,fakat assemler ile kullanmak istersen,gerekli program örneğini yazarım
Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #56 : Aralık 20, 2012, 11:42:50 ÖÖ »

PRG'yi yüklet ve sonra aşağıdaki kod bloğunu olduğu gibi Vice'a copy&paste ederek test et.

Kod:
new
0 pic = 8192
1 vram = pic+8000
2 cram = vram+1000
3 bcol = cram+1000
4 vmem = 1024
5 cmem = 55296
6 poke 53281,peek(bcol)
7 poke 53265,59
8 poke 53270,184
9 poke 53272,24
10 for i = 0 to 999
11 poke vmem+i,peek(vram+i)
12 poke cmem+i,peek(cram+i)
13 next i
14 goto 14
run
Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #57 : Aralık 20, 2012, 11:52:57 ÖÖ »

Joker bey tesekkurler dataları almak icin bu yontemi deneyeceğim sonra c64 e elle girerim
Skate bey tesekkurler benim icin gene en kolay yontemi sunmuşsunuz  ilk olarak bunu deneyeceğim

Logged
censez41
Üye
***
Mesaj Sayısı: 50


Üyelik Bilgileri
« Yanıtla #58 : Aralık 20, 2012, 13:07:27 ÖS »



brogramı prg yaparken yukarıdaki değerlri değiştirmeden kullandım
ama bulduğum örnekte 320*200 çözünürlüğün ve  bitmap multicolor modunda anlattığı için şimdilik bende böyle yaptım



sonuç bu şekilde ekranda bağzı pikseller çıktı

not:kodun başındakli new komudu önce belleği temizliyor diye biliyorum lakin o kumudu yazınca hiç piksel çizdirmiyor




« Son Düzenleme: Aralık 20, 2012, 13:20:08 ÖS Gönderen: censez41 » Logged
Skate
Uzman
*****
Mesaj Sayısı: 1.479


A Sinner Scener


Üyelik Bilgileri WWW
« Yanıtla #59 : Aralık 20, 2012, 13:36:53 ÖS »

hayır new komutunun amacı o değil. eğer prg'yi vice'dan drap&drop ile yükletirsen, $2000'den başlamasına rağmen bunu basic kodunun bir parçası olarak görmeye başlıyor. bu yükleme adresleriyle ilgili bir durum. bu durumda new demeden basic kodunu yazarsan $2000'deki grafik ekranı hazfızada iler kaymaya başlar. yani senin ekleyeceğin her basic satırında araya satır ekleniyormuşcasına yüklenen grafiğin sonuna kadar olan hafıza alanı sürekli ileri kaydırılır. new dediğinde $2000'deki grafik hafızadan silinmez, yalnızca basic adres pointerları resetlenerek yazacağın basic kodunun $2000'deki bölgeyi etkilemesi engellenir.

aslında prg'yi doğrudan değil de assembly monitöründen yükleyecek olursan böyle bir sorunla karşılaşmazsın. ancak new'in her iki durumda da bir zararı yok.

yapman gereken.

1) PRG'yi vice penceresine drag&drop et.
2) benim verdiğim kodu copy&paste et.
3) çalışmazsa Kayahan'dan "ben nerde yanlış yaptım?" sözleri geçen parçayı dinle ve 1. adıma geri dön.
Logged
Sayfa: 1 2 3 [4] 5 6   Yukarı git
Yazdır
Gitmek istediğiniz yer: