2 คะแนน โดย GN⁺ 2023-12-28 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ภาพที่รองรับ

  • รุ่น
    • ต้นฉบับ
    • Color

รุ่น

  • Game Boy รุ่นดั้งเดิมวางจำหน่ายในญี่ปุ่นเมื่อวันที่ 21 เมษายน 1989, ในสหรัฐอเมริกาเมื่อวันที่ 31 กรกฎาคม 1989 และในยุโรปเมื่อวันที่ 28 กันยายน 1990
  • รุ่นถัดไปอย่าง Game Boy Color วางจำหน่ายในญี่ปุ่นเมื่อวันที่ 21 ตุลาคม 1998, ในอเมริกาเหนือเมื่อวันที่ 18 พฤศจิกายน 1998 และในยุโรปเมื่อวันที่ 23 พฤศจิกายน 1998

เมนบอร์ด

  • ต้นฉบับ
    • มีการทำเครื่องหมายกำกับ

ไดอะแกรม

  • ไดอะแกรมสถาปัตยกรรมหลักของ Game Boy รุ่นดั้งเดิม

เกริ่นสั้น ๆ

  • คุณอาจนึกภาพ Game Boy ว่าเป็น NES แบบพกพาที่มีประสิทธิภาพจำกัด แต่ก็มาพร้อมความสามารถใหม่ที่น่าสนใจมาก

การวิเคราะห์สายรุ้ง

  • ด้วยความนิยมอย่างมหาศาลของคอนโซลนี้ จึงมีรุ่นย่อยต่าง ๆ ตามมาอีกมากมาย (เช่น Game Boy Pocket, Light, รวมถึงแบบตลับสำหรับ Super Nintendo)
  • แบรนด์ Game Boy ครอบคลุมอยู่สองเจเนอเรชัน
  • เจเนอเรชันที่ 4 มี Game Boy ขาวดำและรุ่นย่อยต่าง ๆ ส่วนเจเนอเรชันถัดมาคือ Game Boy Color (ซึ่งออกหลังการสิ้นสุดของ Virtual Boy)
  • บทความนี้ครอบคลุมทั้งสองเจเนอเรชัน ดังนั้นท้ายที่สุดคุณจะเข้าใจได้ดีว่าโครงสร้างการทำงานและเทคโนโลยีของ Game Boy พัฒนาไปจนกลายเป็น Game Boy Color ได้อย่างไร

CPU

  • แทนที่ Nintendo จะวางชิปหลายตัวที่หาได้ทั่วไปลงบนเมนบอร์ด บริษัทเลือกใช้ การออกแบบชิปเดี่ยว ที่บรรจุ (และซ่อน) องค์ประกอบส่วนใหญ่ไว้ภายใน
  • ชิปประเภทนี้เรียกว่า System On Chip (SoC) และในกรณีนี้ถูกสร้างขึ้นเป็นพิเศษสำหรับคอนโซลนี้ เพื่อให้ตรงกับความต้องการของ Nintendo (ประสิทธิภาพด้านพลังงาน, การป้องกันการละเมิดลิขสิทธิ์, I/O เพิ่มเติม ฯลฯ)
  • เนื่องจากไม่สามารถหาชิปนี้ได้จากแคตตาล็อกขายปลีก คู่แข่งในยุคนั้นจึงสร้างเครื่องโคลนได้ยากขึ้น
  • SoC ที่ใช้ใน Game Boy เรียกว่า DMG-CPU หรือ Sharp LR35902 และผลิตโดย Sharp Corporation
  • บริษัทนี้ยังคงมีความสัมพันธ์ใกล้ชิดกับ Nintendo

แกน CPU

  • โปรเซสเซอร์หลักภายใน DMG-CPU คือ Sharp SM83 ซึ่งเป็นลูกผสมระหว่าง Z80 (CPU ที่ใช้ใน Sega Master System) กับ Intel 8080
  • มันทำงานที่ความเร็วประมาณ 4.19 MHz ซึ่งเร็วกว่า CPU 1-MHz โดยเฉลี่ย
  • SM83 ไม่มีรีจิสเตอร์ IX หรือ IY ของ Z80 และไม่มีคำสั่ง IN หรือ OUT ของ 8080 กล่าวคือไม่สามารถใช้พอร์ต I/O ได้
  • เนื่องจากมีการใช้งานเพียงชุดรีจิสเตอร์ของ Intel 8080 จึงมี รีจิสเตอร์อเนกประสงค์ 8 ตัว เท่านั้น ต่างจาก Z80 ที่มี 16 ตัว
  • มันมีบางส่วนของชุดคำสั่งขยายของ Z80 (เฉพาะคำสั่งจัดการบิต)
  • Sharp ยังเพิ่ม คำสั่งใหม่บางอย่าง ที่ไม่มีในทั้ง Z80 และ 8080 ซึ่งช่วยปรับงานบางประเภทให้เหมาะกับวิธีที่ Nintendo/Sharp จัดวางฮาร์ดแวร์

