
AnyPS5 به پوشش ۱۰۰٪ دستورات شیدر رسید؛ اجرای نیتیو بازیهای PS5 روی PC
پروژه AnyPS5 یه نقطه عطف مهم رو رد کرده. ردیاب پیشرفت رسمی این پروژه حالا نشون میده که هر ۱۱۶۶ دستوری که از فهرست دستورات معماریهای AMD RDNA 1 و RDNA 2 ردیابی میشدن، پیادهسازی شدن. این یه قدم دیگه به سمت اجرای بومی بازیهای PS5 روی کامپیوترهای ویندوزی و لینوکسیه. با بنچفا تا پایان این مطلب همراه باشید.
AnyPS5 اصلا چیه و چرا شبیهساز نیست؟
قبل از پرداختن به اعداد، بهتره تکلیف خودمون رو با ماهیت این پروژه روشن کنیم، چون اینجا یه سوءتفاهم رایج وجود داره.
AnyPS5 یه شبیهساز (Emulator) نیست و خود سازندههاش هم این اسم رو روش نمیذارن. فرق ماجرا تو روش کاره. یه شبیهساز مثل KytyPS5 یا shadPS4 عملا یه کنسول مجازی داخل کامپیوتر شما میسازه و بازی رو داخل اون محیط اجرا میکنه؛ یعنی یه لایه واسط دائمی بین بازی و سختافزار شما هست که همیشه داره ترجمه میکنه و همیشه هم هزینه پردازشی داره.
AnyPS5 به جای این کار، فایل اجرایی خود بازی رو تبدیل میکنه. ابزاری به اسم relinker فایل اجرایی PS5 رو برمیداره و تبدیلش میکنه به یه فایل اجرایی بومی ویندوز یا لینوکس. در کنارش یه سری کتابخونه جایگزین برای کتابخونههای سیستمی PS5 فراهم میکنه و یه شیدر ریکامپایلر هم داره که کد SPIR-V تولید میکنه.
نتیجهاش اینه که بازی مثل یه برنامه معمولی ویندوز اجرا میشه، نه مثل مهمونی که داخل یه محیط شبیهسازیشده نشسته. از نظر تئوری این یعنی سربار پردازشی کمتر و عملکرد نزدیکتر به حالت بومی.
چرا معماری x86 پلیاستیشن ۵ کار رو اینقدر سادهتر کرده؟
اینجا جاییه که ماجرا واقعا فنی و جالب میشه. پلیاستیشن ۵ از یه پردازنده AMD با معماری x86-64 استفاده میکنه؛ یعنی دقیقا همون معماریای که توی کامپیوتر خونگی شما هم هست.
این یه مزیت عظیمه. وقتی معماری مبدا و مقصد یکیه، AnyPS5 اصلا نیازی نداره دستورات پردازنده بازی رو به یه معماری دیگه ترجمه کنه. دستوری که روی CPU کنسول اجرا میشد، عینا روی CPU شما هم قابل اجراست. بخش بزرگی از سنگینترین کار از همون اول حذف میشه و چیزی که باقی میمونه، بیشتر جایگزین کردن لایه سیستمعامل و حل کردن سمت گرافیکه.
حالا این رو با PlayStation 3 مقایسه کنید. PS3 از معماری Cell استفاده میکرد؛ یه طراحی کاملا غیرمتعارف با یه هسته اصلی PowerPC و هشت واحد پردازشی SPE که هیچ شباهتی به x86 نداشتن. هر دستوری که برای Cell نوشته شده بود باید به صورت بلادرنگ به معماری کامپیوتر شما ترجمه میشد و همین باعث شد شبیهسازی PS3 سالها طول بکشه. هنوز هم بعد از این همه سال، شبیهسازی PS3 یه موضوع حلنشده با سازگاری نامنظم و عملکرد غیرقابل پیشبینی باقی مونده.
پس وقتی میبینید پروژههای PS5 تو عرض چند ماه به جاهایی رسیدن که PS3 تو ده سال نرسید، دلیلش نبوغ ناگهانی توسعهدهندهها نیست؛ دلیلش اینه که سونی با رفتن سراغ x86، ناخواسته کار رو خیلی سادهتر کرده.
۱۱۶۶ دستور GPU حالا شناسایی میشن
برگردیم سر خبر اصلی. این پروژه دستورات GPU رو تو دستهبندیهایی مثل DS، FLAT، GLOBAL، MIMG، SMEM، SOP و VOP ردیابی میکنه.

