Эмуляцигүйгээр PS5-ийг PC дээр ажиллуулна: "AnyPS5" төсөл системийн сангуудынхаа 87%-ийг хэрэгжүүлж шуугиан тарив
Тоглоомын консолын эмуляци гэхээр бидний толгойд юу буудаг вэ? Процессорын архитектурын ялгааг давах гэж тарчилдаг JIT (Just-In-Time) хөрвүүлэгчид, симуляцийн асар өндөр overhead, хамгийн сүүлийн үеийн хүчирхэг компьютер дээр ч дөнгөн данган 20–30 FPS зааж гацах үзэгдэл санаанд ордог. Өмнөх үеийн PlayStation 3-ын Cell Broadband Engine архитектурыг эмуляцлах гэж инженерийн ертөнцөд RPCS3 хэрхэн он жилүүдийг зориулсныг бид мэднэ.
Гэвч сүүлийн 24 цагт нээлттэй эхийн ертөнц болон Hacker News-ийг шуугиулж, богино хугацаанд 14,000 гаруй одоор үнэлэгдээд буй AnyPS5 төсөл энэ бүх ойлголтыг үндсээр нь өөрчиллөө. Тэдний гаргасан шийдэл тун энгийн бөгөөд зоримог: "Архитектур нь ижил юм бол эмуляциар юу хийх юм бэ?"
Архитектурын бодит байдал: x86 дээр x86-г эмуляцлах шаардлагагүй
PlayStation 5 нь нууцлаг, харь гарагийн тусгай тооцоологч биш юм. Түүний "зүрх" нь бидний өдөр тутам ашигладаг ердийн PC-тэй бараг адилхан AMD-ийн Zen 2 (8 цөм, 16 трэдтэй x86-64) микроархитектур, график нь AMD RDNA2 GPU дээр суурилдаг. Өөрөөр хэлбэл, PS5 дээр ажиллаж буй машин код (machine instructions) нь таны Core i5 эсвэл Ryzen процессор дээр гүйж байгаа зааварчилгаатай яг ижил!
Тэгвэл яагаад PS5 тоглоомыг PC дээр шууд ажиллуулж болдоггүй байсан бэ? Гол саад нь процессортоо биш, харин үйлдлийн систем болон програмчлалын интерфэйс (ABI/API)-д байв. PS5 нь FreeBSD-д суурилсан Prospero үйлдлийн систем, өөрийн тусгай бинар формат, хаалттай PRX динамик сангууд, AGC/GNM зэрэг тусгай график API-уудыг ашигладаг.
Уламжлалт арга барил нь үүнийг бүхлээр нь виртуаль машинаар симуляцлахыг оролддог байсан бол AnyPS5 төсөл Linux дээр Windows тоглоом тоглуулдаг Wine / Proton-той төстэй зарчмыг сонгожээ. Тэд эмуляци хийхийн оронд Static Binary Relinking болон Dynamic System Call Translation Layer бүтээсэн байна.
AnyPS5 хэрхэн ажилладаг вэ?
AnyPS5 нь хоёр тусдаа процессын хооронд өгөгдөл зөөвөрлөх эмуляторын шат дамжлагыг бүрэн халжээ.
- Бинар релинкер (Static Relinker): PS5-ийн гүйцэтгэгдэх бинар файлыг задлан шинжилж, шууд зорилтот үйлдлийн системийн формат руу хөрвүүлдэг (Linux-д зориулж native ELF, Windows-д зориулж PE формат). Ингэснээр тоглоомын код таны үйлдлийн систем дээр ямар ч орчуулгагүйгээр native процессор дээр гүйнэ.
- Системийн сангуудын mapping (87% гүйцэтгэлтэй): Тоглоом ажиллах үедээ санах ой хуваарилах, трэд удирдах, файл унших зэрэг үйлдэл хийхэд Sony-ийн тусгай PRX систем сангуудыг дууддаг. AnyPS5 багийнхан эдгээр системийн сангуудын 87%-ийг дахин хэрэгжүүлж (re-implementation), үйлдлийн системийн бодит систем дуудлагуудтай (POSIX/Win32) холбож өгчээ.
- Шейдер хөрвүүлэгч (Shader Recompiler): PS5-ийн GPU шейдерүүдийг Vulkan API-д нийцтэй SPIR-V бинар формат руу шууд хөрвүүлдэг. Хамгийн сүүлийн тайлангаар AnyPS5-ийн шейдер декодлогч нь нийт зааварчилгааны 96%-ийг ямар ч алдаагүй хөрвүүлж чаддаг болсон байна.
Үр дүнд нь тоглоом ажиллахдаа хоёр дахь эмуляторын процесс ашиглахгүй бөгөөд таны систем дээр ердийн бие даасан программ мэт ажиллана.
Нууц зэвсэг: Хөгжүүлэлтийг хурдасгасан AI агентууд
AnyPS5-ийн хамгийн сонирхолтой бөгөөд орчин үеийн технологийн салбарын анхаарлыг татаж буй нэг хүчин зүйл бол уг төслийн GitHub дээрх кодын бүтэц юм. Хэдэн зуун өмчийн API болон систем дуудлагыг reverse engineer хийж дахин бичих нь урьд өмнө нь бүхэл бүтэн багийн олон жилийн хөдөлмөрийг шаарддаг байв.
Харин AnyPS5-ийн commit логуудаас харахад төслийн үндсэн архитектурыг системийн инженер боловсруулсан хэдий ч кодчиллын 700 гаруй commit-ийг Claude болон Copilot зэрэг AI агентуудтай хоршин гүйцэтгэжээ! Салангид бүтэцтэй систем сангуудыг задлан шинжлэх, загвар хөрвүүлэх (mapping interfaces), давтагдсан boilerplate кодыг хурдан гаргах ажлыг AI агентуудад даалгаснаар төсөл хэдхэн сарын дотор 87%-ийн нийцтэй байдалд хүрсэн байна.
Хөгжүүлэгчдэд ямар сургамж авчрав?
Энэхүү төсөл нь зөвхөн тоглоом сонирхогчдын хувьд баярт мэдээ болоод зогсохгүй системийн програмчлал, платформын нийцтэй байдлын хувьд том жишээ боллоо:
- Эмуляцийн загвар хуучирсан: Тоног төхөөрөмжийн архитектур нэгдсэн (x86-64 эсвэл ARM64 зонхилсон) өнөө үед эмуляци хийх нь шаардлагагүй нөөц үрдэг арга болохыг харууллаа. Compatibility Layer буюу дуудлагыг шууд mapping хийх арга нь ирээдүйд бүх салбарт зонхилох хандлага болж байна.
- Практик үр дүн гарч эхэлсэн: Одоогоор Dreaming Sarah тэргүүтэй зарим тоглоомууд GTX 1050 Ti зэрэг энгийн график карт дээр ч 60 FPS-ээр тогтвортой ажиллаж байна. Төслийн баг цаашид аудио драйвер, DualSense удирдлага болон том хэмжээний 3D бүтээлүүдийн memory management-ийг сайжруулахаар ажиллаж байна.
AnyPS5 нь програм хангамжийн нийцтэй байдал (interoperability) хэр гүн явж болдгийг баталсан төдийгүй системийн түвшний гүн инженерчлэл AI агентуудын тусламжтайгаар ямар хурдаар урагшилж болохыг бодитоор харуулсан төсөл болж түүхэнд бичигдэж байна.
Эх сурвалж: Hacker News хэлэлцүүлэг, GitHub - boykopovar/AnyPS5 Repository, Tom's Hardware Analysis
Сэтгэгдэл
Ачаалж байна...