ภาพที่รองรับ
รุ่น
- 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 แชนเนล
ความสามารถ
- แต่ละหนึ่งในสี่แชนเนลถูกกำหนดไว้สำหรับรูปคลื่นเพียงประเภทเดียว:
ความลับและข้อจำกัด
- มิกเซอร์ส่งออกเสียงสเตอริโอ จึงสามารถกำหนดแชนเนลให้ออกทางซ้ายหรือขวาได้
ระบบปฏิบัติการ
- ต่างจาก NES, Game Boy ถูกออกแบบให้บูตจาก ROM ภายใน 256 ไบต์ เสมอ แล้วจึงค่อยกระโดดไปยังโค้ดของเกม
เกม
- เกมถูกเขียนด้วยแอสเซมบลี และมีขนาดสูงสุด 32 KB
การสื่อสารภายนอก
- สามารถสื่อสารกับ Game Boy เครื่องอื่นได้ผ่านสายเชื่อมต่อ Game Boy
การป้องกันการละเมิดลิขสิทธิ์
- คอนโซลจะไม่รันเกมทันที แต่จะทำการตรวจสอบหลายขั้นตอนเพื่อ ป้องกันการรันตลับที่ไม่ได้รับอนุญาต และตรวจสอบว่า ใส่ตลับอย่างถูกต้องหรือไม่
ความเห็นของ GN⁺
- วิวัฒนาการทางเทคนิคของ Game Boy ถือเป็นพัฒนาการสำคัญในประวัติศาสตร์ของเครื่องเล่นเกมพกพา
- แนวทาง SoC ของ Nintendo เป็นนวัตกรรมด้านการออกแบบฮาร์ดแวร์ และทำให้คู่แข่งสร้างเครื่องโคลนได้ยาก
- ความสามารถในการรองรับย้อนหลังของ Game Boy Color เป็นข้อได้เปรียบอย่างมากทั้งต่อผู้พัฒนาและผู้ใช้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News