commodore.gen.tr

Commodore => Commodore Yazılım => Konuyu başlatan: wizofwor üzerinde Şubat 08, 2016, 12:36:22 ÖS



Konu Başlığı: VICE Monitör ile karakter seti çalmak
Gönderen: wizofwor üzerinde Şubat 08, 2016, 12:36:22 ÖS
Gözüme kestirdiğim introlardan VICE Monitör ile karakter seti çalmaya çalışıyorum.

Önce $DD00 adresini kontrol ederek VIC bank'ı buluyorum. Aşağıdaki tablodan faydalanıyorum.

Alıntı
$DD00 = %xxxxxx11 -> bank0: $0000-$3fff
$DD00 = %xxxxxx10 -> bank1: $4000-$7fff
$DD00 = %xxxxxx01 -> bank2: $8000-$bfff
$DD00 = %xxxxxx00 -> bank3: $c000-$ffff

İkinci olarak $d018 adresinden karakter datasının yerini bulmaya çalışıyorum. Bunun içinde codebase64 aldığım alttaki tabloyu kullanıyorum.

Alıntı
$D018 = %xxxx000x -> charmem is at $0000
$D018 = %xxxx001x -> charmem is at $0800
$D018 = %xxxx010x -> charmem is at $1000
$D018 = %xxxx011x -> charmem is at $1800
$D018 = %xxxx100x -> charmem is at $2000
$D018 = %xxxx101x -> charmem is at $2800
$D018 = %xxxx110x -> charmem is at $3000
$D018 = %xxxx111x -> charmem is at $3800

Sorun şu ki karakter setini okuduğum değere göre olması gereken yerde bulamıyorum.

Örneğin VIC bank'3 de iken $d018=$39 okuduğumda. $e000/$e800 arasını dump ediyorum. Ancak burada karakter datası yok. Bank 3'ü komple aldığımda karakter datasını $0200'de buluyorum.

 Acaba program $d018'in değerini dinamik olarak değiştiriyor da o yüzden mi taca çıkıyorum. Yoksa bir yerlerde bir hata mı yapıyorum?



Konu Başlığı: Ynt: VICE Montir ile karakter seti çalmak
Gönderen: joker_ üzerinde Şubat 08, 2016, 13:08:45 ÖS
VICE monitörü pek kullanmadığım için fazla birşey diyemem. Ben genelde ActionReplay VI kartuş image'ını önce yüklüyorum, daha sonra da diğer dosyayı yükleyip öyle işlem yapıyorum.

Senin de ulaşmaya çalıştığın alan, ROM alanı olduğundan göremeyebilirsin. AR VI ile önce programı yükleyip, soft reset atıp, monitörde * ile ROM bölgesini görünür hale getirip deneyebilirmisin. Muhtemelen görmen gerekir.

