Nintendo 3DS "เฟิร์มแวร์ที่กำหนดเอง"
Luma3ds แพทช์และการปรับปรุงส่วนที่สำคัญของซอฟต์แวร์ระบบที่ทำงานในทุกรุ่นของคอนโซล Nintendo 3DS มันมีจุดมุ่งหมายเพื่อปรับปรุงประสบการณ์ผู้ใช้อย่างมากและสนับสนุน 3DS ไกลเกินกว่าจุดสิ้นสุดของชีวิต คุณสมบัติรวมถึง:
Luma3ds ต้องการให้ Boot9strap ทำงาน
เมื่อติดตั้ง boot9strap แล้วเพียงดาวน์โหลดคลังเก็บล่าสุดและแยกเก็บถาวรลงในรูทของการ์ด SD ของคุณเพื่อ "ติดตั้ง" หรืออัพเกรด Luma3ds ควบคู่ไปกับเมนู Homebrew แทนที่ไฟล์ที่มีอยู่และรวมโฟลเดอร์ที่มีอยู่หากจำเป็น
เมนูการกำหนดค่า Luma3DS หลัก สามารถเข้าถึงได้โดยการกด เลือก ที่บูต ไฟล์การกำหนดค่าจะถูกเก็บไว้ใน /luma/config.ini
บนการ์ด SD (หรือ /rw/luma/config.ini
บนพาร์ติชัน ctrnand หาก Luma3DS เปิดตัวจากพาร์ติชัน Ctrnand ซึ่งเกิดขึ้นเมื่อการ์ด SD หายไป)
เมนู chainloader เข้าถึงได้โดยการกด เริ่มต้น ที่บูตหรือจากเมนูการกำหนดค่า น้ำหนักบรรทุกคาดว่าจะอยู่ใน /luma/payloads
พร้อมส่วนขยาย .firm
; หากมีน้ำหนักบรรทุกเพียงครั้งเดียวเมนูการเลือกดังกล่าวจะถูกข้ามไป Hotkeys สามารถกำหนดให้ Payload ได้เช่น x_test.firm
จะได้รับ chainloaded เมื่อกด X เมื่อทำการบู๊ต
เมนูซ้อนทับ Rosalina มีการรวมปุ่มเริ่มต้น: L+DOWN+SELECT สำหรับความยืดหยุ่นที่มากขึ้นการตั้งค่าเมนู Rosalina ส่วนใหญ่จะไม่ถูกบันทึกโดยอัตโนมัติดังนั้นตัวเลือก "บันทึกการตั้งค่า"
พอร์ต GDB เมื่อเปิดใช้งานคือ 4000-4002
สำหรับพอร์ตปกติ การใช้ attach
ในโหมด "Extended-Remote" ควบคู่ไปกับ info os processes
ได้รับการสนับสนุนและสนับสนุน (สำหรับวิศวกรรมย้อนกลับและตรวจสอบ monitor getmemregions
) พอร์ตสำหรับคุณลักษณะ break-on-start คือ 4003
โดยไม่ต้อง "Extended-Remote" ทั้ง DEVKITARM-PATCHED GDB และ IDA PRO (โดยไม่ต้องเปิดใช้งาน "การสนับสนุน" การสนับสนุน)) ได้รับการสนับสนุนอย่างแข็งขัน
เรามีวิกิ แต่ในปัจจุบันมันล้าสมัยมาก
Luma3ds ประกอบด้วยหลายองค์ประกอบ ในขณะที่รูปแบบรหัสภายในแต่ละองค์ประกอบมีความสอดคล้องกันส่วนใหญ่ส่วนประกอบเหล่านี้ถูกเขียนมานานหลายปีและอาจไม่สะท้อนให้เห็นว่าผู้ดูแลจะเขียนโค้ดใหม่ในส่วนประกอบ/โครงการใหม่ได้อย่างไร:
Process9
และเพื่อฉีดส่วนประกอบที่กำหนดเองอื่น ๆ ทั้งหมด นี่เป็นองค์ประกอบแรกที่เคยเขียนสำหรับโครงการนี้ในปี 2558NATIVE_FIRM
( Kernel11
) มันถูกฉีดโดยรถตักบาเรนเดอร์ที่กล่าวถึงข้างต้นลงในเคอร์เนลโดยการเชื่อมต่อรหัสเริ่มต้นจากนั้นก็เชื่อมต่อกับเคอร์เนลที่เหลือ คุณสมบัติของมันรวมถึงการเรียกระบบเชื่อมต่อ (SVCs) แนะนำ SVCs ใหม่และการเชื่อมต่อกับการสื่อสารระหว่างกระบวนการเพื่อข้ามข้อ จำกัด ในการออกแบบระบบของ Nintendo นี่คือส่วนประกอบที่อนุญาตให้ Rosalina หยุดกระบวนการอื่น ๆ ในรายการเมนูซ้อนทับตัวอย่างเช่น สิ่งนี้เขียนขึ้นในช่วงเวลาที่เราไม่ได้กลับมาเป็นวิศวกรอย่างเต็มที่และเปิดตัวครั้งแรกในปี 2560 ควบคู่ไปกับ Rosalina ขอเพิ่มเติมสำหรับการสนับสนุน "ปลั๊กอินเกม" ได้ถูกรวมเข้าด้วยกันในปี 2566err:f
(หน้าจอข้อผิดพลาดร้ายแรง) การปรับแต่งใหม่และอื่น ๆ อีกมากมาย เปิดตัวในช่วงกลางปี 2560 และได้รับการเปลี่ยนแปลงอย่างต่อเนื่องและได้รับการสนับสนุนจากภายนอกมากมายนับตั้งแต่นั้นมาloader
โหลด การปรับปรุงใหม่ช่วยให้คุณลักษณะ GDB เริ่มต้นใน Rosalina รวมถึงการยกข้อ จำกัด การควบคุมการเข้าถึง FS ในวิธีที่เหมาะสม เปิดตัวในปี 2562 ยังมีคุณสมบัติและการรวมที่วางแผนไว้สำหรับ Luma3DS มากขึ้น! นี่คือรายการของสิ่งที่อยู่ในร้าน:
TwlBg
และ AgbBg
สิ่งนี้จะช่วยให้ดีขึ้นและกำหนดค่าได้มากขึ้นการเพิ่มอัตราการเพิ่มขึ้นสำหรับหน้าจอด้านบนในเกม DS และ GBA (ยกเว้นใน 2DS เก่า) ขณะนี้กำลังได้รับการพัฒนาเป็นการส่วนตัวใน C ++ 23 (ไม่มี ETA) ในขณะที่นี่เป็นความพยายามที่ยากลำบากเนื่องจากต้องมีการเขียนใหม่ทั้งหมดของไดรเวอร์สแต็กในโลหะกึ่ง-โลหะ (เคอร์เนล จำกัด ที่ไม่มี IPC) นี่เป็นคุณสมบัติที่สำคัญที่สุดสำหรับ Luma3DSProcess9
สำหรับ TWL_FIRM
และ AGB_FIRM
เพื่ออนุญาตให้มีคุณสมบัติเพิ่มเติมในโหมดความเข้ากันได้ของ DS และ GBA (ที่ต้องการการเข้าถึงไฟล์)Kernel11
การปรับแต่งใหม่ Kernel11
ของ Nintendo ที่เกี่ยวข้องกับการแนบ KDebugThread
ใหม่กับ KThread
ในการสร้างเธรดและ thread->debugThread
อื่น ๆ สิ่งนี้ทำให้เอ็นจิ้นโกงหยุดเกมที่สร้างและทำลายหลาย ๆ เธรดตลอดเวลา (เช่นโปเกมอน)Kernel11
จะได้รับการปรับปรุงใหม่ในการสร้าง luma3ds จำเป็นต้องมีสิ่งต่อไปนี้:
$PATH
dkp-pacman
(หรือสำหรับการแจกแจงที่ให้ Pacman แล้วเพิ่มที่เก็บ): https://devkitpro.org/wiki/devkitpro_pacman3ds-dev
: sudo dkp-pacman -S 3ds-dev --needed
ในขณะที่ Luma3DS เผยแพร่มาพร้อมกับ 3ds-hbmenu
, LUMA3DS รวบรวมเป็นไฟล์เดียว: boot.firm
เพียงคัดลอกไปยังรูทของการ์ด SD ของคุณ (FTPD เป็นวิธีที่ง่ายที่สุดในการทำเช่นนั้น) และคุณก็ทำเสร็จแล้ว
ซอฟต์แวร์นี้ได้รับอนุญาตภายใต้เงื่อนไขของ GPLV3 คุณสามารถค้นหาสำเนาของใบอนุญาตในไฟล์ license.txt
ไฟล์ใน GDB Stub นั้นได้รับใบอนุญาตสามเท่าเป็น MIT หรือ "GPLV2 หรือเวอร์ชันใหม่ ๆ " ซึ่งในกรณีนี้ระบุไว้ในส่วนหัวไฟล์ PM, SM, การปรับปรุงใหม่ของ PXI ยังได้รับใบอนุญาตภายใต้ MIT
Luma3ds จะไม่เป็นอย่างที่มันเป็นโดยไม่มีการมีส่วนร่วมและการตอบรับที่สร้างสรรค์ของหลาย ๆ คน เราขอขอบคุณเป็นพิเศษ: