- WARNING! -
This repository is a work in progress, and while it can be used to make certain changes, it's still
constantly evolving. If you use it for modding purposes in its current state, please be aware that
the codebase can drastically change at any time. Also note that some parts of the ROM may not be
'shiftable' yet, so modifying them could be difficult at this point.
นี่คือ การคอมไพล์ WIP ของ The Legend of Zelda: Ocarina of Time วัตถุประสงค์ของโปรเจ็กต์คือการสร้างฐานซอร์สโค้ดสำหรับเกมขึ้นมาใหม่ตั้งแต่ต้น โดยใช้ข้อมูลที่พบในเกมควบคู่ไปกับการวิเคราะห์แบบคงที่และ/หรือไดนามิก มันไม่ได้สร้างพอร์ตพีซี หากต้องการข้อมูลเพิ่มเติม คุณสามารถติดต่อกับทีมงานได้บนเซิร์ฟเวอร์ Discord ของเรา
มันสร้างเวอร์ชันต่อไปนี้:
ชื่อ | สร้างการประทับเวลา | คำอธิบาย | แฮช MD5 ของ ROM อินพุต |
---|---|---|---|
เอ็นทีเอสซี-1.0 | 21-10-98 04:56:31 | NTSC 1.0 (ญี่ปุ่น/สหรัฐอเมริกา) | 9f04c8e68534b870f707c247fa4b50fc 5bd1fe107bf8106b2ab6650abecd54d6 |
เอ็นทีเอสซี-1.1 | 26-98-10-26 10:58:45 | NTSC 1.1 (ญี่ปุ่น/สหรัฐอเมริกา) | 1bf5f42b98c3e97948f01155f12e2d88 721fdcc6f5f34be55c43a807f2a16af4 |
เพื่อน-1.0 | 98-11-10 14:34:22 | PAL 1.0 (ยุโรป) | e040de91a74b61e3201db0e2323f768a |
เอ็นทีเอสซี-1.2 | 98-11-12 18:17:03 | NTSC 1.2 (ญี่ปุ่น/สหรัฐอเมริกา) | 2258052847bdd056c8406a9ef6427f13 57a9719ad547c516342e1a15d5c28c3d |
เพื่อน-1.1 | 98-11-18 17:36:49 | PAL 1.1 (ยุโรป) | d714580dd74c2c033f5e1b6dc0aeac77 |
จีซี-เจพี | 29-02-10-29 23:49:53 | เกมคิวบ์ญี่ปุ่น | 33fb7852c180b18ea0b9620b630f413f |
gc-jp-mq | 02-10-30 00:15:15 | เกมคิวบ์เจแปนมาสเตอร์เควส | 69895c5c78442260f6eafb2506dc482a |
gc-เรา | 19-02-12-19 13:28:09 | เกมคิวบ์สหรัฐอเมริกา | cd09029edcfb7c097ac01986a0f83d3f |
gc-us-mq | 19-02-12-14:05:42 | เกมคิวบ์ US Master Quest | da35577fe54579f6a266931cc75f512d |
gc-eu-mq-dbg | 03-02-21 00:16:31 | ดีบักภารกิจ GameCube Europe/PAL Master | 75e344f41c26ec2ec5ad92caa9e25629 8ca71e87de4ce5e9f6ec916202a623e9 f751d1a097764e2337b1ac9ba1e27699 dde376d47187b931820d5b2957cded14 |
gc-eu | 03-02-21 20:12:23 | เกมคิวบ์ยุโรป/PAL | 2c27b4e000e85fd78dbca551f1b1c965 |
gc-eu-mq | 21-03-02-20:37:19 | เกมคิวบ์ยุโรป/PAL Master Quest | 1618403427e4344a57833043db5ce3c3 |
gc-jp-ce | 03-10-08 21:53:00 | GameCube Japan (แผ่นดิสก์ฉบับนักสะสม) | 0c13e0449a28ea5b925cdb8af8d29768 |
เวอร์ชันเริ่มต้นคือ gc-eu-mq-dbg
เช่น GameCube Europe/PAL Master Quest Debug ROM
หมายเหตุ: พื้นที่เก็บข้อมูลนี้ไม่รวมเนื้อหาใดๆ ที่จำเป็นในการสร้าง ROM จำเป็นต้องมีสำเนาของเกมล่วงหน้าเพื่อแยกเนื้อหาที่จำเป็น
เว็บไซต์: https://zelda.deco.mp
ดิสคอร์ด: https://discord.zelda.deco.mp
เราขอแนะนำให้ใช้ WSL บน Windows หรือ Linux ดั้งเดิม ซึ่งส่วนที่เหลือของ readme นี้อธิบายไว้ ขณะนี้เรามีคำแนะนำสำหรับ
(สิ่งเหล่านี้จะขึ้นอยู่กับคำสั่งของ Linux ด้วย) สิ่งเหล่านี้บางส่วนอาจล้าสมัยหรือไม่ได้รับการบำรุงรักษา โดยปกติแล้วผู้มีส่วนร่วมของเราจะใช้ WSL, Linux และ macOS ดังนั้นคำแนะนำเหล่านี้จึงควรเป็นข้อมูลล่าสุด
สำหรับ Windows 10 หรือ 11 ให้ติดตั้ง WSL และการแจกจ่ายโดยทำตามคำแนะนำการติดตั้ง WSL นี้ เราขอแนะนำให้ใช้ Ubuntu 20.04 เป็นการกระจาย Linux
สำหรับ Windows เวอร์ชันเก่า ให้ติดตั้ง Linux VM หรือดูคำแนะนำของ Docker
กระบวนการสร้างมีข้อกำหนดแพ็คเกจดังต่อไปนี้:
ภายใต้ Debian / Ubuntu (ซึ่งเราแนะนำให้ใช้) คุณสามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้:
sudo apt-get update
sudo apt-get install git build-essential binutils-mips-linux-gnu python3 python3-pip python3-venv libpng-dev libxml2-dev
หากคุณใช้ GCC เป็นคอมไพเลอร์สำหรับ Ocarina of Time คุณจะต้องมี:
หมายเหตุ หากใช้ WSL เราขอแนะนำให้คุณโคลนเข้าสู่ระบบไฟล์ Linux ของ WSL โดยใช้ git
ของ Linux การโคลนเข้าสู่ระบบไฟล์ Windows จะส่งผลให้ความเร็วในการอ่าน/เขียนช้าลงมาก และมักทำให้เกิดปัญหาเมื่อ Windows คัดลอกไฟล์โดยลงท้ายบรรทัดผิด ซึ่ง IDO คอมไพเลอร์ไม่สามารถจัดการได้อย่างถูกต้อง
โคลน https://github.com/zeldaret/oot.git
ที่คุณต้องการให้มีโปรเจ็กต์ด้วยคำสั่งเช่น:
git clone https://github.com/zeldaret/oot.git
สิ่งนี้จะคัดลอกเนื้อหาที่เก็บ GitHub ไปยังโฟลเดอร์ใหม่ในไดเรกทอรีปัจจุบันที่เรียกว่า oot
เปลี่ยนเป็นไดเร็กทอรีนี้ก่อนดำเนินการอย่างอื่น:
cd oot
วางสำเนาของ Master Quest (Debug) ROM ไว้ในโฟลเดอร์ baseroms/gc-eu-mq-dbg/
หากคุณอยู่ภายใต้ WSL คุณสามารถเรียกใช้คำสั่ง explorer.exe .
เพื่อเปิดไดเร็กทอรีปัจจุบันใน File Explorer ของ Windows
เปลี่ยนชื่อไฟล์เป็น baserom.z64
, baserom.n64
หรือ baserom.v64
ขึ้นอยู่กับนามสกุลเดิม
ตั้งค่าและแยกทุกอย่างออกจาก ROM ของคุณด้วยคำสั่งต่อไปนี้:
make setup
วิธีนี้จะดาวน์โหลดการขึ้นต่อกันบางส่วน (จาก pip) และคอมไพล์เครื่องมือสำหรับกระบวนการสร้าง จากนั้นจะสร้าง ROM ใหม่ baseroms/gc-eu-mq-dbg/baserom-decompressed.z64
ที่จะลบโอเวอร์ดัมพ์ออกและแพตช์ส่วนหัว นอกจากนี้ยังจะแยกเนื้อหาแต่ละรายการออกจาก ROM ด้วย
เรียกใช้ make เพื่อสร้าง ROM ตรวจสอบให้แน่ใจว่าเส้นทางของคุณไปยังโครงการไม่ยาวเกินไป มิฉะนั้น กระบวนการนี้อาจผิดพลาดได้
make
หากทุกอย่างเป็นไปด้วยดี ROM ใหม่ควรถูกสร้างขึ้นที่ build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64
และพิมพ์ข้อความต่อไปนี้:
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: OK
หากคุณเห็นสิ่งต่อไปนี้แทน:
build/gc-eu-mq-dbg/oot-gc-eu-mq-dbg.z64: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
ซึ่งหมายความว่า ROM ที่สร้างขึ้นไม่เหมือนกับ ROM พื้นฐาน จึงมีบางอย่างผิดพลาดหรือโค้ดบางส่วนไม่ตรงกัน
หมายเหตุ: เพื่อเร่งการสร้าง คุณสามารถ:
-jN
เพื่อ make setup
และ make
โดยที่ N คือจำนวนเธรดที่จะใช้ในบิลด์ ภูมิปัญญาที่ยอมรับกันโดยทั่วไปคือการใช้จำนวนคอร์เสมือนที่คอมพิวเตอร์ของคุณมี-j
เพื่อ make setup
และ make
เพื่อใช้เธรดมากที่สุดเท่าที่จะเป็นไปได้ แต่ระวังว่านี่อาจใช้หน่วยความจำมากเกินไปในระบบระดับล่าง ทั้งสองอย่างนี้มีข้อเสียตรงที่การเรียงลำดับเอาต์พุตเทอร์มินัลมีสัญญาณรบกวน ดังนั้นสำหรับการดีบั๊ก วิธีที่ดีที่สุดคือยึดเธรดเดียว (เช่น ไม่ผ่าน -j
หรือ -jN
)
โปรเจ็กต์ Makefile สามารถกำหนดค่าได้ค่อนข้างดีและสามารถใช้เพื่อสร้างเกมเวอร์ชันอื่นหรือเตรียม repo สำหรับการม็อด ดูตัวเลือกที่ระบุไว้ที่ด้านบนของ Makefile สำหรับข้อมูลเพิ่มเติม
ยินดีต้อนรับทุกการมีส่วนร่วม นี่เป็นความพยายามของกลุ่ม และแม้แต่การสนับสนุนเล็กๆ น้อยๆ ก็สามารถสร้างความแตกต่างได้ งานบางอย่างไม่จำเป็นต้องมีความรู้มากนักในการเริ่มต้น
การสนทนาส่วนใหญ่เกิดขึ้นบนเซิร์ฟเวอร์ Discord ของเรา ซึ่งคุณสามารถถามว่าคุณต้องการความช่วยเหลือในการเริ่มต้นหรือไม่ หรือหากคุณมีคำถามใด ๆ เกี่ยวกับโปรเจ็กต์นี้และโปรเจ็กต์การแยกคอมไพล์อื่น ๆ