Ayrıca karakter setleri ile ilgili, Skate'in tutorial'i  (http://www.tr-demoscene.info/index.php/topic,736.0.html) de aklında olsun ;)

Birde mutemelen biliyorsundur, yine de buraya ekleyeyim  ICU64  (http://icu64.blogspot.com.tr/)ile tüm hafızayı, olanı biteni, ne nerede çok rahat izleyebilirsin ;)
 


Konu Başlığı: Ynt: VICE Montir ile karakter seti çalmak
Gönderen: joker_ üzerinde Şubat 08, 2016, 13:13:21 ÖS
Merak ettim şu intro yu yollaman mümkün mü? :D


Konu Başlığı: Ynt: VICE Montir ile karakter seti çalmak
Gönderen: blackturk üzerinde Şubat 08, 2016, 14:14:23 ÖS
Ya vice 'da snapshoot al. vsf uzantılı dosyayı sonra herhangi bir hex viewer ile aç (win hex kullanıyorum .Süpeer). Daha sonra  c64 $0000-$FFFF arası belleği  bakmak için, dosyanın başından itibaren 80 byte sonrasından başlıyor.mesala ekran'a çıkan karakter tabanlı görüntüyü beğendin diyelim.snapshoot dosyayı hex viwer ile açınca $0480 numaralı adresten itibaren c64 ekran belleğinin verilerini görürüsün.eğer ekran belleğinde görüntüyü almak isityorsan $0480 adresinden sonra 1024 byte  c source kodu için hex olarak kopyala yapabilirsin(winhex içinde pascal ,c source code olarak kopyalayabiliyor.).ve böylece ekran belleğindeki bilgileri istediğin yerde kullanabilirsin.Diğer alanları tek tek bakarasan , spriteları , karakter setlerini, ve kaynak kodlarını inceleyebilirsin.birde icu 64 tavsiye ederim onda live olarak izleyebilirsin.



@blackturk: Mesajın bundan sonrasını Basic Tenliner 2016 (http://www.commodore.gen.tr/forum/index.php?topic=11934.msg135914#msg135914) başlığına taşıdım. Konu bölünmesin. Oradan devam edelim. [wizofwor]


Konu Başlığı: Ynt: VICE Montir ile karakter seti çalmak
Gönderen: wizofwor üzerinde Şubat 08, 2016, 14:16:37 ÖS
Intro değil diskmag

(http://csdb.dk/gfx/releases/59000/59611.png) (http://csdb.dk/release/?id=59611)

Resimde görülenen scroller'daki karakter setini aldım. Ama baktığım yerde değil farklı adresteydi. Esas hoşuma giden alt kısımdaki karakter setini ise bütün hafızayı taradığım halde bulamadım. Satıyorum belleğe bitmap olarak yerleştirmişler.

Skate daha önce bazı pluginlerden bahsetmişti. Sanırım ICU64'den bahsediyordu. İndirip bir deneyeyim.


Konu Başlığı: Ynt: VICE Monitör ile karakter seti çalmak
Gönderen: eins üzerinde Şubat 15, 2016, 12:13:39 ÖS
Intro değil diskmag
(http://csdb.dk/gfx/releases/59000/59611.png)[/url]

Merhaba,

Bu diskmag'deki scroller karakter seti sanırım standart bir set değil. Her bir karakter farklı genişlikte olabiliyor. Açıkçası tembellik yapıyorum koda hiç bakmadım. Bu tip scrollerlar nasıl kodlanıyor. Bilen var mı?

Bir de alt kısımdaki menu ve fontları bence direkt bitmap sanki. Karakter set değilmiş gibi duruyor. Emin değilim...


Konu Başlığı: Ynt: VICE Monitör ile karakter seti çalmak
Gönderen: joker_ üzerinde Şubat 15, 2016, 12:19:10 ÖS
Intro değil diskmag
(http://csdb.dk/gfx/releases/59000/59611.png)[/url]

Merhaba,

Bu diskmag'deki scroller karakter seti sanırım standart bir set değil. Her bir karakter farklı genişlikte olabiliyor. Açıkçası tembellik yapıyorum koda hiç bakmadım. Bu tip scrollerlar nasıl kodlanıyor. Bilen var mı?

Bir de alt kısımdaki menu ve fontları bence direkt bitmap sanki. Karakter set değilmiş gibi duruyor. Emin değilim...

proportional scroll. Haklısın karakterler standart değil. Genellikle hangi karakterin kaç pixel olduğunu farklı bir tablodan okuyup, karakter ona göre çiziliyor. Veya karakter setinde, her karakterin son iki byte'ına karakterin genişliğini yazıp, önce son iki byte'ı okuyup, sonra çizim yapılabilir. ;)


Konu Başlığı: Ynt: VICE Monitör ile karakter seti çalmak
Gönderen: witchdoktor üzerinde Şubat 15, 2016, 14:09:09 ÖS
Alternatif bir tool olarak ICU64'den de faydalanabilirsin.

http://icu64.blogspot.com.tr/ (http://icu64.blogspot.com.tr/)

http://www.youtube.com/watch?v=tjcvR5McmSg (http://www.youtube.com/watch?v=tjcvR5McmSg)

https://www.youtube.com/watch?v=inWsuWEy3mQ (http://www.youtube.com/watch?v=inWsuWEy3mQ)


Konu Başlığı: Ynt: VICE Montir ile karakter seti çalmak
Gönderen: wizofwor üzerinde Şubat 16, 2016, 17:56:11 ÖS
AR VI ile önce programı yükleyip, soft reset atıp, monitörde * ile ROM bölgesini görünür hale getirip deneyebilirmisin. Muhtemelen görmen gerekir.

Acil yetiştirmem gereken bir proje var. Akşamları vaktim kısıtlı olduğundan oraya odaklandım. İhtiyacım olan karakter setini bir şekilde aldığım için şimdilik pas geçiyorum ama vaktim olduğunda bunu deneyeceğim.


Birde mutemelen biliyorsundur, yine de buraya ekleyeyim  ICU64  (http://icu64.blogspot.com.tr/)ile tüm hafızayı, olanı biteni, ne nerede çok rahat izleyebilirsin ;)

icu64'ü biliyorum ama denemedim. Sürekli tavsiye geliyor bunu da deneyeceğim.

    ya vice 'da snapshoot al. vsf uzantılı dosyayı sonra herhangi bir hex viewer ile aç (win hex kullanıyorum .Süpeer). Daha sonra  c64 $0000-$FFFF  arası belleği  bakmak için  , dosyanın başından itibaren 80 byte sonrasından başlıyor.mesala ekran'a çıkan karakter tabanlı görüntüyü beğendin diyelim.snapshoot dosyayı hex viwer ile açınca $0480 numaralı adresten itibaren c64 ekran belleğinin verilerini görürüsün.eğer ekran belleğinde görüntüyü almak isityorsan $0480 adresinden sonra 1024 byte  c source kodu için hex olarak kopyala yapabilirsin(winhex içinde pascal ,c source code olarak kopyalayabiliyor.).ve böylece ekran belleğindeki bilgileri istediğin yerde kullanabilirsin.Diğer alanları tek tek bakarasan , spriteları , karakter setlerini, ve kaynak kodlarını inceleyebilirsin.birde icu 64 tavsiye ederim onda live olarak izleyebilirsin.

Vice monitörde komple memory dump yapıp bu dosyayı charpad ile açtığımda font datasını yakalayabiliyorum. Ama $e000'de olmasını beklediğim dana $0200'de çıkıyor. Esas soru datanın neden farklı yerde çıktığı?


Bu diskmag'deki scroller karakter seti sanırım standart bir set değil. Her bir karakter farklı genişlikte olabiliyor. Açıkçası tembellik yapıyorum koda hiç bakmadım. Bu tip scrollerlar nasıl kodlanıyor. Bilen var mı?

Bir de alt kısımdaki menu ve fontları bence direkt bitmap sanki. Karakter set değilmiş gibi duruyor. Emin değilim...

Scroll kısmında kullanılan karakter seti standart ancak fontlar 4 piksel genişliğinde çizilmiş. Yani 8x8'lik alan dikey olarak ikiye bölünmüş. İkinci yarısı ve boş ekrana basılırken bir şekilde iki karakter yan yana getirilerek 8x8'lik alana iki harf basılıyor.