ZSNES emülatöründe Donkey Kong Country 2’de dönme varilleri kontrol edilemiyor ve sürekli dönüyor.
Hata ZSNES’in açık veri hattı (open bus) davranışını taklit etmeyişinden kaynaklanıyor.
SNES’te okunmayan bellek adresleri açık veri hattı ile önceki veriyi dönderir.
Dönme kodunda and $2000 mutlak adresleme hatasıyla açık veri hattı okuması yapılıyor.
Donanımda bu okuma 0x2020 döndüğü için varil bir sonraki tam yön noktasına kadar dönmeyi sürdürüyor.
Hatanın aslında and #$2000 (immediate) olması gerekirken mutlak adresleme kullanılması bir yazım hatası.
Sorun, 65816 CPU’nun bellek bankalama ve açık veri hattı özelliklerinin yanlış emülasyonu yüzünden ortaya çıkmış.
Hatanın düzeltilmesi için ROM’da ilgili opcode 0x2D’den 0x29’a değiştirilerek and #$2000 kullanılabilir.
Get notified when new stories are published for "🇹🇷 Hacker News Türkçe"