- Hyper Neo Geo 64, SNK’nin 1997’den 1999’a kadar iki yıl boyunca işlettiği bir 3D arcade sistemiydi; toplam yalnızca 7 oyun çıktıktan sonra kısa ömürlü oldu ve 2D’den 3D’ye geçiş döneminin deneysel platformlarından biri olarak kaldı
- MAME geliştiricisi David Haywood’un 2004’ten beri sürdürdüğü 21 yıllık emülasyon çalışması kısa süre önce tamamlanma aşamasına ulaştı; grafikler ve girdilerin yanı sıra ses emülasyonu da artık düzgün çalışıyor
- Son bir ay içinde R. Belmont başta olmak üzere MAME katkıcıları, ses sentezi ve filtre işleme yöntemlerini çözerek hızlı bir ilerleme sağladı; ekimde çıkması planlanan MAME 0.282 sürümünde tam ses desteği sunulacak
- Emülasyon geliştirme sürecinde I/O mikrodenetleyici dökümü, V53 CPU çekirdeğinin iyileştirilmesi gibi çevresel teknolojilerdeki ilerlemeler önemli bir dönüm noktası oldu; sentezleyici emülasyonu çalışmalarıyla oluşan beklenmedik sinerji de katkı sağladı
- Bu örnek, emülasyon geliştirmenin doğasını iyi gösteriyor: yıllar süren görünmez emek, sabır ve farklı teknik unsurların tek tek yerine oturmasıyla tamamlanan işbirlikçi bir sürecin önemine işaret ediyor
Hyper Neo Geo 64 emülasyonunun uzun yolculuğu
- David "MameHaze" Haywood, 2004’te Hyper Neo Geo 64 emülasyonu üzerinde çalışmaya başladığında, MAME’in 3D oyun desteği neredeyse yoktu, MIPS CPU çekirdeği daha başlangıç aşamasındaydı ve ortada I/O mikrodenetleyici dökümü bile yoktu
- O dönemde PC belleği, 2D grafikleri yükleyip çözümlemek için bile yetersizdi
- YouTube öncesi bir dönem olduğu için referans materyal bulmak da son derece zordu
- Bugün bu platformun emülasyonuyla ilgilenen pek çok genç yetişkin, çalışma başladığında daha doğmamış bile olabilir
- Birkaç hafta önce Haywood sistemi MAME’de "çalışıyor" durumuna yükseltti, ancak bu biraz biçimsel bir adımdı
- Uygun ses emülasyonu hâlâ eksikti ve Haywood 2023’ten beri çekirdek tarafında çalışmamıştı
- İnsanlar oyunları uzun zamandır sessiz şekilde oynadığı için "çalışıyor" etiketini vermenin uygun olduğuna karar verdi
- Bu da diğer MAME katkıcılarını ses tarafını iyileştirmeye yöneltti
Hyper Neo Geo 64 sistemine genel bakış
- 1997’den 1999’a kadar yalnızca iki yıl arcade salonlarında yer aldı ve toplam 7 oyun yayımlandı
- Road's Edge
- Samurai Shodown 64
- Xtreme Rally
- Beat Busters: Second Nightmare
- Samurai Shodown 64: Warriors Rage
- Fatal Fury: Wild Ambition
- Buriki One
- Bu oyunlar tek tek bakıldığında emülasyon için güçlü bir motivasyon yaratmıyordu; ancak MAME ekibinin tüm arcade sistemlerini tersine mühendislikle çözme ve koruma tutkusu projeyi sürdürdü
- Capcom’un CPS3 kartı çözüldükten sonra desteğin hızla eklenmesinin aksine, Hyper Neo Geo 64 için 21 yıla yayılan kesintili ve zorlu bir çalışma gerekti
Emülasyon geliştirmedeki görünmeyen emek
- Haywood, "İnsanların emülasyon konusunda gerçekten anlamadığı şey, hiçbir olumlu sonuç vermeyen çalışmalara harcanması gereken zamanın miktarı" diyerek duruma dikkat çekti
- Hyper Neo Geo 64 sürücüsü üzerinde defalarca haftalarca çalışsa da hiç ilerleme kaydedemediği dönemler tekrar tekrar yaşandı
- Her şeyi anlamaya çalışmasına rağmen sonunda yalnızca "böyle çalışmıyor" sonucuna vardığı hayal kırıklıkları oldu
- Birkaç yıl önce I/O mikrodenetleyicisinin dökümü alındı ve Haywood bunun emülasyonunu yapacak CPU çekirdeğini yazınca somut ilerleme sağlandı
- Pek çok oyunda girişler çalışmaya başladı ve bu sayede video tarafındaki iyileştirmeler daha ileri taşınabildi
- Başka sistemler için geliştirilen V53 CPU desteği daha sonra ses DSP’sini çalıştırmada belirleyici rol oynadı
Ses emülasyonunda hızlı ilerleme
- Haywood platformu "çalışıyor" olarak işaretleyince, R. Belmont başta olmak üzere MAME katkıcılarının ilgisini çekti
- Belmont, Happy ve O. Galibert gibi isimler son bir ay içinde oyunların doğru şekilde ses vermesini sağlamak için çalıştı
- Happy’nin hazırladığı ses CPU programının ayrıntılı disassembly çalışması çok faydalı oldu
- Belmont ve Galibert, MAME’de sentezleyici desteği üzerinde çalışıyordu; Hyper Neo Geo 64’ün ses yongası da sentezleyicilerde kullanıldığı için yararlı bir uzmanlık örtüşmesi oluştu
- Mevcut MAME 0.281 sürümü, Belmont’un YouTube videosunda belgelediği bir dizi hızlı iyileştirmeyi içeriyor
- Temel sample başlatma ve durdurma davranışı doğru şekilde çalışacak biçimde düzeltildi
- Ses düzeyi envelope’ları için ön destek eklenerek ses dengesi iyileştirildi
- Her ses için eklenen low-pass filtreyle yüksek frekanslı gürültü temizlendi ve ses daha berrak hâle geldi
MAME 0.282’deki başlıca iyileştirmeler
- Ekimde çıkması planlanan MAME 0.282’de Xtreme Rally’nin ses sorunları çözülecek ve genel kalite daha da artacak
- Olivier Galibert, 12 bit dinamik aralığın 8 bite nasıl sıkıştırıldığını çözdü ve bunu daha uygun bir Chamberlin filtresiyle değiştirerek çok daha net ve yüksek sadakatli ses elde etti
- Döngüsel sample’ların gerçekte nasıl çalıştığı anlaşıldı, son miksajda bozulma oluşmaması için düzeltmeler yapıldı ve filtre envelope’ları iyileştirilerek Beast Busters Second Nightmare açılışında dramatik bir gelişme sağlandı
- Xtreme Rally’ye özgü bir kod sorunu da çözüldü
- Bu oyunda, ses komutlarını mümkün olan en yüksek hızda ses CPU’suna göndermeye çalışan sıra dışı bir kod vardı; bu da komutların üçte ikisinin kaybolmasına yol açıyordu
- Sorun, tüm komutların iletilmesini sağlayacak şekilde düzeltildi ve Xtreme Rally artık çok iyi duyuluyor
- MAME 0.282 yayımlandığında Hyper Neo Geo 64, gerçekten "çalışıyor" etiketini hak eden bir duruma gelmiş olacak
İşbirlikçi bir projenin kusursuz örneği
- Galibert, Reddit’te bunun sentezleyici emülasyonuna duyduğu ilgiden doğan bir katkı olduğunu söyledi; ancak "işin komik yanı, sentezleyicinin kendisi (MPC3000) hâlâ hiç çalışmıyor" diye de ekledi
- Sentezleyicinin bazı parçaları hâlâ dökülmemiş ve belgelenmemiş olsa da, eldeki parçalardan birinin bambaşka bir yapbozla uyum sağlaması mümkün olabiliyor
- Haywood, "Bu sadece uzun ve yavaş bir süreçti" diyerek, "Yıllar içinde azar azar ilerledi ve MAME’in çevresindeki kod daha iyi ve daha yetenekli hâle geldikçe adım adım daha fazla ilerleme kaydedebildik" diye hatırlattı
3 yorum
Yalnızca 7 oyunu destekleyen bir konsol için böyle bir çaba harcamaları gerçekten harika.
Emülatör işinin duayeni... vay be
Hacker News görüşleri
Gerçekten müthiş bir emek, ama bu bana Byuu’nun yazılarını ya da son Dolphin geliştirme günlüklerini özletiyor. Shonumi’nin geliştirme blogunu da özellikle tavsiye ederim. Bu blog, Gameboy ve GBA için kızılötesi modemlerden sonar tabanlı balık buluculara kadar nadir ya da emülasyonu zor çevre birimlerini ele alıyor: Shonumi devlog
Byuu gerçekten olağanüstü biriydi. Ortaya çıkıp emülatör uyumluluğunu iyileştirmeye büyük katkı sağladığı günleri hatırlıyorum. Byuu’nun dünyaya kattığı olumlu değişimleri hâlâ sık sık düşünüyorum
Dolphin’de de Factor 5 oyunlarını çalıştırmak için ne kadar çok çaba harcandığına dair gerçekten ilginç yazılar var. Sabit donanım ortamlarında performansı sonuna kadar zorlamak için inanılmaz numaralar kullanılıyor. Bunların gerçek değeri, ancak yıllar sonra biri bu yazılımı bir emülatörde çalıştırmaya kalktığında anlaşılıyor
Soundblaster emülasyonu üzerinden mikrofon girişini düzgün destekleyen bir PC emülatörü bilen var mı merak ediyorum. archive.org’da 1994 civarında yayımladığım ilk uygulamamı buldum; bir müzik görselleştiricisi ve ses girişi gerekiyor
Shonumi devlog’daki Battle Chip Gate yazısı çocukluk anılarımı canlandırdı. Küçükken GBA’de Battle Network hayranıydım ve Mega Man forumlarına katılmak için çevrimiçi topluluklara GameWinners.com üzerinden girmeye başlamıştım. İlk takma adımı da MMBN2’deki yeni bir özellikten almıştım. Battle Network sayesinde eski oyunların korunmasına ilgi duymaya başladım ve oyundaki yapay zeka ile siber dünya temalarının şaşırtıcı derecede ileri görüşlü olduğunu düşünüyorum. Doğrudan internete bağlı PC’ler, kişiselleştirilmiş yapay zekalar, dijital dünyanın karmaşıklığında yol gösteren yapay zeka ajanları, siber suçlar ve hacker’lar, hatta zamana meydan okuyan dijital açıklar ya da çevresel kontrol sistemlerinin hacklenmesi gibi şeyleri gerçekten etkileyici bir gelecek tasviriyle sunuyordu. MMBN2 sayesinde İngilizce öğrendim ve programcı oldum. Hâlâ o günleri keyifle hatırlıyorum
MAME projesinin 28 yılı aşkın süredir özünde neredeyse hiç değişmeden aktif biçimde geliştiriliyor olması etkileyici. Muhtemelen çok adanmış bir geliştirici topluluğu sayesinde
C++ kod tabanına C++ kodu üreten kod, build sürecini yeniden üreten build süreci ve her yıl tüm dosya adlarını değiştirmekte ısrar eden biri de eklenince, gerçekten mağarada yaşayan keşişler gibi bir hava oluşuyor
Tam olarak bir fork değildi ama bir dönem MESS diye ayrı bir proje vardı; arcade dışı sistemlere genişlemeye çalıştı ve sonra yeniden birleşti
Final Burn Alpha/Neo gibi popüler fork’lar da var
Tesadüfen öğrendiğim şeylerden biri olarak SGI/IRIX’i bile emüle etmesi gerçekten çok ilginçti
Aslında çeşitli fork’lar var ama gerçekten “önemli” fork sayılırlar mı emin değilim. Ayrıca adanmış mame geliştiricilerinin dışarıdan gelen koda karşı çok katı değerlendirmeler yaptığını da gördüm
Böyle yazıları gerçekten seviyorum. Oyun emülasyonunun birçok yazarda derin teknik yetkinlikler geliştirdiğini hissettiriyor. Xbox One X ve benzeri sistemlerde gördüğümüz, aşırı zor ve donanımın derinliklerine gömülü DRM’lerin gelecekte kültürel miras sergilerinde devasa boşluklar bırakmasından endişe ediyorum. DRM’in toplum olarak yeterince fark etmediğimiz büyük bir bedeli olduğu kesin
On oyundan bile azı için bu kadar emek veren emülasyon geliştiricilerinin tutkusu gerçekten etkileyici
Az sayıda oyunu olan platformlarda bile bazen biri tek bir oyuna ciddi biçimde bağlanıp büyük emek veriyor. Ben de T-Mek hayranıyım ve arızalı bir makineyi ahırda tutuyorum. Yalnızca iki oyunu olan bir sistem, ama MAME’de düzgün çalışması için korumayı kırabilecek kadar ilgili, yetenekli ve donanımlı birinin çıkması gerekiyor
Bir zamanlar zaten derlenmiş Habbo DCR’yi bağımsız bir masaüstü uygulaması olarak çalıştırmanın yolunu bulan insanlar olduğu için Habbo Origins hâlâ varlığını sürdürüyor. Bunu gören bir Sulake çalışanı da bizzat deneyimlemişti; üstelik bu kişi gerçekten Habbo Retro/Emulator sahnesinden geliyordu. Tersine mühendislik sahnesi gerçekten ilginç bir topluluk
Bazı arcade donanımları yalnızca tek bir oyun için yapılmış tamamen özel kartlara, hatta başka hiçbir yerde tekrar kullanılmayan çiplere sahip. MAME’in misyonu açık, ama SNK, Samurai Shodown ve Fatal Fury sayesinde HNG64 her zaman ilgi çekti
Geçmişi belgelemek ve korumak çok anlamlı bir iş
Böyle durumlarda en uygun kelime gerçekten passionate gibi geliyor
28 yıl sonra bile MAME’in her yanında hâlâ ilginç değişiklikler olmaya devam ediyor. Sadece arcade makinelerinin ötesine geçip az bilinen ev konsollarına, vintage bilgisayarlara ve çeşitli donanımlara uzanıyor. Son dönemde efsanevi Yamaha MU serisi gibi profesyonel müzik synthesizer’larının emülasyonundaki ilerleme özellikle ilgi çekici: Yamaha MU-series wiki. 80’lerin sonlarında PC oyunları MIDI soundtrack desteği sunmaya başlamıştı ama çoğu oyuncu, sınırlı PC ses kartlarıyla bunun ancak bozulmuş bir versiyonunu duyabiliyordu. Yeterli paranız varsa Roland Sound Canvas gibi harici MIDI modülleriyle çok daha canlı duyulabiliyordu, ama asıl zirve 64-voice Yamaha MU80’di. MU80’in sesini ilk duyduğumda neleri kaçırdığımı fark etmiştim: MU80 Demo Song. Artık MAME sayesinde bu pahalı profesyonel donanımı yalnızca yazılım emülasyonuyla özgürce deneyimleyebiliyoruz
Packard Bell Pentium 166 ile birlikte gelen MIDI müziklerin çok garip ve zayıf geldiğini hatırlıyorum. O dönemde böyle yüksek kaliteli cihazların var olduğundan haberim yoktu. YouTube’da Sound Blaster ile MU80 karşılaştırma videolarını bulunca gerçekten çok şaşırdım: karşılaştırma videosu
Yapay zekadan 90’lar nostaljisi taşıyan fantastik bir oyunu yeniden yaratmasını isteyebileceğimiz gün ne zaman gelecek diye merak ediyorum
Bunun CAPCOM’un eski arcade sistemlerinde kullandığı o tuhaf bataryalı DRM yöntemine benzer olup olmadığını merak ediyorum. Güç kesildiğinde yeniden programlama için CAPCOM’a göndermeniz gereken bir sistem vardı
Sanırım o sistemden farklı. Muhtemelen CPS’i, özellikle de meşhur CPS2 kartlarını kastediyorsun. Bu kartlarda batarya, kopya önleme mekanizmasını çalıştırıyordu ve batarya voltajı belirli bir seviyenin altına düşünce güvenlik anahtarı bellekte siliniyordu. Böylece ROM şifreli halde kalıyordu. Makineyi açıp kapatmak sorun oluşturmuyordu. Hatta CPS2 bataryaları kritik bileşenleri bozma eğiliminde olduğu için “intihar bataryası” diye anılıyorlardı. Bugün korumayı aşmanın çeşitli yolları var. Şifresi çözülmüş Phoenix ROM’lar kullanılabiliyor ya da Infinikey PCB lehimlenerek ROM’daki anahtarın işlevi kartın güç beslemesiyle çözülebiliyor. HNG64 ise daha çok donanımının çok daha karmaşık olması yüzünden yeterince analiz edilmemiş gibi görünüyor
Bu yöntem iki aşamalıydı. Program ROM’u ile CPU arasında özel bir decrypter çipi vardı ve bu çip, küçük bir SRAM’de tutulan tabloları kullanıyordu; SRAM de bataryayla besleniyordu. Güç kaybolursa, ister batarya bittiği için ister hack girişimi nedeniyle olsun, çözme anahtarı da kayboluyordu. Tesadüfen FC1 pininin decrypter çipine bağlı olduğu keşfedildi ve gerçekte yalnızca program ROM’unun şifrelendiği anlaşıldı. 68000 CPU komut istediğinde belirli bir sinyal gönderiyor ve decrypter buna göre çözme yapıyordu. Ama PC-relative adresleme modu da aynı sinyali üretiyordu, bu sayede şifrelenmiş komutlar dışarı alınabildi. Bir de başka bir koruma yüzünden çip kısa süre sonra çalışmayı bırakabiliyordu. Daha sonra, CPS kartlarını temel alan ev konsollarında ve SF Zero gibi oyunların konsol portlarında, çipin beklediği garip adresleri okuyan komutların araya serpiştirildiği ortaya çıktı. Belirli adres erişimleri olmazsa çip çözmeyi durduruyordu. Bu sır, konsol portları sayesinde öğrenildi ve sonrasında PC-relative ile bu erişimler ustaca birleştirilerek ROM düzgün biçimde dump edilebildi. 68000 işlemci referans dokümanı
Bu tür yöntemler bugün hâlâ kumar cihazlarında da görülebiliyor. Modern slot makinelerinde çok sayıda koruma önlemi, batarya ve delmeye karşı güvenlik özellikleri bulunuyor; artık bunların amacı telif korumadan çok vergi kaçırmayı önlemek
Yazıda LaserActive’den bahsediliyor. Çocukken amcamın evinde ilk kez görmüştüm ve varlığından bile haberdar değildim: LaserActive wiki. Neredeyse sadece Genesis oyunları oynadığımı hatırlıyorum
Vajra ve Vajra 2’nin, Data West adlı bir şirket tarafından yapılmış LaserActive’e özel shoot’em up oyunları olduğunu görünce şaşırdım. Data East’e isim olarak çok benziyor ve ikisi de Japon şirketi, ama Data East’in bir uzantısı gibi görünmüyor. İsmi bilerek benzer yapıp insanları karıştırmaya mı çalıştılar diye merak ediyorum: Data West şirket bilgisi
Yazının ilk görselindeki fiyat etiketlerine yakından bakarken kendimi buldum. Battle Toad in Battlemaniac 53900 yen, Akumajou Dracula XX 27500 yen ve The King of Dragons 39800 yen
Galaga ve Galaga Fast Shoot’ta tuş girdisi ile oyunun tepki vermesi arasında sürekli 100 ms’den fazla gecikme oluyor; umarım bir gün bu sorun tamamen çözülür