یه نکته مهم رو خود توسعهدهندهها شفاف گفتن: یه دستور وقتی «پیادهسازیشده» حساب میشه که شیدر دیکودر اون رو تشخیص بده. یعنی این نقطه عطف مربوط به شناسایی دستوراته، نه لزوما اجرای کامل و دقیقش تو همه بازیها.
کامل شدن این فهرست باعث میشه محدوده دستورات شیدری که پروژه میتونه تشخیص بده گسترش پیدا کنه و توسعهدهندهها بتونن بار کاری گرافیکی بیشتری رو تست کنن و مشکلات سازگاری رو برطرف کنن.
پوشش ۱۰۰ درصدی یعنی همه بازیهای PS5 اجرا میشوند؟
این بخشیه که باید صریح باشیم. رسیدن به پوشش ۱۰۰ درصدی دستورات شیدر به این معنی نیست که حالا هر بازی PlayStation 5 روی کامپیوتر اجرا میشه.
بازیها همچنان به کتابخونههای سیستمی سازگار، رفتار گرافیکی درست، همگامسازی و کلی قابلیت دیگه فراتر از دیکود کردن شیدر نیاز دارن. این نقطه عطف فقط یکی از محدودیتهای ردیابیشده رو برمیداره و تضمینی نمیده که بازیهای سنگینی مثل Gran Turismo 7 یا GTA VI بلافاصله قابل اجرا بشن.
تو بخشهای دیگه پروژه هنوز کار باقی مونده. ردیاب AnyPS5 در حال حاضر نشون میده که ۸۴.۷۶٪ از توابع کتابخونه سیستمی پیادهسازی شدن؛ یعنی ۲۵۷۵ تابع از ۳۰۳۸ تابع ردیابیشده.
منتها حواستون به این عدد باشه: این درصد فقط شامل توابعیه که خود پروژه تا حالا اعلام کرده. یعنی هر وقت توسعهدهندهها توابع بیشتری اضافه کنن، مخرج کسر بزرگتر میشه و این درصد میتونه پایین بیاد. این نوع درصدها معمولا تصویر خوشبینانهتری از واقعیت نشون میدن.
تنها نمونه عملی: یه بازی دوبعدی روی GTX 1050 Ti
در حال حاضر تنها نمایش عملیای که از این پروژه منتشر شده، بازی Dreaming Sarah ـه؛ یه پلتفرمر دوبعدی که طبق گزارشها به صورت پایدار روی ۶۰ فریم بر ثانیه اجرا میشه. پلتفرم تست هم یه GeForce GTX 1050 Ti به همراه Core i5-7500 بوده.
حالا بیاید رک باشیم: یه بازی دوبعدی مستقل با یه بازی AAA مثل Gran Turismo 7 فاصلهای به اندازه کهکشان داره. اجرای Dreaming Sarah ثابت میکنه که زنجیره کار میکنه و مسیر تبدیل از ابتدا تا انتها بسته شده، اما چیزی درباره عملکرد تحت بار سنگین نمیگه.
جمعبندی: این خبر چقدر ارزش داره؟
پوشش کامل دستورات شیدر یه دستاورد واقعیه و نشون میده پروژه داره با سرعت خوبی جلو میره. رویکرد تبدیل به جای شبیهسازی هم از نظر فنی منطقیه و معماری x86 پلیاستیشن ۵ عملا این مسیر رو ممکن کرده؛ کاری که با PS3 هیچوقت شدنی نبود.
پاشنه آشیل ماجرا اینه که فاصله بین «همه دستورات شناسایی میشن» تا «بازی اجرا میشه» همچنان زیاده. ۸۴.۷۶٪ کتابخونههای سیستمی یعنی هنوز ۴۶۳ تابع باقی مونده و اون درصد هم روی یه مخرج متغیر حساب شده. تنها دموی موجود هم یه بازی دوبعدیه.
ما این رو یه قدم مهم تو یه مسیر طولانی میبینیم، نه رسیدن به مقصد. تا وقتی یه بازی AAA واقعی با فریمریت قابل قبول اجرا نشه، قضاوت نهایی زوده.
نظر شما چیه؟ فکر میکنید رویکرد تبدیل فایل اجرایی در نهایت از شبیهسازی جواب بهتری میده؟ تو کامنتها بهمون بگید.





