การออกแบบระบบวิดีโอของ Super Nintendo
ภายในของทีวีในช่วงต้นยุค 90
- Super Nintendo ส่งสัญญาณวิดีโอออกไปยังทีวีมาตรฐาน
- ทีวีรับสัญญาณโทรทัศน์แอนะล็อก (NTSC) ผ่านเสาอากาศ รับสัญญาณผ่านจูนเนอร์ และแสดงภาพบน CRT (หลอดรังสีแคโทด)
- ทีวีมีอินพุตเสริม (AUX) และทีวีทั่วไปมีคอนเน็กเตอร์คอมโพสิต (สีเหลือง) สำหรับส่งสัญญาณวิดีโอ และแจ็กเฉพาะสำหรับสัญญาณเสียงสเตอริโอ (สีขาวและสีแดง)
หลักการทำงานของ CRT
- CRT ทำงานที่ 15kHz และวาดเส้นประมาณ 15,000 เส้นต่อวินาที
- ภายใน CRT มีปืนอิเล็กตรอนสามกระบอก ซึ่งจะยิงอิเล็กตรอนไปด้านหน้าเสมอ และมีชุดแม่เหล็กสองชุด (แนวตั้งและแนวนอน) สำหรับเบี่ยงอิเล็กตรอนขึ้นลงและซ้ายขวา
- CRT ไม่มีพิกเซล และอิเล็กตรอนที่ยิงออกจากปืนอิเล็กตรอนจะไปถึงแถบสีที่ถูกต้องเสมอ
วิธีควบคุม CRT
- CRT รับสัญญาณแดง เขียว น้ำเงิน โดยเชื่อมต่อกับปืนอิเล็กตรอนแต่ละกระบอกโดยตรง
- สัญญาณซิงก์ (HSYNC และ VSYNC) ถูกส่งผ่านสายสีขาวเส้นเดียว ซึ่งเรียกว่าสัญญาณซิงก์รวม (CSYNC)
- CRT จะรับสัญญาณและพยายามซิงก์ปืนอิเล็กตรอนให้ตรงกัน
วิธีที่ CRT วาดภาพ
- CRT วาดเส้นจากซ้ายไปขวา
- เมื่อได้รับเหตุการณ์ HSYNC มันจะกลับไปทางซ้ายของหน้าจอ (X=0) และเมื่อได้รับเหตุการณ์ VSYNC มันจะกลับไปด้านบนสุดของหน้าจอ (Y=0)
- CRT วาดเส้นขณะเคลื่อนไปทางขวาพร้อมกับเอียงลงด้านล่าง
หัวใจสำคัญของการเข้าใจ CRT
- แก่นสำคัญของ CRT คือการเข้าใจว่าปืนอิเล็กตรอนเคลื่อนไปทางขวาของหน้าจอพร้อมกับเอียงลงด้านล่าง
- หาก VSYNC เกิดขึ้นพร้อมกับ HSYNC สุดท้าย เส้นจะถูกวาดที่ตำแหน่งเดิมของหน้าจอเสมอ
- หาก VSYNC เกิดขึ้นระหว่าง HSYNC สองครั้ง เส้นจะถูกวาดแบบไขว้กัน
เนื้อหาภายในเส้น
- CRT เป็นดิจิทัลในแง่ของการวาดเส้น แต่เนื้อหาภายในเส้นเป็นแอนะล็อก
- ปืนอิเล็กตรอนทั้งสามเชื่อมต่อโดยตรงกับสาย RGB และระบบสามารถเปลี่ยนสัญญาณสีได้อย่างอิสระ
การจัดการของระบบแบบเดิม
- ผู้ออกแบบ SNES ต้องสร้างสัญญาณที่ CRT สามารถจัดการได้
- ต้องปฏิบัติตามข้อกำหนดของสัญญาณ NTSC
- อัตราส่วนภาพ 4:3, 262.5 เส้นต่อฟิลด์, 341.25 จุดต่อเส้น, ความถี่ฟิลด์ 59.94Hz
การเป็นวิศวกรของ Nintendo
- หลังจากเข้าใจการทำงานของ CRT แล้ว ก็ต้องออกแบบระบบวิดีโอ
- ใช้ 262 เส้นเพื่อสร้างโหมดโปรเกรสซีฟ และตั้งเป้าอัตราเฟรมที่ 59.94Hz
- ใช้ 350 จุดเพื่อให้ได้อัตราส่วนภาพ 4:3 และต้องใช้ดอตคล็อก 5,496,498Hz
การแก้ปัญหา
- ไม่สามารถใช้ดอตคล็อก 5,496,498Hz ได้
- ต้องใช้มาสเตอร์ออสซิลเลเตอร์ แล้วให้ระบบย่อยนำไปหารความถี่ผ่านตัวแบ่งสัญญาณ
- ต้องแก้ปัญหาโอเวอร์สแกน
การนำโอเวอร์สแกนมาใช้
- หากปืนอิเล็กตรอนยังยิงอิเล็กตรอนต่อไปในขณะที่กำลังรีเซ็ตในแนวนอนหรือแนวตั้ง จะเกิดอาร์ติแฟกต์ที่มองเห็นได้
- ทีวีจะโอเวอร์สแกนพื้นที่หน้าจอ ทำให้ภาพแสดงใหญ่กว่าพื้นที่จริงเล็กน้อย
- จำเป็นต้องมีช่วงเวลาที่หยุดปืนอิเล็กตรอนหลัง VSYNC และ HSYNC
การเลือกความละเอียดแนวตั้งของ SNES
- ระบบคู่แข่งใช้เส้นที่มองเห็นได้ 224 เส้น
- Nintendo แบ่ง 262 เส้นออกเป็น 224 เส้นที่มองเห็นได้ และ 38 เส้นว่าง
การเลือกความละเอียดแนวนอนของ SNES
- ใช้ 262 เส้น และใช้มาสเตอร์คล็อก 21.47727MHz เพื่อให้ได้ดอตคล็อก 5.3693175MHz
- ใช้ 341 จุดเพื่อให้ได้อัตราเฟรม 60.098Hz
การเลือกโอเวอร์สแกนแนวนอนของ SNES
- จาก 341 จุด ใช้ 256 จุดที่มองเห็นได้ และใช้ 85 จุดเป็น HBLANK
- อัตราส่วนภาพเป็น 8:7 ทำให้เกิดความบิดเบี้ยวเล็กน้อย
โหมดความละเอียดสูง: อินเทอร์เลซ
- สามารถเพิ่มความละเอียดแนวตั้งเป็นสองเท่าไปที่ 448 เส้นได้
- การเพิ่มความละเอียดแนวนอนเป็นสองเท่าทำได้ยาก
PAL เทียบกับ NTSC
- ในยุโรปใช้ PAL แทน NTSC และในฝรั่งเศสใช้ SECAM
- PAL ใช้อัตราเฟรม 50Hz และ 312.5 เส้นต่อฟิลด์
- SNES เวอร์ชัน PAL ใช้มาสเตอร์คล็อก 17.7344750MHz
- ความละเอียดที่มองเห็นได้ใช้ 224 เส้นและ 256 จุด และมีอัตราเฟรม 50.00697891Hz
เอาต์พุต
- SNES แปลงสัญญาณ CRT เป็นคอมโพสิตและ S-Video
- ผ่านคอนเน็กเตอร์ AV จะให้สัญญาณ "RGB/CSync" แบบบริสุทธิ์, สัญญาณ "Composite" และสัญญาณ S-Video
สรุปโดย GN⁺
- บทความนี้อธิบายกระบวนการออกแบบระบบวิดีโอของ Super Nintendo โดยครอบคลุมหลักการทำงานของ CRT และวิธีประมวลผลสัญญาณ
- อธิบายการตัดสินใจในการออกแบบระบบวิดีโอของ SNES ผ่านความเข้าใจเกี่ยวกับการทำงานของ CRT และการประมวลผลสัญญาณ
- บทความนี้มีประโยชน์สำหรับผู้ที่สนใจการออกแบบฮาร์ดแวร์ของเครื่องเล่นวิดีโอเกม และช่วยให้เข้าใจประวัติและหลักการทำงานของเทคโนโลยี CRT
- โปรเจ็กต์อื่นที่มีคุณลักษณะคล้ายกัน ได้แก่ Sega Genesis และ Neo-Geo AES
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
224 เป็นตัวเลขที่หารด้วย 16 ลงตัว จึงเข้ากันได้ดีกับ tilemap ในไปป์ไลน์การเรนเดอร์กราฟิก
59.94Hz เป็นตัวเลขที่ประหลาด
อัตราส่วนงานภาพ 8:7 สามารถเห็นได้ในเกม SFC/SNES ที่ถูกพอร์ตไปแพลตฟอร์มอื่น
เกมยุโรปเกิด VSYNC ที่ 50.00697891Hz ทำให้เกมรันช้ากว่าที่ตั้งใจไว้ 17%
บทความต้นฉบับมีพิมพ์ผิด; อัตราส่วน 8:6 เท่ากับ 4:3
ความละเอียดเอาต์พุต 256x224 (8:7) ถูกขยายเป็นภาพ 4:3
สงสัยว่ามีอีมูเลเตอร์ที่จำลองรูปลักษณ์ของ CRT ได้อย่างแม่นยำหรือไม่
เคยคาดหวังว่าจะได้มุมมองว่าการออกแบบเกมอันเป็นเอกลักษณ์เกิดขึ้นได้อย่างไรจากเรื่องนี้