- 2003’te bir GameCube emülatörü olarak başlayan Dolphin, 2026’da Triforce arcade sistemi desteğini ekleyerek yeni bir platform alanına genişliyor
- MMU Fastmem optimizasyonu, sayfa tablosu tabanlı bellek erişimini hızlandırıyor; özellikle Rogue Squadron III ilk kez tam hızda çalışabiliyor
- Mario Strikers Charged için çevrimiçi senkronizasyon hatası 5 yıl sonra çözüldü; böylece gerçek Wii ile ağ oyunu doğru şekilde çalışıyor
- Triforce emülasyonu tarafında The Key of Avalon’un dokunmatik ekran protokolü ve IC kart işlevlerinin geri getirilmesi sürüyor; F-Zero AX ve Virtua Striker 4 ile ilgili özellikler de iyileştirilecek
- Oyunu RAM’e önbelleğe alma özelliği, SDL denetleyici ipucu ayarları, Wii menüsü zamanlama ayarı gibi kullanıcı deneyimi ve performansı artıran çok sayıda özellik eklendi
Triforce desteği eklendi
- Dolphin, Sega·Namco·Nintendo ortak arcade sistemi Triforce için resmi destek ekledi
- İlk iyileştirmeler arasında manyetik kartın otomatik takılması, bölge ayarı ve çoklu kabin emülasyonundaki hata düzeltmeleri yer alıyor
- The Key of Avalon’un dokunmatik ekran protokolünün Elo SmartSet’e benzediği doğrulandı; oyun başlangıcına kadar başarı sağlandı ancak IC kart başlatma sorunu nedeniyle süreç durdu
- IC kart işlevlerinin geri getirilmesiyle Virtua Striker 4, Gekitou Pro Yakyuu gibi oyunlarda takım oluşturma·karakter yaratma modları yeniden çalışacak
MMU Fastmem ve Rogue Squadron optimizasyonu
- Sayfa tablosu Fastmem eşleme uygulamasıyla Rogue Squadron II·III performansı en fazla iki kat arttı
tlbie komutu izlenerek sayfa tablosu değişiklikleri gerçek zamanlı yansıtılıyor
- Branch Following’in devre dışı bırakılması, kod geçersizleştirme optimizasyonu, CPU Vertex Culling’in etkinleştirilmesi gibi değişikliklerle kare düşüşü ve takılmalar azaltıldı
- Rogue Squadron III, yüksek performanslı donanımlarda ilk kez tamamen tam hızda çalışabiliyor
Mario Strikers Charged hatası çözüldü
- Dolphin ile gerçek Wii arasındaki fizik senkronizasyon hatasının nedeninin
fmadds komutundaki hatalı kayan nokta işlemi olduğu belirlendi
2Sum algoritmasıyla yapılan hassas yuvarlama düzeltmesi sayesinde sorun çözüldü ve çevrimiçi maçlar tamamen senkronize oldu
- Bu düzeltme, Inazuma Eleven GO: Strikers 2013 için benzer bir sorunu çözme deneyimi temel alınarak geliştirildi
Diğer önemli iyileştirmeler
- Wii menüsü veri yönetimi zamanlaması, gerçek donanıma daha yakın olacak şekilde ayarlanarak NAND erişimi sırasında aşırı CPU yükü hafifletildi
- Load Whole Game into Memory özelliği eklenerek NAS gibi ağ depolama üzerinde çalıştırıldığında disk bekleme gecikmesi ortadan kaldırıldı
- SDL hint GUI ayarı eklenerek Joy-Con ayırma, DualSense hot-plug sorunları gibi denetleyici uyumluluğu geliştirildi
- Need for Speed: Hot Pursuit 2, Rabbids Go Home gibi bazı oyunlara VBI senkronizasyon yaması uygulanarak kare hızı sınırlandırması normale döndürüldü
Performans ve topluluk katkıları
- Bu sürümde 465 commit birleştirildi ve çok sayıda topluluk testi ile donanım araştırması yansıtıldı
- Rogue Squadron serisi, Mario Strikers Charged, Triforce gibi alanlarda uzun süredir çözülemeyen sorunların giderilmesi sayesinde Dolphin’in doğruluğu ve performansı büyük ölçüde artırıldı
1 yorum
Hacker News görüşleri
Resmî sunucular uzun zaman önce kapanmış olmasına rağmen, Dolphin'in gerçek Wii konsollarıyla çevrimiçi bağlanabilmesini sağlamaları etkileyici
Böyle tutkulu bir adanmışlığa sahip insanların olması gerçekten sevindirici
Ama kısa vadede bu tür teknolojik ilerlemeler eşitsizliği daha da artırabilir
Emülatör hataları yüzünden bir oyun tamamen ya da kısmen çalışmazsa, gelecek nesiller bu oyunları deneyimleme fırsatını kaybedebilir
İnsanların buna bu kadar önem vermesi gerçekten harika
Bana en ilginç gelen kısım, emülatör geliştirmenin sık sık orijinal oyunun garip ama kasıtlı davranışlar sergilediğini ortaya çıkarması
90'ların ortasındaki GCC'nin, benim 2000'lerin başında elle optimize etmeye çalıştığım şeyleri zaten otomatik yaptığını öğrenince şaşırmıştım
Emülatör SRAM'i kaydetmediği için save tutarsızlıkları oluşuyordu ama hızlıca düzeltildi
Plan9 tabanlı sade C kodu olduğu için düzeltmesi kolaydı
Dolphin geliştirme raporlarını okumayı hep sevmişimdir
Teknik konuları anlaşılır hâle getirmeyi iyi başarıyorlar
Dolphin raporlarıyla bağlantılı olarak, yazarlardan biri açık kaynak emülatör topluluğundaki sorunları ele alan ilginç bir yazı paylaşmıştı
Rethinking Open Source
Özetle, topluluk temeli ve kimliği oturmadan önce yüksek hype yaratan bir projeyi açık kaynak yapmak, gerçekçi olmayan beklentilere sahip kullanıcılar yüzünden sorun çıkarabiliyor
Ayrıca başkalarının bitmemiş branch'leri alıp kendi işiymiş gibi dağıtması da yaşanabiliyor
Dolphin ekibi bütün bu zorluklara rağmen projeyi yüksek düzeyde profesyonellikle yürütüyor
Ücret alınan bir işte bile zor, ücretsiz bir projede ise daha da zor olmalı
Eski fork'ların kalitesi düşüktü
Yazarın anlattığı şeyler konusunda içtenlikle heyecan duyduğunu görmek güzel
Geçmişte bir Melee netplay hatası bildirdiğimde, her şeye karşı merak duyan ve derine inmeyi seven biri olduğunu görmüştüm
Dolphin gerçekten akıllı geliştirmeye örnek bir proje
Eskiden eski makinemde Metroid Prime'ı çalıştırmak için 4 çekirdeğin tamamı gerekiyordu, ama birkaç yıl sonra aynı oyun çekirdeklerin yalnızca %25'ini kullanıyordu
JIT ve emülasyon verimliliğindeki iyileştirmeler sayesinde performans muazzam biçimde artmıştı
Bu tür optimizasyonlar gerçekten büyük bir başarı
Triforce arcade uyumluluğu tartışılırken “IC kart desteği”nden söz edilmiş; bu uygulanırsa birçok özelliğin önü açılacak deniyor
Japonya'daki ulaşım kartlarına benziyor ama Triforce kartlarında oyun ilerleme verisini saklamak için kullanılıyor
ABD'deki arcade salonlarında hiç görmediğim hoş bir özellik
magcard ucuz ama dayanıklılığı düşük ve üzerine baskı yapılabiliyor
IC kart daha kalın ve daha sağlam ama üzerine baskı yapılamıyor
Fotoğraflarla açıklanan kaynak: Rise of the Triforce
Neredeyse tüm Triforce oyunları save için kart kullanıyor
Muhtemelen ABD'de de Mario Kart Arcade GP sürümünü görmüşsünüzdür
maimai, chunithm, DDR gibi oyunlarda kullanılan AIME kartı ile benzer bir fikir
Ancak Triforce'un IC kartı yalnızca kimlik doğrulama için değil, veri saklama için de kullanılıyor
fnmsubs CPU komutunun JIT'te hatalı uygulanmış ama interpreter'da doğru çalışmış olması ilginç
Bu tür durumlar için differential fuzzing uygulamak iyi bir fırsat gibi görünüyor
Bu yazının asıl özeti, Dolphin'in Triforce arcade kabin desteğini geri getirmiş olması
Triforce, Nintendo, Sega ve Namco'nun ortak geliştirdiği bir donanımdı ve Dolphin desteği 2016'da bırakmıştı
Artık F-Zero AX, Mario Kart Arcade GP 1·2 gibi oyunlar yeniden çalışıyor
Ayrıntılar: The Return of the Triforce
Önceki tartışma bağlantısı
Makalenin ilk paragrafı zaten bundan bahsettiği için buna “gömülü konu” demek pek doğru olmaz
Bağış kabul edip etmediklerini merak etmiştim ama resmî sitede bir şey bulamadım
İlgili forum gönderisi: Dolphin Donations