PlayStation 4 Emülatörü: Orbital
PlayStation 4 hakkındaki önceki yazımda Spine'dan bahsetmiş ve Orbital isminde bir PlayStation 4 emülatörü daha olduğunu söylemiştim. Hadi gelin şimdi de Orbital'i kısaca tanıyalım.
Orbital, Alexandro Sanchez tarafından geliştirilmeye başlanmış sanallaştırma tabanlı bir PlayStation 4 emülatörüdür. Büyük ihtimalle Türkçe oyun ve teknoloji sitelerini takip edenlerin haberi vardır, çok yeni olduğu için Spine'ın henüz bir haberi yapılmamış olmasına rağmen Orbital'den bolca bahsedilmiş çünkü:
- PS4 Emülatörü Orbital Artık Grafik Çıktısına Sahip - Technopat
- PlayStation 4'ün emülatörü, geliştirilme aşamasına geçti - Merlin'in Kazanı
- PlayStation 4 emülatörü Orbital ilerleme kaydediyor – PS Oyun
- Orbital isimli PS4 emülatörü geliştirilme aşamasında - Leadergamer
- Şifreli çekirdek imajları için destek
- SAMU (Secure Asset Management Unit) komutlarını işleme
- GFX motoru için Vulkan arka ucunda iyileştirmeler
- GCN'den SPIRV'ye dönüştürücüde iyileştirmeler
- SBL ACMgr
- SBL AuthMgr
- MSR değerlerini ve CPUID izinlerini geçersiz kılmak için genişletilmiş HAXM UPA'sı
Projenin sıkça sorulan sorular bölümünde ise aşağıdaki üç soruya cevap verilmiş:
Orbital, SAMU anahtarları olmadan nasıl çalışıyor?
SAMU ile şifre çözme, şifreli giriş bölümlerine hash işlemi uygulanarak ve daha önce gerçek konsoldan elde edilen şifresi çözülmüş bölümleri döndürerek emüle edilir. Hiçbir anahtar alınmaz ve hiçbir anahtar alınmayacaktır. Daha da önemlisi, anahtarlara ihtiyacımız yok, bu yüzden bu proje SAMU'yu hedef almaz.
Neden çekirdek dökümüm önyüklemeden kısa bir süre sonra çöküyor?
Yazılabilir bölümler önyüklemenin mümkün olmadığı bir duruma dönüştürülmüş olabileceği için bellek dökümlerinden oluşturulan çekirdek ELF'leri çalışmaz. Lütfen bellekten almak yerine gerçek konsolunuzda ELF segmentlerinin SAMU ile şifresini çözerek uygun ikilik dosyaları oluşturun.
Orbital'i nereden indirebilirim?
Bu proje son kullanıcılar için henüz hazır değil. Hiçbir ikilik dosya sağlanmadığından üç bileşenin her birini (BIOS, GRUB, QEMU) kendiniz oluşturmalısınız. Ayrıca, emülatörü bir şey yapacak şekilde yapılandırmak zor olacaktır, çünkü çekirdek dahil tüm PS4 dosya sistemini ve sflash'i almanız ve şifresini çözmeniz gerekecektir. Bunun nasıl yapılacağına dair ipuçlarını projenin deposundaki çeşitli betik dosyalarında bulabilirsiniz. Tabii ki, gelecekte bu emülatör daha kullanıcı dostu olacaktır.Orbital'i yakından takip etmek isterseniz GitHub'daki proje sayfasını, geliştiricisinin Twitter hesabını veya YouTube kanalını takip edebilirsiniz. Projeye maddi destekte bulunmak için de Patreon'u kullanabilirsiniz.
Orbital'in geliştiricisinin reddit'teki bazı açıklamaları şu şekilde:
Her iki yaklaşım da mümkündür ve her birinin avantajları/dezavantajları vardır. Orbital, daha önce bahsettiğim nedenlerden dolayı düşük seviyeli bir emülatördür (low-level emulator, LLE). Ancak, Uplift, RPCS4 ve daha yakın zamanda Spine gibi çeşitli yüksek seviyeli PS4 emülatörleri vardır.
GPU'nun kendisiyle ilgili olarak, öykünücünün HLE veya LLE olmasına bakılmaksızın GCN dönüşümü gibi bazı şeylere her zaman ihtiyaç duyulur. Ve en zorlayıcı alanlardan biri budur, çoğu geliştiricinin bunu, benzer şekilde Vulkan+SPIRV'ı kullanarak emüle edeceğini zannediyorum (bu, UPA çağrılarını eşleştirmek ve Wine'ın yaptığı gibi gölgelendiricileri (shader) kaynak seviyesinde dönüştürmek kadar kolay değil).
...
Spine demosunu IDA Pro'da (tersine mühendislik aracı) analiz ettim ve her şey normal. Açıkçası çok erken bir sürüm, çok sayıda gerçeklenmemiş kısım var ama emülatör gerçek. Daha da önemlisi, yerelde test ettik ve çalışıyor.
Bu tür projelerin birden bire ortaya çıkması bence garip değil. Geliştirilmekte olan dört PS4 emülatöründen haberdarım ve son sekiz yılda altı PS3 emülatörü çıktı. Hepsi değilse bile çoğu, tanınmayan insanlardan gelmiştir (yani birden bire ortaya çıkmıştır).
Ayrıca emülatör geliştirmeye karşı ilginiz varsa Orbital'in geliştiricisinin geçen sene yazdığı Development of Orbital, a low-level PlayStation 4 emulator'e de bakmanızı tavsiye ederim.
Üstad bundan önceki yazından dolayı blog'unu takipteyim bu yazınıda severek okudum ama yazdıklarını okurken anlamakta zorlanıyorum yani sanki google çeviri ile çevrilmiş sayfalara bakıyor gibi oluyorum.
YanıtlaSilEleştiriniz için teşekkürler. Bu yazıdan başlamak üzere daha düzgün yazmaya çalışacağım (yazıyı tekrar okuyup iyileştirilebilecek yerleri değiştiriyorum şimdi). Bir kullanıcı mı yoksa bir geliştirici mi olarak bu yorumu yaptığınızı söyleyebilir misiniz? Ayrıca doğrudan şurası çok makine çevirisi kokuyor dediğiniz yerleri belirtebilir misiniz zamanınız varsa?
Sil