ESP32-P4 รัน Mac OS ได้แล้ว รองรับบอร์ด M5Stack และ Waveshare

ชิป ESP32 ถูกนำมาใช้สำหรับการเล่นเกมย้อนยุคและการจำลองคอมพิวเตอร์รุ่นเก่ามาเป็นเวลาหลายปีแล้ว แต่ Austin McChord (Amcchord) ได้ต่อยอดไปอีกขั้นด้วยการพอร์ต Macintosh emulator ให้ทำงานบนบอร์ดพัฒนา ESP32-P4 ที่มาพร้อมหน้าจอแสดงผล

โปรเจกต์ของเขาเป็นการพอร์ต BasiliskII ซึ่งเป็นอีมูเลเตอร์สำหรับเครื่อง Macintosh 68k อย่างสมบูรณ์ ทำให้สามารถรัน Mac OS รุ่นคลาสสิก ตั้งแต่ System 7.x ไปจนถึง Mac OS 8.1 บนอุปกรณ์ฝังตัวแบบพกพาที่ใช้ ESP32-P4 ได้ โดยรองรับหน้าจอสัมผัส, อุปกรณ์ USB และการเชื่อมต่อ Wi-Fi ผ่านชิป ESP32-C6 ที่ติดตั้งอยู่บนบอร์ดพัฒนา

ESP32 P4 MacOS emulator

แพลตฟอร์มหลักที่ใช้ในการพัฒนาดูเหมือนจะเป็น M5Stack Tab5 ซึ่งมาพร้อมหน้าจอสัมผัสขนาด 5 นิ้ว ความละเอียด 1280×720 พิกเซล แต่หากต้องการหน้าจอที่ใหญ่กว่า ก็รองรับ Waveshare ESP32-P4-WIFI6-Touch-LCD-10.1 ซึ่งติดตั้งหน้าจอขนาด 10.1 นิ้ว ความละเอียด 1280×800 พิกเซล พร้อมหน้าจอสัมผัสแบบคาปาซิทีฟที่รองรับการสัมผัสพร้อมกัน 10 จุด แต่ตัวอีมูเลเตอร์จะรัน Mac OS ที่ความละเอียดเสมือน 640×360 และ 640×400 ตามลำดับ ก่อนจะขยายภาพเป็น 2 เท่า เพื่อแสดงผลเต็มความละเอียดของหน้าจอจริง

จุดเด่นของโปรเจกต์:

  • CPU – จำลองการทำงานของ Motorola 68040 พร้อมหน่วยประมวลผลทศนิยม FPU (68881) ให้ประสิทธิภาพประมาณ 2–3 MIPS
  • RAM – กำหนดขนาดหน่วยความจำได้ตั้งแต่ 4MB ถึง 16MB โดยใช้ PSRAM ขนาด 32MB ของ ESP32-P4
  • ที่เก็บข้อมูล – โหลดอิมเมจของฮาร์ดดิสก์และไดรฟ์ CD-ROM จาก microSD card
  • การแสดงผล – ใช้ความละเอียดเสมือน 640×360 หรือ 640×400 แล้วขยายเป็น 2 เท่า ไปยังหน้าจอจริง 1280×720 หรือ 1280×800 รองรับความลึกสี 1, 2, 4 และ 8 บิต ที่อัตรารีเฟรช 24 FPS
  • ระบบวิดีโอ – ปรับแต่งประสิทธิภาพด้วยเทคนิค Write-time Dirty Tracking, Double-buffered DMA และ Tile-based Rendering เพื่อให้การแสดงผลลื่นไหลยิ่งขึ้น
  • ระบบเสียง – รองรับเสียงแบบดั้งเดิมของ Macintosh ผ่านชิป ES8388 Audio Codec และสามารถเปิดหรือปิดเสียงได้จากเมนูบูต
  • ระบบเครือข่าย – เชื่อมต่ออินเทอร์เน็ตผ่าน Wi-Fi โดยใช้ NAT Router รองรับโปรโตคอล TCP, UDP, ICMP, DHCP และอื่น ๆ
  • อุปกรณ์รับข้อมูล (Input)
    • ใช้หน้าจอสัมผัสแบบคาปาซิทีฟเป็นเมาส์
    • รองรับการเชื่อมต่อ คีย์บอร์ดและเมาส์ผ่าน USB

System 7 ESP32-P4 WiFi web browsing

 

อีมูเลเตอร์รองรับระบบปฏิบัติการ System 7.1, System 7.5.x, Mac OS 8.0 และ Mac OS 8.1

การทำงานของอีมูเลเตอร์แบ่งออกเป็น 2 คอร์ของ ESP32-P4 ดังนี้:

  • CORE 0 – คอร์สำหรับวิดีโอและอินพุต/เอาต์พุต (Video & I/O Core)
    • งานเรนเดอร์ภาพ (Video Rendering)
    • ระบบ DMA แบบ Double Buffer
    • การขยายภาพแบบ 2×2 พิกเซล
    • งานประมวลผลอินพุต (60Hz)
    • ประมวลผลอุปกรณ์ USB HID
    • ส่งออกเสียงผ่านชิป ES8388
    • ตรวจสอบแพ็กเก็ตข้อมูลเครือข่ายขาเข้า (Network RX Polling)
    • ทำงานแบบ Event-driven ที่อัตรา 24 FPS
  • CORE 1 – คอร์สำหรับจำลองซีพียู (CPU Emulation Core)
    • ตัวแปลคำสั่ง (Interpreter) ของ Motorola 68040
    • การเข้าถึงหน่วยความจำแบบ Fast Path
    • ทำเครื่องหมายข้อมูลที่มีการเปลี่ยนแปลง (Write-time Dirty Marking)
    • ประมวลผลชุดคำสั่งเป็นกลุ่ม (Batch Instruction Execution)
    • แพตช์ ROM
    • จัดการการอ่าน/เขียนข้อมูลดิสก์ (Disk I/O)

ประสิทธิภาพของอีมูเลเตอร์ Motorola 68040 ที่ทำงานบน ESP32-P4 อยู่ในระดับใกล้เคียงกับ Macintosh Quadra 610 ที่ใช้ซีพียู Motorola 68040 ความเร็ว 25 MHz โดยสามารถแสดงผลวิดีโอได้ที่ 24 FPS และให้ประสิทธิภาพในการประมวลผลประมาณ 2–3 MIPS

ESP32-P4 Macintosh emulator

 

สามารถดูซอร์สโค้ด ซึ่งได้รับการพอร์ตโดยมีความช่วยเหลือจาก Anthropic Claude รวมถึงเอกสารอธิบายรายละเอียดการพอร์ตและการทำงานของอีมูเลเตอร์ได้จาก GitHub repository ของโปรเจกต์

แปลจากบทความ : Macintosh emulator works on ESP32-P4 display devkits from M5Stack and Waveshare

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
โฆษณา