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ımVICE Monitör ile karakter seti çalmak
Sayfa: [1]   Aşağı git
Yazdır
Gönderen Konu: VICE Monitör ile karakter seti çalmak  (Okunma Sayısı 10515 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« : Ş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?

« Son Düzenleme: Şubat 08, 2016, 14:39:05 ÖS Gönderen: wizofwor » Logged

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



Üyelik Bilgileri
« Yanıtla #1 : Ş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 de aklında olsun

Birde mutemelen biliyorsundur, yine de buraya ekleyeyim ICU64 ile tüm hafızayı, olanı biteni, ne nerede çok rahat izleyebilirsin
 
Logged
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #2 : Şubat 08, 2016, 13:13:21 ÖS »

Merak ettim şu intro yu yollaman mümkün mü? Kahkaha
Logged
blackturk
Uzman
*****
Mesaj Sayısı: 1.283



Üyelik Bilgileri
« Yanıtla #3 : Ş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 başlığına taşıdım. Konu bölünmesin. Oradan devam edelim. [wizofwor]
« Son Düzenleme: Şubat 17, 2016, 10:49:41 ÖÖ Gönderen: wizofwor » Logged

A1200 | APOLLO 1240 32 MB | CNET PCMCIA | SYSINFO SPEED TEST 30 MIPS
SM1,SEGA MEGA CD,SM2,SMS II,Sega Saturn Mod ve AR 4MB,PSX Mod ve Mpeg ,PSX2 ,SNES ,ATARI 800XL,SPECTRUM 128K +2,YAMAHA CX5M MSX,ATARI 520 STFM,1040 STF,C64,C128,1541 II,1571,RAM 1764 ,A500,A500+,A600,A590,IDE68k,2X1084S,1084P
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #4 : Şubat 08, 2016, 14:16:37 ÖS »

Intro değil diskmag



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.
Logged

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


A.K.A. deliMawi


Üyelik Bilgileri
« Yanıtla #5 : Şubat 15, 2016, 12:13:39 ÖS »

Intro değil diskmag
[/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...
Logged

Doberman ♦ megaOne ♦ HDMI-64 ♦ HDMI-520 ♦ NewSchool
joker_
Deneyimli
*****
Mesaj Sayısı: 2.120



Üyelik Bilgileri
« Yanıtla #6 : Şubat 15, 2016, 12:19:10 ÖS »

Intro değil diskmag
[/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.
Logged
witchdoktor
Uzman
*****
Mesaj Sayısı: 6.238



Üyelik Bilgileri
« Yanıtla #7 : Şubat 15, 2016, 14:09:09 ÖS »

Alternatif bir tool olarak ICU64'den de faydalanabilirsin.

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

<a href="http://www.youtube.com/v/tjcvR5McmSg&rel=0" target="_blank">http://www.youtube.com/v/tjcvR5McmSg&rel=0</a>

<a href="http://www.youtube.com/v/inWsuWEy3mQ&rel=0" target="_blank">http://www.youtube.com/v/inWsuWEy3mQ&rel=0</a>
Logged
wizofwor
Genel Yönetici
*****
Mesaj Sayısı: 4.785


Gosub ile gidilen yerden goto ile dönen adam


Üyelik Bilgileri WWW
« Yanıtla #8 : Ş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 ile tüm hafızayı, olanı biteni, ne nerede çok rahat izleyebilirsin


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

&nbsp; &nbsp; ya vice 'da snapshoot al. vsf uzantılı dosyayı sonra herhangi bir hex viewer ile aç (win hex kullanıyorum .Süpeer). Daha sonra&nbsp; c64 $0000-$FFFF&nbsp; arası belleği&nbsp; bakmak için&nbsp; , 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&nbsp; 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.

 
Logged

Sayfa: [1]   Yukarı git
Yazdır
Gitmek istediğiniz yer: