ShadPS4 – Emulator PlayStation 4
(github.com/shadps4-emu)- shadPS4 adalah emulator PlayStation 4 tahap awal yang ditulis dalam C++ dan mendukung Windows, Linux, serta macOS
- Repositori ini hanya berisi inti emulator tanpa GUI, sehingga pengguna akhir umum perlu mengunduh QtLauncher secara terpisah
- Saat ini beberapa gim seperti Bloodborne, Dark Souls Remastered, dan Red Dead Redemption dapat dijalankan, tetapi proyek ini secara eksplisit menyatakan bahwa sulit mengharapkan pengalaman yang sepenuhnya lengkap karena masih berada pada tahap pengembangan awal
- Panduan build disediakan melalui dokumentasi Docker, Windows, Linux, dan macOS; untuk macOS diperlukan macOS 26.0 atau lebih baru dan Intel Mac tidak didukung
- Beberapa modul firmware PS4 harus ditempatkan di folder
sys_modulesagar gim dapat berjalan dengan benar, dan modul tersebut harus di-dump dari konsol PlayStation 4 yang dimiliki secara sah
Karakter shadPS4 dan target pengguna
- shadPS4 adalah emulator PlayStation 4 tahap awal untuk Windows, Linux, dan macOS, serta ditulis dalam C++
- Repositori ini menyediakan inti emulator dan tidak menyertakan GUI
- Pengguna akhir yang memerlukan GUI harus menggunakan QtLauncher
- Untuk pemecahan masalah atau memeriksa cara penggunaan, Anda dapat merujuk ke dokumen Quickstart
- Untuk memeriksa apakah gim dapat berjalan, tersedia shadPS4 Game Compatibility
Status saat ini dan arah pengembangan
- shadPS4 secara eksplisit menyatakan bahwa karena masih berada pada tahap pengembangan awal, sulit mengharapkan pengalaman menjalankan gim yang sempurna
- Contoh gim yang saat ini dapat dijalankan adalah sebagai berikut
- Bloodborne
- Dark Souls Remastered
- Red Dead Redemption
- Serta berbagai gim lainnya
- Proyek ini dimulai untuk bersenang-senang, dan karena waktu luang yang terbatas mungkin diperlukan waktu hingga gim yang lebih kompleks bisa dijalankan
- Tim pengembang menyatakan akan terus merilis pembaruan kecil dan rutin
Build dan persyaratan platform
- Build container berbasis Docker dan VSCode mengikuti Docker Build Instructions
- Dokumentasi build per platform disediakan
- Untuk menjalankan shadPS4 di macOS, diperlukan macOS 26.0 atau lebih baru
- Intel Mac tidak didukung
Cara menjalankan dan input
- Daftar perintah dan penjelasan rinci untuk tiap perintah dapat dilihat pada output
--help - Pola eksekusi yang sering digunakan adalah sebagai berikut
shadPS4 CUSA00001: mencari folderCUSA00001dari daftar folder instalasi gim lalu melakukan bootshadPS4 --fullscreen true --config-clean CUSA00001: argumen gim pada dasarnya diletakkan di bagian akhirshadPS4 -g CUSA00001 --fullscreen true --config-clean: dengan-g, argumen gim dapat ditentukan secara langsungshadPS4 /path/to/game.elf: melakukan boot langsung pada file PS4 ELFshadPS4 CUSA00001 -- -flag1 -flag2: meneruskan flag keargvdari executable gim
- Untuk pengujian, debugging, dan pelaporan isu, lihat Debugging documentation
- Pintasan keyboard mendukung penghitung FPS, informasi debug video, layar penuh, tangkapan RenderDoc, dan tangkapan layar
- Kontroler Xbox dan DualShock berfungsi tanpa konfigurasi tambahan
- Input keyboard dan mouse dapat dikustomisasi melalui tombol Controller di menu pengaturan
- Binding kustom disimpan per gim
- Mendukung hingga 3 tombol per binding, tombol mouse, serta gerakan mouse yang dipetakan ke input joystick
File firmware dan persyaratan hukum
- shadPS4 dapat memuat sebagian file firmware PlayStation 4
- Modul firmware yang didukung harus ditempatkan di folder
sys_modulesmilik shadPS4 - Modul yang didukung mencakup
libSceAudiodec.sprx,libSceFont.sprx,libSceJpegDec.sprx,libSceJson.sprx,libSceLibcInternal.sprx,libScePngEnc.sprx,libSceRtc.sprx,libSceXml.sprx, dan lainnya - Modul tersebut diperlukan agar gim dapat berjalan dengan benar
- Modul firmware harus di-dump dari konsol PlayStation 4 yang dimiliki secara sah
Kontribusi dan proyek rujukan
- Untuk berkontribusi, baca CONTRIBUTING.md lalu buka PR
- Proyek ini menyampaikan terima kasih kepada tim dan proyek berikut
- Panda3DS: membantu memahami dan menyelesaikan masalah yang muncul saat menjalankan kode x64 dari biner PS4 secara native
- fpPS4: membantu memahami bagian kompleks dari sistem operasi dan pustaka PS4
- yuzu: compiler shader shadPS4 menjadikan compiler Hades milik yuzu sebagai cetak biru
- felix86: emulator ruang pengguna Linux x86-64 → RISC-V
- emudev.org: jaringan orang-orang yang tertarik pada dokumentasi, emulasi, simulasi, dan reimplementasi perangkat keras yang nyaris punah
- Lisensinya adalah GPL-2.0 license
1 komentar
Pendapat Hacker News
Saya benar-benar penasaran, secara internal ini lebih mirip emulator seperti PCSX2, atau lebih mirip lapisan kompatibilitas seperti Wine?
Kalau PS4 pada dasarnya hampir seperti komputer x86, sepertinya sebagian besar bagian sulitnya adalah implementasi API sistem/grafis PS4. Atau memang ada perbedaan hardware besar antara PC x86 dan PS4 yang harus ditangani?
Bahkan hanya dari bagian itu saja, pekerjaannya jauh lebih banyak daripada yang dilakukan Wine
Sepertinya ini emulator PS4 pertama yang berhasil sampai ke layar karakter Bloodborne
https://x.com/shadps4/status/1825669017392107971?s=46
Saya penasaran bagaimana emulator dirancang. Ada materi bagus untuk dipelajari?
Yang pertama menulis kode untuk mengemulasikan CPU sistem target dengan gaya interpreter instruksi, seperti NES. Yang kedua mengimplementasikan ulang API sistem target, seperti Wine. Jika sistem target memakai arsitektur CPU yang berbeda, mungkin perlu compiler JIT seperti PS3
Sebagian besar emulator konsol modern lebih dekat ke yang kedua, karena cara kerja konsol modern mirip dengan PC: ada kernel sistem operasi dan library mode pengguna untuk aplikasi
Yang kedua juga terbagi lagi menjadi dua jenis. Salah satunya mengemulasikan library mode pengguna, dan yang lain mengimplementasikan ulang kernel konsol sambil menggunakan kembali library sistem milik konsol itu sendiri
Saya sarankan mulai dari sana dengan bahasa yang Anda inginkan
Ada dokumen desain atau materi yang menunjukkan upaya sebelumnya atau pekerjaan pendahulu, dan mengapa proyek ini berbeda?
Sepertinya proyek menarik untuk diikuti. Mengingat Sony saat ini kurang punya opsi portabel, saya penasaran bagaimana ini akan berjalan di Steam Deck
0: https://www.reddit.com/r/SteamDeck/comments/wodw8x/i_tested_...
Apakah ini berarti mereka membuat padanan DXVK untuk Gnm/Gnmx?[0]
[0] https://en.wikipedia.org/wiki/PlayStation_4_system_software#...
Ini progres terbaru untuk Bloodborne. Sepertinya inilah yang ditunggu kebanyakan orang:
YouTube pengembang ini: https://www.youtube.com/watch?v=wC6s0avpQRE
Saya benar-benar tidak mengerti kenapa Sony masih saja membiarkan game dengan makna budaya kelas-S ini terbengkalai hampir seperti disengaja dengan niat buruk. Apakah mereka menunggu untuk menjadikannya judul peluncuran PS6?
Sebagian bisa diunduh, tetapi yang lain hanya bisa streaming, sehingga untuk memainkan game PS2 diperlukan koneksi internet yang bagus. Tidak masuk akal
Permintaan untuk memainkan game lama akan selalu ada, dan karena itulah emulator seperti ini ada
Saya penasaran apakah pengembangan emulasi jadi lebih mudah sekarang karena konsol modern pada dasarnya telah menjadi sistem PC yang diperkecil
Untungnya PS4 sudah diretas, dan hampir semua file serta informasinya telah didekripsi dan di-dump. SDK resmi PS4 juga bocor
Sekarang kita tahu bagaimana konsol menjalankan game, dan langkah berikutnya adalah menggunakan informasi ini untuk menjalankan game di luar konsol. Sistem PS4 adalah versi FreeBSD yang dimodifikasi, sehingga cara kerjanya sangat mirip PC. File executable PS4 hanyalah file ELF kustom
Jadi untuk menjalankan game PS4 di luar konsol, kita harus memetakan executable game secara langsung dan menyediakan simbol yang diperlukan dengan cara tertentu. Misalnya dengan mengimplementasikannya sendiri atau menggunakan kembali library PS4
Meski begitu, aksesibilitas informasi tampaknya menjadi faktor besar
Secara umum, industri juga sudah banyak maju dalam translasi biner. Rosetta 2 adalah contohnya. Itu menjadi alat lain yang bisa dipakai untuk membawa biner ke lingkungan host lain
Saya teringat emulator PS4 lain bernama Spine yang sempat mendapat perhatian beberapa tahun lalu. Penasaran apa yang terjadi dengan proyek itu
https://github.com/devofspine/spine
Tidak ada kode sumber, hanya biner