ShadPS4 – PlayStation 4 एमुलेटर
(github.com/shadps4-emu)- shadPS4 C++ में लिखा गया शुरुआती चरण का PlayStation 4 एमुलेटर है और Windows, Linux, macOS को सपोर्ट करता है
- repository में केवल emulator core शामिल है, GUI नहीं है, इसलिए आम end users को अलग से QtLauncher डाउनलोड करना होगा
- अभी Bloodborne, Dark Souls Remastered, Red Dead Redemption जैसे कुछ गेम चलाए जा सकते हैं, लेकिन project शुरुआती development stage में है, इसलिए पूरा अनुभव मिलने की उम्मीद करना मुश्किल बताया गया है
- build के लिए Docker, Windows, Linux, macOS documents में निर्देश दिए गए हैं; macOS के लिए macOS 26.0 या उससे ऊपर चाहिए और Intel Mac support नहीं है
- कुछ PS4 firmware modules को
sys_modulesfolder में रखना जरूरी है ताकि game ठीक से चले; इन modules को कानूनी रूप से स्वामित्व वाले PlayStation 4 console से dump करना होगा
shadPS4 की प्रकृति और उपयोगकर्ता
- shadPS4 Windows, Linux, macOS पर चलने वाला शुरुआती PlayStation 4 emulator है और C++ में लिखा गया है
- यह repository emulator core देती है और GUI शामिल नहीं करती
- जिन end users को GUI चाहिए, उन्हें QtLauncher इस्तेमाल करना होगा
- troubleshooting या usage देखने के लिए Quickstart document देख सकते हैं
- games चलेंगे या नहीं, यह देखने के लिए shadPS4 Game Compatibility उपलब्ध है
मौजूदा काम करने की स्थिति और development दिशा
- shadPS4 शुरुआती development stage में है, इसलिए perfect execution experience की उम्मीद करना मुश्किल बताया गया है
- अभी चलाए जा सकने वाले games के उदाहरण ये हैं
- Bloodborne
- Dark Souls Remastered
- Red Dead Redemption
- और कई अन्य games
- project मज़े के लिए शुरू किया गया था, और सीमित खाली समय के कारण ज़्यादा complex games चलाने में समय लग सकता है
- development team ने कहा है कि वे छोटे और नियमित updates जारी रखेंगे
build और platform requirements
- Docker और VSCode आधारित container build के लिए Docker Build Instructions follow करें
- platform-specific build documents उपलब्ध हैं
- macOS पर shadPS4 चलाने के लिए macOS 26.0 या उससे ऊपर चाहिए
- Intel Mac support नहीं है
चलाने का तरीका और input
- commands की list और हर command की detailed explanation
--helpoutput में देखी जा सकती है - अक्सर इस्तेमाल होने वाले execution patterns ये हैं
shadPS4 CUSA00001: game installation folder list मेंCUSA00001folder ढूंढकर boot करता हैshadPS4 --fullscreen true --config-clean CUSA00001: game argument आमतौर पर आखिर में रखा जाता हैshadPS4 -g CUSA00001 --fullscreen true --config-clean:-gसे game argument सीधे specify किया जा सकता हैshadPS4 /path/to/game.elf: PS4 ELF file को सीधे boot करता हैshadPS4 CUSA00001 -- -flag1 -flag2: game executable केargvमें flags pass करता है
- testing, debugging और issue reporting के लिए Debugging documentation देखें
- keyboard shortcuts FPS counter, video debug info, fullscreen, RenderDoc capture और screenshot capture को support करते हैं
- Xbox और DualShock controllers बिना अलग setup के काम करते हैं
- keyboard और mouse input को settings menu के Controller button से customize किया जा सकता है
- custom bindings हर game के लिए अलग save होते हैं
- हर binding में अधिकतम 3 keys, mouse buttons, joystick input में map होने वाली mouse movement आदि support हैं
firmware files और legal conditions
- shadPS4 कुछ PlayStation 4 firmware files load कर सकता है
- supported firmware modules को shadPS4 के
sys_modulesfolder में रखना होगा - supported modules में
libSceAudiodec.sprx,libSceFont.sprx,libSceJpegDec.sprx,libSceJson.sprx,libSceLibcInternal.sprx,libScePngEnc.sprx,libSceRtc.sprx,libSceXml.sprxआदि शामिल हैं - game ठीक से चलाने के लिए ये modules जरूरी हैं
- firmware modules को कानूनी रूप से स्वामित्व वाले PlayStation 4 console से dump करना होगा
योगदान और reference projects
- योगदान देने के लिए CONTRIBUTING.md पढ़ें और PR खोलें
- project ने निम्न teams और projects का आभार जताया है
- Panda3DS: PS4 binaries के x64 code को natively execute करते समय आई समस्याओं को समझने और हल करने में मदद की
- fpPS4: PS4 operating system और libraries के complex हिस्सों को समझने में मदद की
- yuzu: shadPS4 का shader compiler yuzu के Hades compiler को blueprint मानता है
- felix86: x86-64 → RISC-V Linux user-space emulator
- emudev.org: विलुप्ति के करीब hardware के documentation, emulation, simulation और reimplementation में रुचि रखने वालों का network
- license GPL-2.0 license है
1 टिप्पणियां
Hacker News की राय
सच में जानना चाहता हूँ: अंदरूनी तौर पर यह PCSX2 जैसे emulator के ज़्यादा करीब है, या Wine जैसी compatibility layer के?
अगर PS4 लगभग एक x86 कंप्यूटर ही है, तो मुश्किल हिस्सा ज़्यादातर PS4 के system/graphics API को implement करना होगा। या x86 PC और PS4 के बीच कोई बड़े hardware अंतर भी हैं जिन्हें handle करना पड़ता है?
कम-से-कम इस हिस्से को ही देखें तो यह Wine की तुलना में काफ़ी ज़्यादा काम करता है
यह Bloodborne की character screen तक पहुँचने वाला पहला PS4 emulator लगता है
https://x.com/shadps4/status/1825669017392107971?s=46
Emulators कैसे design किए जाते हैं, यह जानने की जिज्ञासा है। सीखने के लिए कोई अच्छे resources हैं?
पहले में NES जैसे target system के CPU को instruction interpreter तरीके से emulate करने वाला code लिखा जाता है। दूसरे में Wine की तरह target system के APIs को फिर से implement किया जाता है। अगर target system अलग CPU architecture इस्तेमाल करता है, तो PS3 की तरह JIT compiler की ज़रूरत पड़ सकती है
अधिकांश modern console emulators बाद वाले के ज़्यादा करीब हैं, क्योंकि modern consoles का काम करने का तरीका PC जैसा होता है: उनमें operating system kernel और applications के लिए user-mode libraries होती हैं
बाद वाला भी फिर दो प्रकारों में बंटता है। एक तरीका user-mode libraries को emulate करना है, और दूसरा console kernel को फिर से implement करते हुए console की अपनी system libraries को reuse करना है
अपनी पसंद की language में वहीं से शुरू करने की सलाह दूँगा
क्या कोई design document या material है जो पिछले attempts या prior work, और यह project क्यों अलग है, दिखाता हो?
Follow करने लायक एक दिलचस्प project लगता है। Sony के पास इस समय portable options की कमी को देखते हुए, जानना चाहूँगा कि यह Steam Deck पर कैसे चलेगा
0: https://www.reddit.com/r/SteamDeck/comments/wodw8x/i_tested_...
क्या इसका मतलब है कि उन्होंने Gnm/Gnmx के लिए DXVK counterpart बनाया है?[0]
[0] https://en.wikipedia.org/wiki/PlayStation_4_system_software#...
Bloodborne की latest progress यह है। शायद ज़्यादातर लोग इसी का इंतज़ार कर रहे होंगे:
इस developer का YouTube: https://www.youtube.com/watch?v=wC6s0avpQRE
समझ नहीं आता कि Sony इस S-tier cultural significance वाले game को अब तक लगभग malicious तरीके से क्यों छोड़े हुए है। क्या वे इसे PS6 launch title के रूप में इस्तेमाल करने के लिए इंतज़ार कर रहे हैं?
कुछ download किए जा सकते हैं, लेकिन बाकी सिर्फ streaming से चल सकते हैं, इसलिए PS2 games खेलने के लिए अच्छी internet connection चाहिए। यह बेतुका है
पुराने games खेलने की मांग हमेशा रहेगी, और इसलिए ऐसे emulators मौजूद हैं
आजकल modern consoles असल में छोटे PC systems जैसे बनते जा रहे हैं; सोचता हूँ क्या इससे emulation development आसान हो रहा है
सौभाग्य से PS4 hack हो चुका है, और लगभग सभी files और information decrypt होकर dump हो चुकी हैं। Official PS4 SDK भी leak हो चुका है
अब पता चल गया कि console games को कैसे execute करता है, और अगला step इस information का इस्तेमाल करके console के बाहर game चलाना है। PS4 system FreeBSD का modified version है, इसलिए इसका काम करने का तरीका PC से बहुत मिलता-जुलता है। PS4 executable बस एक custom ELF file है
इसलिए console के बाहर PS4 game चलाने के लिए game executable को सीधे map करना होगा, और ज़रूरी symbols किसी न किसी तरीके से provide करने होंगे। जैसे उन्हें खुद implement करके या PS4 libraries को reuse करके
फिर भी information accessibility बड़ा factor लगता है
कुल मिलाकर industry में binary translation भी काफ़ी आगे बढ़ी है। Rosetta 2 इसका उदाहरण है। यह binaries को किसी दूसरे host environment में लाने के लिए इस्तेमाल किया जा सकने वाला एक और tool बन गया है
कुछ साल पहले Spine नाम का एक और PS4 emulator भी चर्चा में आया था, याद है। सोचता हूँ उस project का क्या हुआ
https://github.com/devofspine/spine
Source code नहीं है, केवल binary है