ShadPS4 – PlayStation 4 emülatörü
(github.com/shadps4-emu)- shadPS4, C++ ile yazılmış, Windows, Linux ve macOS'u destekleyen erken aşamadaki bir PlayStation 4 emülatörü
- Depo yalnızca emülatör çekirdeğini içeriyor ve GUI sunmuyor; bu nedenle genel son kullanıcıların ayrı bir QtLauncher indirmesi gerekiyor
- Şu anda Bloodborne, Dark Souls Remastered, Red Dead Redemption gibi bazı oyunları çalıştırabiliyor, ancak proje erken geliştirme aşamasında olduğu için tam bir deneyim beklenmemesi gerektiği açıkça belirtiliyor
- Derleme süreci Docker, Windows, Linux ve macOS belgeleriyle anlatılıyor; macOS için macOS 26.0 veya üzeri gerekiyor ve Intel Mac desteklenmiyor
- Bazı PS4 firmware modüllerinin
sys_modulesklasörüne yerleştirilmesi gerekiyor; oyunların düzgün çalışması için bu modüller yasal olarak sahip olunan bir PlayStation 4 konsolundan dump alınmış olmalı
shadPS4'ün niteliği ve hedef kullanıcıları
- shadPS4, Windows, Linux ve macOS'ta çalışan, C++ ile yazılmış erken aşamada bir PlayStation 4 emülatörü
- Bu depo emülatör çekirdeğini sağlar ve GUI içermez
- GUI'ye ihtiyaç duyan son kullanıcılar QtLauncher kullanmalı
- Sorun giderme veya kullanım bilgileri için Quickstart belgesine bakılabilir
- Oyunların çalışma durumunu kontrol etmek için shadPS4 Game Compatibility sunuluyor
Mevcut çalışma durumu ve geliştirme yönü
- shadPS4'ün erken geliştirme aşamasında olduğu ve kusursuz bir çalıştırma deneyimi beklemenin zor olduğu belirtiliyor
- Şu anda çalıştırılabildiği belirtilen oyun örnekleri şunlar
- Bloodborne
- Dark Souls Remastered
- Red Dead Redemption
- ve başka birçok oyun
- Proje eğlence amaçlı başladı ve sınırlı boş zaman nedeniyle daha karmaşık oyunların çalıştırılması zaman alabilir
- Geliştirme ekibi küçük ama düzenli güncellemeler yayımlamaya devam edeceğini söylüyor
Derleme ve platform gereksinimleri
- Docker ve VSCode tabanlı container derlemeleri için Docker Build Instructions izlenmeli
- Platforma özel derleme belgeleri mevcut
- shadPS4'ü macOS'ta çalıştırmak için macOS 26.0 veya üzeri gerekiyor
- Intel Mac desteklenmiyor
Çalıştırma biçimi ve giriş
- Komut listesi ve her komutun ayrıntılı açıklaması
--helpçıktısında görülebilir - Sık kullanılan çalıştırma kalıpları şunlar
shadPS4 CUSA00001: kurulu oyun klasörleri listesindeCUSA00001klasörünü bulup önyüklershadPS4 --fullscreen true --config-clean CUSA00001: oyun argümanı varsayılan olarak sonda yer alırshadPS4 -g CUSA00001 --fullscreen true --config-clean:-gile oyun argümanı doğrudan belirtilebilirshadPS4 /path/to/game.elf: PS4 ELF dosyasını doğrudan önyüklershadPS4 CUSA00001 -- -flag1 -flag2: bayrakları oyunun çalıştırılabilir dosyasınınargv'sine iletir
- Test, debug ve issue bildirme için Debugging documentation incelenebilir
- Klavye kısayolları FPS sayacı, video debug bilgisi, tam ekran, RenderDoc capture ve ekran görüntüsü almayı destekler
- Xbox ve DualShock kontrolcüleri ek yapılandırma olmadan çalışır
- Klavye ve fare girdileri ayarlar menüsündeki Controller düğmesinden özelleştirilebilir
- Özel eşlemeler oyun bazında kaydedilir
- Her eşleme için en fazla 3 tuş, fare düğmesi ve joystick girdisine eşlenen fare hareketleri gibi seçenekler desteklenir
Firmware dosyaları ve yasal koşullar
- shadPS4 bazı PlayStation 4 firmware dosyalarını yükleyebilir
- Desteklenen firmware modülleri shadPS4'ün
sys_modulesklasörüne yerleştirilmelidir - Desteklenen modüller arasında
libSceAudiodec.sprx,libSceFont.sprx,libSceJpegDec.sprx,libSceJson.sprx,libSceLibcInternal.sprx,libScePngEnc.sprx,libSceRtc.sprx,libSceXml.sprxve diğerleri yer alır - Bu modüller oyunların düzgün çalışması için gereklidir
- Firmware modülleri yasal olarak sahip olunan bir PlayStation 4 konsolundan dump alınmalıdır
Katkı ve referans projeler
- Katkıda bulunmak için CONTRIBUTING.md okunup PR açılabilir
- Proje, aşağıdaki ekip ve projelere teşekkür ediyor
- Panda3DS: PS4 binary'lerindeki x64 kodunu native çalıştırırken ortaya çıkan sorunları anlamaya ve çözmeye yardımcı oldu
- fpPS4: PS4 işletim sistemi ve kütüphanelerinin karmaşık kısımlarını anlamaya yardımcı oldu
- yuzu: shadPS4'ün shader derleyicisi, yuzu'nun Hades derleyicisini temel aldı
- felix86: x86-64 → RISC-V Linux kullanıcı alanı emülatörü
- emudev.org: yok olma riski taşıyan donanımların belgelendirilmesi, emülasyonu, simülasyonu ve yeniden uygulanmasıyla ilgilenen kişilerin ağı
- Lisansı GPL-2.0 license
1 yorum
Hacker News yorumları
Gerçekten merak ediyorum: içeride PCSX2 gibi bir emülatöre mi daha yakın, yoksa Wine gibi bir uyumluluk katmanına mı?
PS4 neredeyse bir x86 bilgisayarsa, zor kısmın büyük bölümü PS4'ün sistem/grafik API'lerini uygulamak gibi görünüyor. Yoksa x86 PC ile PS4 arasında ele alınması gereken büyük donanım farkları da var mı?
En azından sırf bu açıdan bile Wine'ın yaptığından epey daha fazla iş yapıyor
Bloodborne'da karakter ekranına ulaşan ilk PS4 emülatörü gibi görünüyor
https://x.com/shadps4/status/1825669017392107971?s=46
Emülatörlerin nasıl tasarlandığını merak ediyorum. Öğrenmek için iyi kaynaklar var mı?
İlki, NES gibi hedef sistemin CPU'sunu komut yorumlayıcısı yöntemiyle emüle eden kod yazmaktır. İkincisi, Wine gibi hedef sistemin API'lerini yeniden uygulamaktır. Hedef sistem farklı bir CPU mimarisi kullanıyorsa PS3'te olduğu gibi bir JIT derleyici gerekebilir
Modern konsol emülatörlerinin çoğu ikincisine daha yakındır; çünkü modern konsolların çalışma biçimi PC'lere benzer, işletim sistemi çekirdeği ve uygulamalar için kullanıcı modu kütüphaneleri vardır
İkincisi de kendi içinde ikiye ayrılır. Biri kullanıcı modu kütüphanelerini emüle etme yöntemi, diğeri ise konsol çekirdeğini yeniden uygulayıp konsolun kendi sistem kütüphanelerini yeniden kullanma yöntemidir
İstediğiniz dille oradan başlamanızı öneririm
Önceki denemeleri veya ön çalışmaları ve bu projenin neden farklı olduğunu gösteren bir tasarım belgesi ya da kaynak var mı?
Takip etmeye değer ilginç bir proje gibi görünüyor. Sony'nin şu anda taşınabilir seçeneklerinin eksik olduğunu düşününce, Steam Deck üzerinde nasıl çalışacağını merak ediyorum
0: https://www.reddit.com/r/SteamDeck/comments/wodw8x/i_tested_...
Bu, Gnm/Gnmx için bir DXVK muadili yaptıkları anlamına mı geliyor?[0]
[0] https://en.wikipedia.org/wiki/PlayStation_4_system_software#...
Bloodborne'un en güncel ilerleme durumu bu. Çoğu kişinin beklediği şey muhtemelen bu:
Bu geliştiricinin YouTube'u: https://www.youtube.com/watch?v=wC6s0avpQRE
Sony'nin bu S sınıfı kültürel öneme sahip oyunu hâlâ neredeyse kötü niyetli biçimde kendi hâline bırakması nasıl bir şey, anlamıyorum. PS6 çıkış oyunu olarak kullanmak için mi bekliyorlar?
Bazıları indirilebiliyor ama diğerleri yalnızca streaming ile oynanabiliyor; yani PS2 oyunu oynamak için iyi bir internet bağlantısı gerekiyor. Akıl alır gibi değil
Eski oyunları oynamaya yönelik talep her zaman olacak; bu yüzden böyle emülatörler var
Günümüzde modern konsollar fiilen küçültülmüş PC sistemlerine dönüştükçe emülasyon geliştirme daha kolaylaşıyor mu merak ediyorum
Neyse ki PS4 hack'lendi ve neredeyse tüm dosyalar ile bilgiler çözülüp dump edildi. Resmî PS4 SDK'sı da sızdırıldı
Artık konsolun oyunları nasıl çalıştırdığını biliyoruz; sonraki adım bu bilgiyi kullanarak oyunu konsol dışında çalıştırmak. PS4 sistemi, FreeBSD'nin değiştirilmiş bir sürümü olduğu için çalışma biçimi PC'ye çok benzer. PS4 çalıştırılabilir dosyası sadece özel bir ELF dosyasıdır
Bu yüzden PS4 oyununu konsol dışında çalıştırmak için oyun yürütülebilir dosyasını doğrudan eşlemek ve gerekli sembolleri bir şekilde sağlamak gerekir. Örneğin bunları doğrudan uygulayarak ya da PS4 kütüphanelerini yeniden kullanarak
Yine de bilgiye erişilebilirliğin büyük bir etken olduğunu düşünüyorum
Genel olarak sektörde ikili çeviri de çok gelişti. Rosetta 2 bunun bir örneği. İkiliyi başka bir host ortamına taşımakta kullanılabilecek bir araç daha olmuş oluyor
Birkaç yıl önce Spine adlı başka bir PS4 emülatörünün de ilgi gördüğünü hatırlıyorum. O projeye ne oldu merak ediyorum
https://github.com/devofspine/spine
Kaynak kod yok, yalnızca binary var