เอฟเฟกต์สี

  • เกือบ 10 ปีต่อมา หลังจากทิ้ง Virtual Boy และฮาร์ดแวร์แนวล้ำของมันไป ก็ได้มีผู้สืบทอดที่เรียบง่ายกว่าอย่าง Game Boy Color ออกมา
  • ภายในมี SoC ตัวใหม่ชื่อ CPU CGB ที่เพิ่มความสามารถบางอย่างเข้าไป โดยยังใช้แกน CPU แบบ SM83 เดิม แต่เพิ่มความถี่สัญญาณนาฬิกาเป็นสองเท่า (ตอนนี้ทำงานที่ ~8.38 MHz)
  • นักพัฒนาสามารถนำความรู้เดิมกลับมาใช้กับคอนโซลใหม่ได้ ประหยัดต้นทุนโดยไม่ต้องออกแบบระบบใหม่ให้เข้ากับสถาปัตยกรรมใหม่ทั้งหมด และยังทำให้รองรับย้อนหลังได้โดยใช้ความพยายามไม่มาก
  • CPU CGB มีโหมดการทำงานอยู่สองแบบ:
    • โหมดปกติ: SM83 ทำงานที่ ~4.19 MHz
    • โหมดความเร็วคู่: SM83 ทำงานที่ ~8.38 MHz

การเข้าถึงฮาร์ดแวร์

  • SM83 ยังคงใช้ บัสข้อมูล 8 บิต และ บัสแอดเดรส 16 บิต จึงสามารถอ้างแอดเดรสหน่วยความจำได้สูงสุด 64 KB
  • memory map ประกอบด้วยปลายทางหลัก ๆ ดังนี้:
    • พื้นที่ของ game pak (ตลับเกม)
    • Work RAM (WRAM), High RAM (HRAM) และ Display RAM (VRAM)
    • I/O (จอยแพด, เสียง, กราฟิก, LCD)
    • การควบคุมอินเทอร์รัปต์

หน่วยความจำที่มีให้ใช้

  • Nintendo ติดตั้ง RAM 8 KB ไว้บนเมนบอร์ด ใช้สำหรับงานทั่วไป (เรียกว่า Work RAM หรือ 'WRAM')
  • ภายใน SoC ยังมี RAM เพิ่มอีก 127 B เพื่อเป็นพื้นที่ขนาดเล็กสำหรับข้อมูลที่ต้องเข้าถึงทันที (เช่น stack)

กราฟิก

  • การคำนวณกราฟิกทั้งหมดทำโดย CPU จากนั้น Picture Processing Unit หรือ 'PPU' จะเป็นผู้เรนเดอร์
  • ภาพจะแสดงบนหน้าจอ LCD ในตัวที่มีความละเอียด 160×144 พิกเซล และในกรณีของ Game Boy ขาวดำ จะแสดงได้ 4 ระดับของเฉดเทา (ขาว, เทาอ่อน, เทาเข้ม, ดำ)

การจัดองค์ประกอบเนื้อหา

  • PPU เชื่อมต่อกับ VRAM 8 KB หรือ 'Display RAM' และยังเปิดให้ CPU เข้าถึงได้แบบมีการกำหนดจังหวะ
  • เกมมีหน้าที่เติมข้อมูลประเภทที่ถูกต้องลงในแต่ละพื้นที่

การประกอบเฟรม

  • หากดูวิธีที่ PPU วาดสิ่งต่าง ๆ ลงบนหน้าจอ เราอาจใช้ Super Mario Land 2 เป็นตัวอย่างได้

ไทล์

  • PPU ใช้ ไทล์ เป็นวัสดุพื้นฐานในการเรนเดอร์กราฟิก
  • ไทล์คือ บิตแมป 8x8 ที่เก็บอยู่ในพื้นที่ของ VRAM ที่เรียกว่า tile set หรือ 'tile pattern table'

เลเยอร์พื้นหลัง

  • เลเยอร์พื้นหลังเป็นแผนที่ขนาด 256x256 พิกเซล (32x32 ไทล์) ที่บรรจุ ไทล์แบบคงที่
  • เกมจะเลือกว่าส่วนใดของแผนที่จะแสดงบนหน้าจอ และสามารถเลื่อนพื้นที่ที่มองเห็นได้ระหว่างการเล่น

หน้าต่าง

  • หน้าต่างคือเลเยอร์ขนาด 160x144 พิกเซล ที่แสดงอยู่เหนือพื้นหลังและสไปรต์ โดยเลเยอร์นี้จะไม่เลื่อนตามการเลื่อนหน้าจอ

สไปรต์

  • สไปรต์คือไทล์ที่สามารถเคลื่อนที่อย่างอิสระไปรอบ ๆ หน้าจอได้
  • เลเยอร์นี้ใช้/ต้องใช้สีเพิ่มเติมอีกหนึ่งสีคือ โปร่งใส

ผลลัพธ์

  • เมื่อเฟรมเสร็จสมบูรณ์แล้ว ระบบก็จะไปยังเฟรมถัดไป

