[Tamirat] Capcom Ghosts'n Goblins

Uzun zamandır bir tamirat yazısı paylaşmadığımı farkettim. Aslında bu retro adına boş durduğum anlamına gelmiyor

2 Slot'lu MVS'den sonra da bir çok tamiratım oldu (örn. Final Fight, Aliens, Street Fighter'lar v.s.) ancak bu son tamiratım gerçekten paylaşmaya değer. Orijinal Capcom CPS sistemi öncesi (Pre-CPS veya Capcomn Classic diye bilinen sistemler) 1985 yılında arcadelere çıkmış oldukça nadir bir arcade kartı olan Ghosts'n Goblins…

Bu oyun çocukluk travmalarımdan birisidir arkadaşlar. Commodore 64 versiyonunu yaz tatilinde hemen her gün hastalık seviyesinde oynayıp sinir küpü olduğumu hatırlıyorum. Hıncımı alamayıp ardından Commando ve 1942 oynayarak kendimi sakinleştirirdim.

Daha önce GnG oynamamış olanlar bilmez ancak oyun literatüründe meşhur “kazık” oyunlardandır bu oyun. Zor olmasına rağmen arcade kolleksiyonerleri tarafından çok aranan nadir ve nispeten pahalı (300-500 USD) bir karttır…

Bu oyun zor olmasına ve oyunda üstün bir başarı sağlamamış olmama rağmen grafiklerin öyle bir havası müziğinin hastalık seviyesinde öyle bir kulakta kalıcığı var ki beni MAME ve arcade kabin yapmaya teşvik eden oyunların başında gelir.

Neyse, bu kart masama nasıl geldi derseniz, çok uzun zamandır (yıllardır) bir gözüm yabancı forumlarda bir gözüm ebay'de uygun fiyatlı bir GnG arıyordum. Bir çok fırsatı kaçırmama rağmen geçende eBay'de bir açık artırma ilanı gördüm. Kart “untested” (yani test edilmemiş) olarak açık artırmadaydı. Paypal'de de biraz bütçem birikmişti ve daldım açık artırmaya. Untested ve arızalı kartlar normal fiyatlarının genelde yarısı veya üçte birine satılır. Ancak elemanın birisi ısrarla kapıştı benimle. Kart fiyatı 200 USD geçince dedim “s***r al bi tarafına sok test edilmemiş kartı” dedim elemana ve artırmadan çekildim.

Bir hafta sonra bi mesaj aldım ebay satıcısından, diğer alıcı ödeme yapmamış istersem kartı alabileceğime dair. Kahkaha Kahkaha Kahkaha Buna ebay literatüründe “second chance offer” deniyor… Bu şekilde kartı aldım ve sonunda yıllardır beklediğim GnG masamda

Kartı aldık almasına ancak o hırt artırmaya girmeseydi daha da uygun fiyata kapatacaktım. Ya da o eleman olmasaydı başkası dalardı bilemiyorum artık. Neyse, kartı aldık ya, işin yarısı tamam. Diğer yarısı amerika posta kutumdan diğer aldığım arcade kartla birlikte Türkiye'ye gelmesi. Onu hallettik. Ancak ona da tahminimin üzerinde para vermek zorunda kaldım. Satıcı kartı naidr ve pahalı olduğundan anladığım kadarıyla öyle bir paketlemiş ki, normalde iki arcade kart girecek bir USPS kutusunda göndermiş. Hal böyle olunda 10-20 dolar civarında ek bir maliyeti oldu bana gönderinin…

Neyse, kart geldi ya. Masam da ya. Gerisi hikaye

Şimdi bu kartı hemen test etmek için masamdaki JAMMA düzeneğine bağlamam gerekiyordu. Ancak bu kart JAMMA olmadığından arada bir tür adaptör kullanmak lazım. Capcom Classic pin dizilimini JAMMA'ya çevirecek bir adaptör Commando kartımdan ötürü zaten elimde mevcut. Hemen zaman kaybetmeden araya bu adaptörü de takıp kartı JAMMA test ortamıma bağlıyorum…

Benim kartın çalışmasına dair herhangi bir beklentim yok ama power düğmesini çevirirken de içinden “hadi len uğraştırma beni, şak diye çalışsan ne güzel bonus olur” diyorum

ve powerı veriyorum…

Simsiyah bir ekran. Hiç hareket yok…

Ne bekliyordum ki? Bu benim kaderim.

Hayır tam ben bu kartı satın aldığımda (ikinci şans tanıdı ya bana satıcı, kendimi “şanslı” hissediyorum) KLOV'da adamın birisi 100% çalışan Ghosts'n Goblins satışa koydu mu sana Hem de 2 tane Tamam benim aldığım fiyattan daha fazlaya satışa koymuştu adam ancak yine de şu an elimdeki çalışmayan bir GnG sonuçta bakır ve epoksiden ibaret işe yaramaz bir elektronik hurda gerçeği ile yüzleştiğim durumda “ah ulan keşke o teklifi kabul etmeseydim” demekten de kendimi alamıyorum…

Neyse, sinirim geçince, hadi başlayalım bakalım diyorum tamirata…

Bu şekilde sıfır tepki veren kartlar korkutucudur. Problem ya çok basittir veya tamiri imkansızdır. Ancak bir yerlerden başlamak lazım.

Bu tür durumlarda önce kablolar, bağlantılar sonra voltajlar kontrol edilir. Kartta bariz bir kısa devre var mı diye. Bu rutini yaptıktan sonra bağlantılarda herhangi bir sorun olmadığını gördüm ve +5v ve +12v'un karta geldiğini gördüm.

Sonraki durağımız CPU. Herşeyin başlaması gereken yer. Bu kartta kullanılan CPU daha önce uğraşmadığım (ve elimde yedeği olmayan) Motorola 6809 işlemcisi. İnternetten pin dizilimini buluyorum hemen ve ilk bakılacak olan pin CLOCK sinyalinin işlemciye girdiği yer.

Doğru pin'e mi bakıyorum diye bir kaç defa bir datasheet'e bir de Osiloskop'a baktıktan sonra durumu anlıyorum…

CPU'ya CLOCK sinyali gelmiyor. Bu sinyal herhangi bir logic elektronik devreyi çalıştıran ana osilatör/kristal tarafından üretilen sinyaldir. Bu sinyal yoksa kart ölüdür. Elektronik devrenin kalp atışı diyebiliriz… Bu durumda hastanın kalbi durmuş, ölü

Hemen bir sonraki durak kristal. Kristalin bacaklarına bakıyorum acaba sinyal burada var mı diye.

Burada da sonuç aynı. Kristalde herhangi bir osilasyon yok.

Bu iyiye alamet zira ana sorunu bulduk.

Hemen havyamı ve lehim sökücü istasyonumu ısıtıyorum ve iki katlı olan bu kartın bağlantıları sökerek kristalin lehim yerlerine erişmek için kartı ikiye ayırıyorum.

Burada ilginç bir şeye dikkatinizi çekmek istiyorum. Capcom zamanında bu kartın üretiminde oldukça farklı bir tasarım kullanmış. Bakalım resimlerden ne demek istediğimi anlayabilecekmisiniz?

Evet? Ne “göremiyorsunuz” ?

Bakır yollar yok bu kartta Kahkaha

Evet, baskılı devrelerde görmeye alışık olduğumuz elektronik elemanları birbirine bağlayan bakır yollar bu kartta yok!!! Aslında varlar elbette ama erişilebilir değil. Capcom zamanında bu oyunun korsanlar tarafından kopyalanmasını engellemek veya biraz da olsa geciktirmek için uyguladığı bir strateji gereği tasarımı böyle yaptırmış.

PCB'nin ön ve arka yüzü balık sırtı gibi tamamen bakırla kaplı ve esas yollar alışık olduğumuz PCB'lerden farklı olarak içerdeki bir epoksi katmanına gizlenmiş.

Bu korsanların bu kartı kopyalamasına engel olmuş mu? Hayır tabii ki. Şu an sadece bana zorluk çıkarmaya yarıyor. Bu kartı bu haliyle tamir etmek 10 kat daha zorlaşıyor zira gözle muayene edebileceğim yollar bu kartta gözden gizlenmiş durumda… Eğer hatlarda bir korozyon varsa yandık!!!

Neyse, bereket, bu kartın “gizli” devre şeması bir şekilde yabancı forumlarda ortaya çıkmış. Hemen indiriyorum ve şemayı incelemeye başlıyorum.

ilk hedefimiz kristal…

Kristallerin bozulması oldukça nadir karşılaştığım bir durum. Sonuçta o kadar basit bir yapıları vardır ki bozuk olmaları için aşırı derecede paslanmış olmaları veya fiziki hasara uğramış olmaları lazım. Sonuçta o metal kutucuğun içinde asılı duran bir parça kuartz kristalinden ibaret

Bu sebeple önce kristalden ziyade devre şemasından baktığımda kristalin osilasyonunu sağlayan diğer devre elemanlarını tespit etmeye çalışıyorum. Dirençler ve seramik kondansatörler de oldukça basit ve fiziki hasarları yoksa bozuk olmaları pek ihtimal dahilinde olmayan elemanlardır. Ancak şemada bir şey dikatimi çekiyor…

Devrenin osilatör (CLOCK sinyalini üreten kısım) katmanı tasarımının göbeğinde normalde laışık olduğumuz gib basit bir direnç/kondansatör yapısı kullanılmak yerine daha kompleks (ama daha stabil) bir yapı düşünülerek bir 74LS04 (Hex inverter) kullanılmış.

Bu 74LS04'ü söküp test ettiğimde…

Aha! Bulduk galiba suçluyu…

Yerine yeni bir 74LS04 takıyorum ve veriyorum powerı…

Kahkaha Kahkaha Kahkaha

Güzeel! Keyfim yerine geldi şimdi. Mutlu son mu? Henüz değil, daha biraz daha işim var zira sprite'larda bir sorun tespit ediyorum. Yine de tünelin sonunda ışığı gördük ya, keyfime diyecek yok

Sprite sorununu biraz daha inceleyebilmek ve biraz da bu zor oyunda kafama yemek için bir iki el oyun oynuyorum test masamda. Sonra kartı kapatıp tekrar açıyorum…

Haydaaa Kart açılmıyor! Sadece ekranda kayan böyle bir görüntü.

Biraz debelendikten sonra anlıyorum ki osiloskop'un ucunu kristale değidirdiğimde kart açılıyor. Boşta oldu mu bir açılıyor bir açılmıyor.

Bu kristalde de mi bi durumlar var acaba diye düşünerek mazleme çekmecemden bir 12Mhz'lik kristal bulup takıyorum…

Tamam eski kristal gibi değil, daha modern bişey ama iş görür Ayrıca tam kristal devresinin yakınındaki filtre amaçlı kullanılan 10uF'lık tantalum kondansatörde de bir çatlak tespit ediyorum. Onu da değiştiriyorum.

Bu işlemler sonrasında sorunum çözümlüyor. Artık kart stabil şekilde her power verdiğimde açılıyor…

Şimdi sprite problemine dönebilirim…

Şimdi gelelim sprite problemine…

Sorun şu;

Ana karakterimiz olan şovalye Arthur'un sprite'nın sağ tarafındaki kırmızı dikey çizgiyi görüyormusunuz?

Ayrıca zombilerin de spriteları bozuk. Ancak sadece sağa doğru yürüyenler. Sola doğru yürüyenlerde sorun yok.

Bir başka enteresan durum, Arthur sola döndüğünde sprite'ının renkleri tamamen bozuluyor.

Önce basitçe ROM problemidir diyorum ancak tüm EPROM'ları tek tek söküp, okuyup, MAME'den kontrol ettiğimde hepsi sorunsuz çıkıyor.

Bu sorunu çözmek için devre şemasını detaylı incelemem gerektiğini anlıyorum…

İşe önce sprite'ların verisinin işlendiği sprite RAM'lerden başlıyorum. Bu tasarımda anladığım kadarıyla zamanın (1985) ekonomisi ve RAM fiyatları gereği olacak 8-Bit'lik Statik RAM kullanmak yerine 4-bit'lik iki adet SRAM kullanılmış. Sprite'ların ekrandaki konumu, iç grafikleri ve diğer işlemleri için 6 adet ikili gruplar halinde 2114 (1024 x 4-bit) SRAM kullanılmış.

Önce onları tek tek söküp soketleyip elimdeki yedek Commando PCB'sinden söktüğüm tek 2114 yedek SRAM ile test ediyorum.

Sonuç sıfır. RAM'ler sağlam. Neyse ileride bozulurlarsa tamirat kolay olacak artık zira hepsinin birer soketi oldu

RAM'ler sağlam çıkınca devre şemasına geri dönüyorum ve OBJECT konu başlığı altındaki tüm sayfalardaki devre elemanlarını takip etmeye başlıyorum osiloskobumla…

Şemada bir şey dikkatimi çekiyor. Bir sinyalin adı; OBHFLIP

Bu sinyalin kısaltma adı acaba “Object Horizontal Flip” olabilir mi diyorum. Tam da nesnelerdeki bozulma objenin sağa dönük grafiğinde değil sola dönük olanında olması durumunu düşünüyorum. Sonuçta bu adamlar karakterlerin sağ sol grafiklerini ayrı ayrı yapmak yerine (ki o zamanlar hafıza, depolama bileşenleri olan EPROM'lar çok pahalıydı) elektronik bir mantıkla ROM'lardan okunan obje grafiklerini yeri geldğinde “flip” mi ediyorlar dedim kendi kendime?

Bu ip ucuyla yola çıkıp OBHFLIP sinyalinin kaynağına kadar gidiyorum. Kaynaktaki devre elemanı 74LS174 (flip flop). Bunu devrede test ettiğimde bir sorun görmüyorum ancak OBHFLIP sinyalinin türediği ayaktaki sinyalin tipi biraz sorunlu gözüküyor gözüme.

Bu sinyalin gittiği devre elemanını buluyorum şemadan…

Aha! Bu bir 74LS257 (multiplexer) ve Grafik ROM'lardan gelen veriyi direk kontrol ediyor. Veri hattının tam ortasında ve çıkan sinyaller ise renk verisi. Bizim OBHFLIP sinyalimiz ise bu multiplexer'ın kanal seçme pin'ine giriyor! 74LS257'i çok kaba tabiriyle TV'lerinizin AV girişine iki oyun konsolu bağlamak için kullandığınız mekanik “AV seçici” lerine benzetebilirsiniz.

Neyse, bu 74LS257'nin pin'lerine osiloskop ile baktığımda gördüğüm sinyaller hiç hoşuma gitmiyor.

Genelde böyle yamuk yumuklaşmış sinyaller gördüğünüzde anlarsınız ki bu elemanda içsel bir sorun var. Muhtemel içerde birşeyler yanmış ve kısa devre yapıyor. Sonuçta bu bir digital devre. Sinyallerin suret gibi olması lazım…

Şüphelendiğim 74LS257'i söküyorum ve test ediyorum…

Tahmin ettiğim gibi. Kanallardan birisi yanmış…

Yedek parça çekmecemden yenisi ile değiştiriyorum. Veeee….

Arthur düzeldi

Zombiler de

Sonunda Ghost'n Goblins kartımız 100% çalışır hale geldi…

Şimdi son işim yeni bir Capcom Classic-JAMMA çevirici yapıp bu kartı kabinlerden birine yerleştirmek. Ancak onu da yarın akşama bırakayım zira geç olmuş.

Bu akşam tamirat sırasında kullandığım yedek Capcom Classic-Jamma adaptörümün yerine kalıcı bir adaptör daha yaptım. Adaptörle birlikte GnG'yi de kabindeki yerine yerleştirdim…

Bilgilendirme amacıyla kullanılan Kutucuk

Yavuzg

Eşref Kayın 2018/02/18 17:22

Notlarımızı beğendiyseniz, lütfen yazarlarımıza beğeninizi iletiniz.