AMPR काउंटर
PS5PCEM में AMPR कंसोल के काउंटर और पूर्णता कमांड का प्रक्रिया-स्थानीय सॉफ़्टवेयर मॉडल है। एक सौ अट्ठाईस काउंटर सबमिशन के क्रम में लेखन, एटॉमिक फ़ील्ड अपडेट, जोड़ी रीड और मास्क वाली प्रतीक्षाएँ स्वीकार करते हैं।
10 अक्टूबर 2026 तक के रिपॉज़िटरी नोट्स
गेम AMPR का इस्तेमाल किसलिए करता है
कंसोल पर AMPR वह एसिंक्रोनस इंजन है जो फ़ाइल डेटा ले जाता है और ऐसे काउंटर अपडेट करता है जिनका CPU और GPU इंतज़ार कर सकते हैं। गेम इसका इस्तेमाल यह जानने के लिए करते हैं कि कोई रीड पूरा हो गया है या बाद का कोई पास शुरू हो सकता है, बिना किसी साझा वेरिएबल पर घूमते रहे। PS5PCEM AMPR हार्डवेयर ब्लॉक की नक़ल नहीं करता। यह गेम द्वारा बनाई गई कमांड स्ट्रीम को प्रक्रिया के भीतर चलाता है और गेम द्वारा पंजीकृत AMPR इवेंट क्यू से पूर्णता बताता है।
काउंटर बैंक में 32 बिट के 128 शब्द हैं। एक जोड़ी एक सम संख्या वाला काउंटर और अगला शब्द है, जिन्हें एक 64-बिट मान के रूप में पढ़ा-लिखा जाता है। एक ही लॉक दोनों हिस्सों और हर पढ़ो-बदलो-लिखो को ढकता है, इसलिए कोई पाठक फटी हुई जोड़ी नहीं देख सकता। पहुँच पूरी जोड़ी, 32-बिट शब्द, 16-बिट के किसी आधे हिस्से या चार में से किसी एक बाइट को चुन सकती है।
लेखन, प्रतीक्षाएँ और टाइमस्टैम्प
लेखन चुने गए फ़ील्ड पर लागू एक असाइनमेंट, बिट-स्तरीय OR, पूरक के साथ AND, XOR या लपेटने वाला जोड़ होता है। प्रतीक्षा उस फ़ील्ड की तुलना मास्क के तहत एक संदर्भ मान से करती है। तुलनाएँ हैं बराबर, बड़ा, छोटा, बराबर नहीं, पहुँचा हुआ अनुक्रम मान, और बड़ा तथा छोटा के साइन्ड रूप। अनुक्रम तुलनाएँ फ़ील्ड के साइन बिट को बिट 63 तक खिसकाती हैं, इसलिए वही नियम 8, 16, 32 और 64 बिट पर काम करता है।
पहले से संतुष्ट प्रतीक्षा वहीं पूरी हो जाती है। असंतुष्ट प्रतीक्षा सबमिशन का स्नैपशॉट रखती है और उस स्ट्रीम के बाद के लेखन और इवेंट से पहले फिर शुरू होती है, तब भी जब मान उसी गेस्ट थ्रेड के बाद के सबमिशन से आए। सामान्य API और _04_00 API की आर्ग्युमेंट सूचियाँ अलग हैं। टाइमस्टैम्प काउंटर कमांड के साथ दर्ज होते हैं। गेम जिन पूर्णता-आकार क्वेरी को इम्पोर्ट कर रहे थे वे पंजीकृत हैं, इसलिए वे कॉल हल हो जाती हैं।
इस पथ को क्या करते देखा गया
असली एक्सपोर्ट सतह से होने वाली कॉल समेत बाईस केंद्रित AMPR टेस्ट ReleaseSafe में पास होते हैं। Grand Theft Auto III की शुरुआत 10,000 से ज़्यादा APR फ़ाइल-रीड सबमिशन करती है और 350 से ज़्यादा AMPR पूर्णता इवेंट लिखती है, और इस पथ पर कोई मेल खाती AMPR त्रुटि नहीं है। वह शुरुआत ख़ुद काउंटर API को कॉल नहीं करती। काउंटर का काम टेस्ट और उन गेम से कवर होता है जो सच में मानों का इंतज़ार करते हैं।
यह एम्युलेटर द्वारा चलाई जाने वाली कमांड का API कवरेज है। यह कंसोल के मेमोरी कंट्रोलर का साइकिल-स्तरीय मॉडल नहीं है, और हार्डवेयर की टाइमिंग का दावा नहीं करता।
क्या लागू है
- सुसंगत 64-बिट जोड़ियों और बाइट, आधा तथा शब्द फ़ील्ड वाले एक सौ अट्ठाईस काउंटर।
- असाइनमेंट, OR, पूरक के साथ AND, XOR और लपेटने वाला जोड़, साथ में मास्क वाली और साइन्ड प्रतीक्षाएँ।
- कमांड स्ट्रीम में अपनी जगह रखने वाली और मान आने पर फिर शुरू होने वाली रुकी प्रतीक्षाएँ।
- पंजीकृत AMPR इवेंट क्यू से पहुँचाई जाने वाली क्रमबद्ध पूर्णता।
क्या अब भी बाक़ी है
- WaitOnAddress अब भी प्लेसहोल्डर है।
- असली AMPR ब्लॉक की हार्डवेयर टाइमिंग दोहराई नहीं जाती।
- डिकोडर द्वारा न पहचाना गया काउंटर कमांड चुपचाप सफल नहीं माना जाता।
संबंधित तंत्र
ये पेज क्या हैं