ความลับและข้อจำกัด

  • การเพิ่มเลเยอร์หน้าต่างและอินเทอร์รัปต์เพิ่มเติม ทำให้สามารถสร้างเนื้อหาและเอฟเฟกต์รูปแบบใหม่ได้

สิ่งที่เพิ่มมาใน Color

  • PPU ของ Game Boy Color ทำงานเป็น superset ของรุ่นต้นฉบับ

เสียง

  • ระบบเสียงทำงานโดย Audio Processing Unit (APU) ซึ่งเป็นชิป PSG 4 แชนเนล

ความสามารถ

  • แต่ละหนึ่งในสี่แชนเนลถูกกำหนดไว้สำหรับรูปคลื่นเพียงประเภทเดียว:
    • pulse
    • noise
    • wave

ความลับและข้อจำกัด

  • มิกเซอร์ส่งออกเสียงสเตอริโอ จึงสามารถกำหนดแชนเนลให้ออกทางซ้ายหรือขวาได้

ระบบปฏิบัติการ

  • ต่างจาก NES, Game Boy ถูกออกแบบให้บูตจาก ROM ภายใน 256 ไบต์ เสมอ แล้วจึงค่อยกระโดดไปยังโค้ดของเกม

เกม

  • เกมถูกเขียนด้วยแอสเซมบลี และมีขนาดสูงสุด 32 KB

การสื่อสารภายนอก

  • สามารถสื่อสารกับ Game Boy เครื่องอื่นได้ผ่านสายเชื่อมต่อ Game Boy

การป้องกันการละเมิดลิขสิทธิ์

  • คอนโซลจะไม่รันเกมทันที แต่จะทำการตรวจสอบหลายขั้นตอนเพื่อ ป้องกันการรันตลับที่ไม่ได้รับอนุญาต และตรวจสอบว่า ใส่ตลับอย่างถูกต้องหรือไม่

ความเห็นของ GN⁺

  • วิวัฒนาการทางเทคนิคของ Game Boy ถือเป็นพัฒนาการสำคัญในประวัติศาสตร์ของเครื่องเล่นเกมพกพา
  • แนวทาง SoC ของ Nintendo เป็นนวัตกรรมด้านการออกแบบฮาร์ดแวร์ และทำให้คู่แข่งสร้างเครื่องโคลนได้ยาก
  • ความสามารถในการรองรับย้อนหลังของ Game Boy Color เป็นข้อได้เปรียบอย่างมากทั้งต่อผู้พัฒนาและผู้ใช้

1 ความคิดเห็น

 
GN⁺ 2023-12-28
ความคิดเห็นจาก Hacker News
  • สิ่งที่น่าทึ่งเกี่ยวกับการพัฒนา Game Boy รุ่นดั้งเดิมคือ ในเวลานั้นทีมของ Gunpei Yokoi ถูกตั้งข้อสงสัยอย่างมาก มีความเห็นว่าการเล่นเกมบนรถบัสหรือในห้องน้ำคงไม่สะดวก วิสัยทัศน์ของพวกเขาคือการสร้างอุปกรณ์ที่ใช้เทคโนโลยีเรียบง่ายเพื่อมอบเกมที่ง่ายและสั้น ทีมนี้คือผู้บุกเบิกการเริ่มต้นของเกมมือถือ
  • มีการพูดถึง Game Boy Color แต่ส่วนที่ระบุว่าขนาดคาร์ทริดจ์คือ 1MB ยังไม่ได้แก้ไข เกม GBC บางเกมมีขนาดถึง 4MB นอกจากนี้ยังมีเกมรถไฟขนาด 8MB ที่มีทั้งวิดีโอสั้นและภาพความละเอียดสูงรวมอยู่ด้วย
  • ขอบคุณสำหรับเดโมที่ใช้เสียงจาก Pokémon เป็นการเดินทางแห่งความทรงจำ
  • Game Boy คือคอนโซลที่ชอบที่สุดตลอดกาล ตอนนี้กำลังพัฒนาเกมพินบอลดันเจียนครอว์เลอร์ด้วย ASM (ภาษาแอสเซมบลี) ฮาร์ดแวร์เข้าใจได้ง่าย และข้อจำกัดต่าง ๆ ก็บังคับให้ต้องใช้ความคิดสร้างสรรค์
  • สงสัยว่าตอนนี้เราอยู่ในยุคที่ใคร ๆ ก็สามารถซื้อชิ้นส่วนและ PCB ที่จำเป็นเพื่อสร้าง Game Boy ขึ้นมาใหม่ได้หรือยัง
  • การเรียนรู้สถาปัตยกรรมของ Game Boy จะเอาไปทำอะไรได้บ้าง หรือกำลังวางแผนจะแฮ็กโลกกัน?
  • มีหนังสือทั้งเล่มเกี่ยวกับ Game Boy อยู่เล่มหนึ่ง แต่น่าเสียดายที่ยังไม่ได้แปลเป็นภาษาอังกฤษ เลยซื้อฉบับภาษาสเปนมา มีบทสัมภาษณ์พิเศษของผู้สร้างรวมอยู่ด้วย