ทำตามขั้นตอนของรีลีส
ทำตามขั้นตอน v0.1.2 สำหรับ Windows หรือ Linux
เก็บสถานะเช็กจนกว่าจะออกจากหน้านี้
ขั้น 1: รับไฟล์รีลีสที่ตรงกัน
เริ่มด้วยไฟล์ v0.1.2 สำหรับ Windows ใช้รีลิงเกอร์กับไลบรารีจากรีลีสเดียวกัน
อีกวิธีอ่านได้จาก คู่มือตัวแปลง AnyPS5 บนเว็บ หรือ วิธีติดตั้ง AnyPS5 จากซอร์ส.
ใช้ AnyPS5 โดยแปลงไฟล์ปฏิบัติการและโมดูลก่อน แล้วจัดไลบรารีกับทรัพยากรที่โปรแกรมจะโหลด การแยกส่วนเหล่านี้ช่วยหาสาเหตุเมื่อเปิดเกมไม่ผ่าน
คู่มือนี้ใช้ไฟล์ทางการ v0.1.2 และเอกสารใช้งาน เพื่อเตรียมเอาต์พุต Windows หรือ Linux
ก่อนเริ่ม
- ELF ที่สะอาดและถอดรหัสแล้ว พร้อมโมดูลกับทรัพยากรที่คุณมีสิทธิ์ใช้ แพ็กเกจเข้ารหัสหรือ SELF/fSELF ยังไม่ใช่อินพุตพร้อมแปลง
- รีลิงเกอร์กับไลบรารีระบบปลายทางรุ่นเดียวกันจาก AnyPS5 บน GitHub
- ตรวจ Vulkan และคำสั่ง CPU ตาม สเปกที่ต้องใช้กับ AnyPS5
- ถ้าตามผลที่มี ให้เทียบ title ID เวอร์ชันเนื้อหา บิลด์ คำสั่งพิเศษ และแพตช์ใน เกม AnyPS5
ขั้นที่ 1: ดาวน์โหลดไฟล์ให้ตรงรุ่น
เปิด v0.1.2 ทางการ แล้วเลือกระบบปลายทาง
| ระบบ | รีลิงเกอร์ | ไลบรารี |
|---|---|---|
| Windows | relinker-v0.1.2.exe |
prx-windows-v0.1.2.zip |
| Linux | relinker-v0.1.2 |
prx-linux-v0.1.2.tar.gz |
ไลบรารียังมีอีกชนิดไฟล์บีบอัด แตกไฟล์แล้วเก็บไว้ใช้ในขั้นที่ 4 แพ็กเกจ Windows รวม libgcc_s_seh-1.dll, libstdc++-6.dll และ libwinpthread-1.dll มาด้วย
ขั้นที่ 2: จัดอินพุต
ตัวอย่างโฟลเดอร์ง่าย ๆ:
source/
input.elf
sce_module/
bundled-module.prx
ELF อาจชื่อ eboot.bin หรือชื่ออื่น ดูที่เนื้อไฟล์ว่าใช้ได้หรือไม่ เก็บชื่อโฟลเดอร์โมดูลที่มากับเกม ไม่ต้องเปลี่ยนทุกเกมตามตัวอย่าง
รีลิงเกอร์รู้จัก sce_module/, sce_modules/ และ prx/ โดย prx/ อยู่คู่กับอีกชื่อหนึ่งได้ แต่ถ้ามีทั้ง sce_module/ และ sce_modules/ หรือไม่มีทั้งสาม จะเกิดข้อผิดพลาด อ่านเฉพาะไฟล์ที่อยู่ในโฟลเดอร์โดยตรง
ถ้าโมดูลอยู่ที่อื่น --sce-module-path <path> ชี้ไปยังโฟลเดอร์แม่ ใช้พาธเต็มหรือเทียบจากโฟลเดอร์ทำงานก็ได้ โมดูลเพิ่มเติมอาจต้องใช้ --module-dir ซ้ำตามคำสั่งของเกมนั้น
ขั้นที่ 3: รันรีลิงเกอร์
เปิดเทอร์มินัลในโฟลเดอร์เครื่องมือ ตัวอย่างใช้อินพุตข้างต้นและสร้างไฟล์ข้างเครื่องมือ
Windows PowerShell
.\relinker-v0.1.2.exe --windows source\input.elf app.exe
คง --windows ไว้ ชื่อ app.exe อย่างเดียวยังสร้าง Linux ELF ตามค่าเริ่มต้น
Linux
chmod +x relinker-v0.1.2
./relinker-v0.1.2 source/input.elf app.elf
สำหรับเครื่อง Intel
เพิ่ม --to-intel ตามเส้นทางในเอกสาร:
.\relinker-v0.1.2.exe --windows --to-intel source\input.elf app.exe
มันแก้คำสั่ง AMD ที่รองรับในไฟล์กับโมดูล แต่ไม่แก้คำสั่งที่เกมสร้างขณะรัน หากแปลงหยุด เก็บข้อผิดพลาดแรกก่อนย้ายไฟล์หรือเปลี่ยนบิลด์
ขั้นที่ 4: จัดโฟลเดอร์รันเกม
แยกไฟล์ที่แปลง ไลบรารีระบบปลายทาง และทรัพยากรไว้ดังนี้
game_directory/
app.exe # app.elf for Linux
libs/
libkernel.prx
libScePad.prx
... # Matching AnyPS5 system libraries
libgcc_s_seh-1.dll # Windows package only
libstdc++-6.dll
libwinpthread-1.dll
app0/
sce_module/
bundled-module.prx # Converted module, not the original console file
... # The game's resources
รีลิงเกอร์แสดงตำแหน่งโมดูลที่แปลงแล้วผ่าน Guest module: ใช้ไฟล์ที่สร้างและเก็บชื่อโฟลเดอร์ไว้ ถ้าอินพุตเป็น sce_modules/ หรือ prx/ ใน app0/ ก็ต้องชื่อเดิม คัดลอกทรัพยากรแยกต่างหากและรักษาพาธสัมพัทธ์
libs/ ใช้ไลบรารี AnyPS5 สำหรับ OS ปลายทาง ไม่ใช่ .prx คอนโซลต้นฉบับ MinGW DLL ทั้งสามของ Windows ก็อยู่ที่นี่ การเปลี่ยน PATH อื่นไม่ทดแทนไฟล์ที่ขาดในโฟลเดอร์นี้
เปิดจากโฟลเดอร์ที่จัดเสร็จ:
.\app.exe
หรือ Linux:
chmod +x app.elf
./app.elf
เกมที่เปิดชุดฟอนต์ระบบอาจต้องมี anyps5-fonts/ ข้างโปรแกรม หรือกำหนดผ่าน ANYPS5_SYSTEM_FONTS เอกสารระบุชื่อฟอนต์เดิมและ Noto แบบเปิดที่รองรับ ทรัพยากรทั่วไปใน app0/ ไม่ได้ทดแทนฟอนต์ระบบ
ขั้นที่ 5: ตรวจการควบคุม
คู่มืออินพุต v0.1.2 อธิบาย SDL controller และปุ่มคีย์บอร์ด/เมาส์ที่มีให้ ใช้คอนโทรลเลอร์ตัวแรกที่ตรวจพบ Xbox A/B/X/Y ตรงกับ Cross/Circle/Square/Triangle โดยส่งค่าแอนะล็อกจากสติกและทริกเกอร์ คลิกทัชแพด PlayStation ได้ แต่พิกัดนิ้วยังไม่พัฒนา
เปลี่ยนปุ่มคีย์บอร์ดหรือเมาส์โดยสร้าง anyps5-input.ini ข้างโปรแกรม เช่น:
Cross = KEY:Space
Options = KEY:Return
ถ้าไฟล์อยู่ที่อื่นใช้ ANYPS5_INPUT_CONFIG รายการที่ไม่ระบุใช้ค่าเดิม และไม่เปลี่ยนปุ่มของคอนโทรลเลอร์ บรรทัดผิดจะแสดงไฟล์กับเลขบรรทัดแล้วหยุดเริ่มระบบอินพุต ให้แก้ตรงนี้ก่อนสงสัยตัวอุปกรณ์
ทางเลือก: บิลด์ทั้งโปรเจกต์จากซอร์ส
ใช้เมื่อต้องการคอมมิตเฉพาะหรือแก้รันไทม์ ติดตั้งเครื่องมือตาม สเปกที่ต้องใช้กับ AnyPS5 แล้วทำตามเอกสารบิลด์ที่ตรึงรุ่น:
git clone https://github.com/boykopovar/AnyPS5.git
cd AnyPS5
git checkout v0.1.2
git submodule update --init --recursive
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
cmake --build build --parallel
cmake --build build --target libs --parallel
หากตามผลอื่น เปลี่ยน v0.1.2 เป็นรีวิชันที่รายงานพร้อมแพตช์เพิ่มเติม คัดลอกไลบรารีจาก build/core/libs/libs/ การบิลด์รีลิงเกอร์อย่างเดียวไม่สร้างส่วนนี้ หลังแก้ไลบรารีแล้วเปลี่ยนแค่โปรแกรมก็ยังใช้รันไทม์เก่า
เก็บผลครั้งแรกให้มีประโยชน์
บอกว่าหยุดตอนแปลง โหลดไลบรารี โลโก้ เมนู หรือเกมเพลย์ เก็บข้อผิดพลาดแรกและวิธีเข้าฉากพิเศษด้วย
ทำต่อที่ แก้ปัญหา AnyPS5 หากต้องการทางเลือกผ่านเบราว์เซอร์ อ่าน ตัวแปลง AnyPS5 บนเว็บ รวมข้อจำกัดอินพุตและการบันทึกที่แยกกัน