APR फ़ाइल पहचानकर्ता और रीड
APR गेम की किसी फ़ाइल को एक बार हल करता है और फिर बाद के कमांड बफ़र में एक प्रक्रिया-स्थानीय पहचानकर्ता ले जाता है। स्थगित AMPR रीड होस्ट डिस्क्रिप्टर को हमेशा पकड़े रखे बिना उसी केवल-पढ़ने योग्य /app0 फ़ाइल को दोबारा खोलते हैं।
10 अक्टूबर 2026 तक के रिपॉज़िटरी नोट्स
पथ के बजाय पहचानकर्ता
एक्सेलेरेटर API हर कमांड में पथ नहीं चाहता। गेम एक पथ हल करता है, एक कॉम्पैक्ट फ़ाइल पहचानकर्ता पाता है, और बाद में भेजे जाने वाले रीड कमांड में वही पहचानकर्ता रखता है। PS5PCEM पथ और फ़ाइल का आकार पहचानकर्ता के साथ रखता है। यह टेबल प्रक्रिया-स्थानीय है। होस्ट पथ गेस्ट को वापस नहीं दिए जाते।
फ़ाइलें गेम के केवल-पढ़ने योग्य /app0 माउंट से आती हैं। हल की गई प्रविष्टि किसी स्थगित रीड के चलने पर दोबारा खोली जा सकती है, इसलिए एम्युलेटर को पूरी प्रक्रिया के दौरान हर डिस्क्रिप्टर पकड़े रखने की ज़रूरत नहीं। कैश की गई टेबल अधिकतम 64 फ़ाइलें रखती है।
कमांड बफ़र
सबमिशन कोई एक रीड कॉल नहीं, बल्कि गेस्ट का कमांड बफ़र है। PS5PCEM अधिकतम 32 सक्रिय कमांड बफ़र स्वीकार करता है। हर बफ़र सीमित है: 32 रीड, 32 लेखन, 32 मैप, 32 पूर्णता रिकॉर्ड और 128 ऑपरेशन। अधिकतम 64 सबमिशन एक साथ चल सकते हैं, और एक स्वचालित पूल आठ बफ़र रखता है। रीड फ़ाइल पहचानकर्ता, गेस्ट गंतव्य, आकार और फ़ाइल ऑफ़सेट बताता है, और बाइट संख्या पाने वाला पता भी बता सकता है।
रीडर अज्ञात पहचानकर्ता, गायब फ़ाइल, छोटे या बिना-संरेखित कमांड बफ़र, और फ़ाइल या गंतव्य से बाहर जाने वाले अनुरोध अस्वीकार करता है। एक रीड की सीमा 4 GiB है, जो इंटरफ़ेस की सीमा है, यह वादा नहीं कि कोई गेम इतने बड़े रीड करता है। मैप कमांड वह 16 KiB AMM पेज आकार इस्तेमाल करते हैं जिसकी गेस्ट उम्मीद करता है।
APR और AMPR कैसे मिलते हैं
APR फ़ाइल टेबल और कमांड बफ़र के जीवनकाल का मालिक है। AMPR काउंटर, प्रतीक्षाओं और उन पूर्णता इवेंट का मालिक है जो गेम को बताते हैं कि काम ख़त्म हो गया। गेम कई फ़ाइल रीड क्यू में डालकर फिर उस काउंटर का इंतज़ार कर सकता है जिसे पूर्णता कमांड अपडेट करता है। Grand Theft Auto III की पहली शुरुआत देखा गया बड़ा उदाहरण है: रीड इसी पथ से जाते हैं, और पूर्णता इवेंट AMPR क्यू से लौटते हैं।
दूसरा फ़ाइल API, कर्नेल एसिंक्रोनस I/O, अलग पेज है। APR एक्सेलेरेटर कमांड स्ट्रीम है। कर्नेल बैच API POSIX-शैली की अनुरोध सूची है।
क्या लागू है
- केवल-पढ़ने योग्य /app0 पथों के लिए प्रक्रिया-स्थानीय फ़ाइल पहचानकर्ता, बाद के रीड के लिए आकार के साथ।
- रीड, लेखन, मैप और पूर्णता रिकॉर्ड के लिए सीमित कमांड बफ़र।
- उसी गेम फ़ाइल को दोबारा खोलने वाले स्थगित रीड।
- अज्ञात फ़ाइलों, ओवरफ़्लो और बिगड़े बफ़र की जाँची हुई अस्वीकृति।
क्या अब भी बाक़ी है
- यह पथ कमांड बफ़र का सॉफ़्टवेयर निष्पादन है, कंसोल का DMA इंजन नहीं।
- लिखने योग्य पैकेज फ़ाइलें /app0 के बाहर हैं। सेव, सेव-डेटा माउंट से होकर जाते हैं।
- रिज़ॉल्वर द्वारा न देखी गई फ़ाइल को सिर्फ़ पहचानकर्ता से गढ़ा नहीं जा सकता।
संबंधित तंत्र
ये पेज क्या हैं