GoC32 Side Story “N64 Emulator, Nintendo in crossfire”
ตั้งแต่ช่วงปลายของยุค 90s ได้มีความพยายามอย่างจริงจังที่จะพัฒนา Emulator ของ PlayStation(ps) จนทำให้เกิดสงคราม Emulator ที่ Sony เข้าห้ำหั่นกับ Connectix และ Bleem Company อย่างดุเดือดเพื่อปกป้องผลประโยชน์ของเครื่องคอนโซลและตลาดเกม ps ของตนเอง แต่กระนั้นก็มีบริษัทผู้ผลิตเครื่องเกมคอนโซลอีกเจ้าหนึ่งที่โดนลูกหลงจากสงครามจนพลอยติดร่างแหไปด้วยอีกราย
นั้นคือ Nintendo กับเครื่องเกมรุ่นล่าสุดในขณะนั้น N64 นั้นเอง
Emulator ของเครื่อง N64 นั้นเริ่มมีความพยายามที่จะพัฒนาออกมาตั้งแต่ช่วงปลายปี 1997 หรือหลังจากการออกวางจำหน่ายของเครื่อง N64 ได้ไม่นาน โดยอีมูเลเตอร์ตัวแรกของ N64 นั้นรู้จักกันในชื่อว่า Project Unreality ซึ่งเป็นการล้อกับชื่อโครงการพัฒนาเครื่อง N64 ที่ใช้ชื่อว่า Project Reality เมื่อเข้าสู่ช่วงต้นของปี 1998 การพัฒนาก็มีความก้าวหน้าให้เห็นโดย Project Unreality สามารถจำลองการทำงานของเกมที่ถูกพัฒนาขึ้นโดยนักพัฒนาอิสระได้แม้จะยังไม่สมบูรณ์นักก็ตาม
ความเห็นส่วนตัว คาดว่าโปรแกรมเกมนั้นถูกพัฒนาขึ้นเพื่อทดสอบการทำงานของ Project Unreality โดยเฉพาะ บางทีอาจจะเป็นเกมง่าย ๆ ที่ไม่ซับซ้อน เช่น Pong หรือเป็นแค่ Graphics Demonstrate (การสาธิตทางกราฟฟิก) เป็นต้น
เมื่อเข้าสู่เดือนพฤษภาคม 1998 ทางผู้พัฒนาได้ประกาศยุติโครงการ Project Unreality นี้ไปโดยมีการพูดถึงใน Web board ว่าเป็นเพราะหนึ่งในนักพัฒนาถูกว่าจ้างเข้าทำงานที่บริษัทเกมแห่งหนึ่งทำให้ดำเนินโครงการต่อไม่ได้ ที่น่าสนใจคือมีข่าวลือว่าทาง Nintendo มีการติดต่อกับทีมพัฒนาให้ยุติโครงการ อย่างไรก็ตาม นี่ทำให้ Project Unreality สุดท้ายก็ถูกเก็บเข้ากรุไปในที่สุด
แต่กระนั้นข่าวลือที่ว่า Nintendo สั่งให้ยุติโครงการก็มีผลกระทบอย่างมาก ทำให้การพัฒนา N64 Emulator ของทีมอื่น ๆ หากไม่ยุติไปก็ดำเนินการพัฒนาต่ออย่างลับ ๆ ใต้ดินแทน
UltraHLE คือ N64 Emulator อีกโครงการหนึ่งที่ถูกพัฒนาอย่างลับ ๆ เปิดตัวครั้งแรกเมื่อเดือนมกราคม 1999 โดยมีผู้ใช้นามแฝงบน internet ว่า Epsilon และ RealityMan เป็นผู้พัฒนาหลัก
เมื่อเทียบกับ VGS หรือ Bleem! แล้ว UltraHLE นั้นใช้วิธีการที่แตกต่างจาก Emulator ตัวอื่น ๆ
VGS ใช้วิธีเขียนโปรแกรมเลียนแบบการทำงานของ ps จนกลายเป็น ps เวอร์ชั่น Software ส่วน Bleem! ใช้วิธี Recompile โดยเขียน Bleem! ให้ปรับการเรียกใช้ฟังชั่นต่าง ๆ ของให้เข้ากับ Hardware ด้วยภาษาระดับล่างอย่างเอสแซมบลีเพื่อให้ได้ซึ่งประสิทธิ์ภาพและความเร็วสูงสุดในการทำงาน ต่อมาวิธีนี้ถูกเรียกว่า Low Level Emulator
UltraHLE นั้นใช้วิธีที่เรียกว่า High Level Emulator จากการที่ทีมพัฒนาพบว่าโปรแกรมเกมของ N64 นั้นถูกพัฒนาด้วยภาษา C ทำให้ทีมงานสามารถตรวจสอบและดักจับการเรียกใช้ Libraries หรือชุดคำสั่งที่เกมต้องการได้ ทีมพัฒนาจึงเขียนโปรแกรมให้มีการดักจับการเรียนใช้ชุดคำสั่งจากเกมแล้วก็สร้างชุดคำสั่งที่เกมของ N64 ต้องการเรียกใช้ขึ้นมาใหม่ เมื่อไหร่ที่เกมมีการเรียกชุดคำสั่งดังกล่าว อีมูเลเตอร์ก็จะดักจับและแทรกแซงให้ไปใช้ชุดคำสั่งที่ถูกสร้างขึ้นใหม่แทนซึ่งชุดคำสั่งนี้จะไปติดต่อกับ OS (ระบบปฏิบัติการ) เพื่อเรียกใช้ฟังชั่นการทำงานของตัว OS เองอีกที
ถึงตรงนี้ผู้อ่านคงจะงงกับ High/Low Level Emulator โดยส่วนตัวแล้วผู้เขียนจำกัดความของ High/Low Level Emulator ไว้สั้น ๆ ดังนี้
Low Level Emulator = ปรับและจำลองการทำงานของ Software ให้เข้ากับ Hardware
High Level Emulator = ปรับและจำลองการทำงานของ Software ให้เข้ากับ Software (OS, API เป็นต้น)
ในอีกมุมมองนึงก็มีคนมองว่า UltraHLE ไม่น่าจะใช่ Emulator(เลียนแบบการทำงาน) แต่เป็น Simulator(จำลองการทำงาน) มากกว่า
อย่างไรก็ตามวิธีนี้มีข้อเสียคือมันจะทำให้ UltraHLE ไม่รองรับเกมได้ทุกเกมเพราะเกมนั้นมีการเรียกใช้ชุดคำสั่งที่แตกต่างกัน ผู้พัฒนาจำเป็นต้องสร้างชุดคำสั่งเพื่อรองรับเกมแต่ละเกมแยกต่างหาก
วิธีแก้ปัญหานั้นผู้พัฒนาเลือกที่จะสร้างชุดคำสั่งเพื่อรองรับเฉพาะเกมที่เป็นที่นิยมก่อนซึ่งสำหรับ N64 แล้วมีไม่มาก
ทำให้เมื่อแรกเปิดตัวแม้ว่า UltraHLE รองรับเกมของ N64 ได้เพียง 18-20 เกมแต่ทุกเกมที่เล่นได้นั้นล้วนเป็นเกมชื่อดังทั้งสิ้นแถมประสิทธิภาพในการทำงานของ UltraHLE ก็ยอดเยี่ยม สามารถให้ Frame rate ที่สูงเทียบเท่ากับที่เครื่อง N64 ทำได้โดยมีเงื่อนไขสำคัญคือเครื่อง PC ที่ใช้นั้นต้องติดตั้งกราฟฟิกการ์ด Voodoo ของ 3Dfx เพราะชุดคำสั่งสำหรับประมวลผลกราฟฟิกที่ถูกสร้างขึ้นใหม่นั้นอาศัย Graphic API ที่ชื่อ Glide ของ 3Dfx ในการทำงานเนื่องจากมีความเข้ากันได้กับเกมมากที่สุด (Bleem เองก็เช่นกัน เครื่องที่ใช้ Bleem เกม Ps ได้นั้นมักต้องใช้กราฟฟิกการ์ดของ 3Dfx เช่น Voodoo เกือบทั้งนั้น)
อธิบาย
Graphic API หรือที่ต่อมาเรียกสั้น ๆ ว่า API นั้น ในยุค 90s ไม่ได้มีเพียง Direct3D หรือที่รู้จักในปัจจุบันว่า DirectX แต่ยังมีคู่แข่งอีกสอง API นั้นคือ Glide ของ 3Dfx และ OpenGL ที่เป็น Open Source ซึ่งภายหลัง Glide ก็หายไปพร้อม ๆ กับการล่มสลายของ 3Dfx ส่วน OpenGL ก็เป็นที่รู้จักน้อยลงเรื่อย ๆ และเสียพื้นที่ให้แก่ DirectX จนเกือบหมดเนื่องจากความนิยมของ Windows OS, ปัญหาความเข้ากันได้และความสะดวกในการใช้งาน
หลังจากชาว net ได้รับการยืนยันถึงประสิทธิภาพของ Emulator โดยผู้ที่ทดลองใช้ ทำให้ครั้งหนึ่ง UltraHLE มียอด Download ที่สูงมากถึง 3 แสน Copy ภายในวันเดียว (ในยุคความเร็ว internet ที่ 56K นี่ถือว่าเยอะมาก) จนต่อมามีการสร้างวิธีต่าง ๆ เพื่อให้ UltraHLE สามารถใช้กราฟฟิกการ์ดของค่ายอื่นได้ เช่น การสร้างโปรแกรมแปลง Glide ให้ไปเรียกใช้ฟังชั่น DirectX ของ Microsoft แทน นี่ยิ่งทำให้ UltraHLE ยิ่งเป็นที่รู้จักและได้รับความนิยมยิ่งขึ้นไปอีกและสิ่งที่ตามมาคือ การละเมิดลิขสิทธิ์ เนื่องจากเกมของ N64 มีขนาดที่ไม่ใหญ่ เฉลี่ยประมาณ 18-32 เมกกะไบต์ทำให้การแจกจ่ายเกมผ่าน Internet ทำได้ง่ายกว่าเกมของ ps
นี่ทำให้ Nintendo ไม่พอใจอย่างมากเพราะในเวลานั้น Nintendo ยังคงวางจำหน่าย N64 อยู่และพยายามที่จะกำจัด Emulator ตัวนี้ไปให้ได้ ร้อนถึงทีมผู้พัฒนาที่ต้องออกมาประกาศในทำนองว่าจะยุติการพัฒนา UltraHLE เนื่องจากผู้ใช้เอาไปเล่นเกมละเมิดลิขสิทธิ์ซึ่งไม่ตรงกับความต้องการของทีมพัฒนาที่ต้องการให้ UltraHLE เป็นการสาธิตทางเทคโนโลยีและกราฟฟิก
ในเดือนต่อมา กุมภาพันธ์ 1999 Nintendo ได้ยื่นฟ้องผู้พัฒนารวมถึงผู้ให้บริการ Webhost ของทีมที่เก็บข้อมูล Emulator ให้ Download ในข้อหาละเมิดลิขสิทธิ์และละเมิดสิทธิบัตร (ข้อหาแบบเดียวกับที่ Sony ฟ้อง Connectix และ Bleem Company) แต่เนื่องจากทีมผู้พัฒนานั้นแอบพัฒนา Emulator ตัวนี้แบบใต้ดินมาแต่แรกและไม่เคยเปิดเผยตัวตน ทำให้ Nintendo หาตัวทีมผู้พัฒนามาขึ้นศาลไม่ได้ ส่วน Epsilon และ RealityMan ก็ทิ้งนามแฝงที่ใช้แล้วหายเข้ากรีบเมฆไปพร้อม ๆ กับทีมพัฒนา
สาเหตุที่หนีเชื่อว่าเพราะการสร้าง Emulator เครื่องเกมคอนโซลในเวลานั้นยังเป็นอะไรที่หมิ่นเหม่ กว่าที่จะมีการตัดสินถึงที่สุดว่าเป็นสิ่งที่ทำได้ไม่ผิดกฎหมายก็อีก 2-3 ปีให้หลังอีกทั้งผลงานของพวกตนยังไปทำให้บริษัทยักษ์ใหญ่อย่าง Nintendo ต้องสูญเสียรายได้อย่างมากและการที่กลุ่มคนธรรมดาจะไปสู่คดีกับบริษัทยักษ์ใหญ่นั้นเป็นเรื่องที่ลำบาก สิ้นเปลื้องทั้งเงินและเวลา ตัวอย่างที่เห็นได้ชัดที่สุดคือตอนที่ Bleem Company สู่คดีกับ Sony โดยทาง Sony ใช้วิธีฟ้อง Bleem Company ไปเรื่อย ๆ จนเงินทุนหมดไปเอง
ในรูปคือข่าว Nintendo ฟ้องผู้พัฒนา UltraHLE จากนิตยสาร PC Zone ฉบับเดือนเมษายน 1999
อย่างไรก็ตาม ข้อมูลที่ขึ้นไปอยู่บน internet แล้วไม่สามารถลบหายไปได้ง่าย ๆ UltraHLE ถูกอัพโหลดใหม่เพื่อแจกจ่ายโดยผู้ใช้งาน internet รายย่อยมากมาย ทำให้การไล่ฟ้องเพื่อให้ Webhost ลบข้อมูลนั้นทำได้ยากและไม่มีประสิทธิภาพ โดยยังไม่รวมถึงการแจกจ่ายผ่านช่องทางต่าง ๆ เช่น ftp หรือการ Download แบบ p2p ผ่านโปรแกรม Chat Room ต่าง ๆ ในสมัยนั้นอีกด้วย ทำให้การละเมิดลิขสิทธิ์เกมของ N64 ผ่าน Internet ยังคงมีอยู่อีกทั้งยังทำให้ “หัวโปร” ของ N64 ได้รับความนิยมมากขึ้นเพราะเกมสามารถหาโหลดทาง internet ได้
ภายหลังเมื่อ N64 แพ้ในการแข่งขันเครื่องเกมคอนโซลให้กับ ps ของ Sony อย่างย่อยยับจนต้องยุติการผลิตไปในปี 2002 ก็ได้มีการพบ Source Code ของ UltraHLE หลุดออกมาใน internet ในปีเดียวกัน
ส่วนตัวแล้ว บางทีผู้พัฒนาอาจจะจงใจปล่อยออกมาก็ได้ เพราะช่วงเวลาที่ Source Code หลุดนั้นมันประจวบเหมาะเกินไป โดยหลุดออกมาการประกาศยุติการผลิต N64 เพียง 4 เดือนให้หลังเท่านั้น
นี่ทำให้มีการศึกษา Source Code ของ UltraHLE อย่างจริงจังเพื่อศึกษาวิธีการสร้างซึ่งต่อมาทำให้เกิดการปรับปรุงต่อยอด UltraHLE เป็นเวอร์ชั่นที่สนับสนุน OpenGL API ในชื่อ UltraHLE 2064 และหลังจากนั้นก็เกิด N64 Emulator โดยผู้พัฒนารายอื่น ๆ ที่มีประสิทธิภาพดียิ่งกว่า UltraHLE ตามมาอีกมากมาย
ส่วนวิธี High Level Emulator ก็ถูกศึกษาแนวคิดและนำไปปรับใช้ในการสร้าง Game Console Emulator ของเครื่องเล่นเกมอื่น ๆ ต่อมา เช่น Game Cube, Will รวมถึง Emulator ของ ps2 บางตัว เป็นต้น
ในปัจจุบันเนื่องจากพลังการประมวลผลของคอมพิวเตอร์ทั่วไปเพิ่มขึ้นอย่างมหาศาลเมื่อเทียบกับยุค 2000s ทำให้เทคนิค Low Level Emulator ที่ประสิทธิภาพดีกว่าแต่ต้องการพลังการประมวลผลที่สูงกลับมาได้รับความนิยมมากขึ้นเนื่องจากสามารถใช้งานจริงได้แล้ว ส่วน High Level Emulator ถูกนำไปใช้กับอุปกรณ์ที่มีพลังการประมวลผลน้อยกว่า เช่น Smart phone หรือ Tablet แทน
ปล.ตอนนี้ผมได้เปิด Facebook Page “บทความตามใจฉัน”
โดยบทความจะหลายหลากคละประเภทกันไปความตามความสนใจนั้นขณะนั้น ถ้าสนใจก็กดติดตามได้ครับ
https://www.facebook.com/uptomejournal/
GoC32 Side Story “N64 Emulator, Nintendo in crossfire”
ตั้งแต่ช่วงปลายของยุค 90s ได้มีความพยายามอย่างจริงจังที่จะพัฒนา Emulator ของ PlayStation(ps) จนทำให้เกิดสงคราม Emulator ที่ Sony เข้าห้ำหั่นกับ Connectix และ Bleem Company อย่างดุเดือดเพื่อปกป้องผลประโยชน์ของเครื่องคอนโซลและตลาดเกม ps ของตนเอง แต่กระนั้นก็มีบริษัทผู้ผลิตเครื่องเกมคอนโซลอีกเจ้าหนึ่งที่โดนลูกหลงจากสงครามจนพลอยติดร่างแหไปด้วยอีกราย
นั้นคือ Nintendo กับเครื่องเกมรุ่นล่าสุดในขณะนั้น N64 นั้นเอง
Emulator ของเครื่อง N64 นั้นเริ่มมีความพยายามที่จะพัฒนาออกมาตั้งแต่ช่วงปลายปี 1997 หรือหลังจากการออกวางจำหน่ายของเครื่อง N64 ได้ไม่นาน โดยอีมูเลเตอร์ตัวแรกของ N64 นั้นรู้จักกันในชื่อว่า Project Unreality ซึ่งเป็นการล้อกับชื่อโครงการพัฒนาเครื่อง N64 ที่ใช้ชื่อว่า Project Reality เมื่อเข้าสู่ช่วงต้นของปี 1998 การพัฒนาก็มีความก้าวหน้าให้เห็นโดย Project Unreality สามารถจำลองการทำงานของเกมที่ถูกพัฒนาขึ้นโดยนักพัฒนาอิสระได้แม้จะยังไม่สมบูรณ์นักก็ตาม
ความเห็นส่วนตัว คาดว่าโปรแกรมเกมนั้นถูกพัฒนาขึ้นเพื่อทดสอบการทำงานของ Project Unreality โดยเฉพาะ บางทีอาจจะเป็นเกมง่าย ๆ ที่ไม่ซับซ้อน เช่น Pong หรือเป็นแค่ Graphics Demonstrate (การสาธิตทางกราฟฟิก) เป็นต้น
เมื่อเข้าสู่เดือนพฤษภาคม 1998 ทางผู้พัฒนาได้ประกาศยุติโครงการ Project Unreality นี้ไปโดยมีการพูดถึงใน Web board ว่าเป็นเพราะหนึ่งในนักพัฒนาถูกว่าจ้างเข้าทำงานที่บริษัทเกมแห่งหนึ่งทำให้ดำเนินโครงการต่อไม่ได้ ที่น่าสนใจคือมีข่าวลือว่าทาง Nintendo มีการติดต่อกับทีมพัฒนาให้ยุติโครงการ อย่างไรก็ตาม นี่ทำให้ Project Unreality สุดท้ายก็ถูกเก็บเข้ากรุไปในที่สุด
แต่กระนั้นข่าวลือที่ว่า Nintendo สั่งให้ยุติโครงการก็มีผลกระทบอย่างมาก ทำให้การพัฒนา N64 Emulator ของทีมอื่น ๆ หากไม่ยุติไปก็ดำเนินการพัฒนาต่ออย่างลับ ๆ ใต้ดินแทน
UltraHLE คือ N64 Emulator อีกโครงการหนึ่งที่ถูกพัฒนาอย่างลับ ๆ เปิดตัวครั้งแรกเมื่อเดือนมกราคม 1999 โดยมีผู้ใช้นามแฝงบน internet ว่า Epsilon และ RealityMan เป็นผู้พัฒนาหลัก
เมื่อเทียบกับ VGS หรือ Bleem! แล้ว UltraHLE นั้นใช้วิธีการที่แตกต่างจาก Emulator ตัวอื่น ๆ
VGS ใช้วิธีเขียนโปรแกรมเลียนแบบการทำงานของ ps จนกลายเป็น ps เวอร์ชั่น Software ส่วน Bleem! ใช้วิธี Recompile โดยเขียน Bleem! ให้ปรับการเรียกใช้ฟังชั่นต่าง ๆ ของให้เข้ากับ Hardware ด้วยภาษาระดับล่างอย่างเอสแซมบลีเพื่อให้ได้ซึ่งประสิทธิ์ภาพและความเร็วสูงสุดในการทำงาน ต่อมาวิธีนี้ถูกเรียกว่า Low Level Emulator
UltraHLE นั้นใช้วิธีที่เรียกว่า High Level Emulator จากการที่ทีมพัฒนาพบว่าโปรแกรมเกมของ N64 นั้นถูกพัฒนาด้วยภาษา C ทำให้ทีมงานสามารถตรวจสอบและดักจับการเรียกใช้ Libraries หรือชุดคำสั่งที่เกมต้องการได้ ทีมพัฒนาจึงเขียนโปรแกรมให้มีการดักจับการเรียนใช้ชุดคำสั่งจากเกมแล้วก็สร้างชุดคำสั่งที่เกมของ N64 ต้องการเรียกใช้ขึ้นมาใหม่ เมื่อไหร่ที่เกมมีการเรียกชุดคำสั่งดังกล่าว อีมูเลเตอร์ก็จะดักจับและแทรกแซงให้ไปใช้ชุดคำสั่งที่ถูกสร้างขึ้นใหม่แทนซึ่งชุดคำสั่งนี้จะไปติดต่อกับ OS (ระบบปฏิบัติการ) เพื่อเรียกใช้ฟังชั่นการทำงานของตัว OS เองอีกที
ถึงตรงนี้ผู้อ่านคงจะงงกับ High/Low Level Emulator โดยส่วนตัวแล้วผู้เขียนจำกัดความของ High/Low Level Emulator ไว้สั้น ๆ ดังนี้
Low Level Emulator = ปรับและจำลองการทำงานของ Software ให้เข้ากับ Hardware
High Level Emulator = ปรับและจำลองการทำงานของ Software ให้เข้ากับ Software (OS, API เป็นต้น)
ในอีกมุมมองนึงก็มีคนมองว่า UltraHLE ไม่น่าจะใช่ Emulator(เลียนแบบการทำงาน) แต่เป็น Simulator(จำลองการทำงาน) มากกว่า
อย่างไรก็ตามวิธีนี้มีข้อเสียคือมันจะทำให้ UltraHLE ไม่รองรับเกมได้ทุกเกมเพราะเกมนั้นมีการเรียกใช้ชุดคำสั่งที่แตกต่างกัน ผู้พัฒนาจำเป็นต้องสร้างชุดคำสั่งเพื่อรองรับเกมแต่ละเกมแยกต่างหาก
วิธีแก้ปัญหานั้นผู้พัฒนาเลือกที่จะสร้างชุดคำสั่งเพื่อรองรับเฉพาะเกมที่เป็นที่นิยมก่อนซึ่งสำหรับ N64 แล้วมีไม่มาก
ทำให้เมื่อแรกเปิดตัวแม้ว่า UltraHLE รองรับเกมของ N64 ได้เพียง 18-20 เกมแต่ทุกเกมที่เล่นได้นั้นล้วนเป็นเกมชื่อดังทั้งสิ้นแถมประสิทธิภาพในการทำงานของ UltraHLE ก็ยอดเยี่ยม สามารถให้ Frame rate ที่สูงเทียบเท่ากับที่เครื่อง N64 ทำได้โดยมีเงื่อนไขสำคัญคือเครื่อง PC ที่ใช้นั้นต้องติดตั้งกราฟฟิกการ์ด Voodoo ของ 3Dfx เพราะชุดคำสั่งสำหรับประมวลผลกราฟฟิกที่ถูกสร้างขึ้นใหม่นั้นอาศัย Graphic API ที่ชื่อ Glide ของ 3Dfx ในการทำงานเนื่องจากมีความเข้ากันได้กับเกมมากที่สุด (Bleem เองก็เช่นกัน เครื่องที่ใช้ Bleem เกม Ps ได้นั้นมักต้องใช้กราฟฟิกการ์ดของ 3Dfx เช่น Voodoo เกือบทั้งนั้น)
อธิบาย
Graphic API หรือที่ต่อมาเรียกสั้น ๆ ว่า API นั้น ในยุค 90s ไม่ได้มีเพียง Direct3D หรือที่รู้จักในปัจจุบันว่า DirectX แต่ยังมีคู่แข่งอีกสอง API นั้นคือ Glide ของ 3Dfx และ OpenGL ที่เป็น Open Source ซึ่งภายหลัง Glide ก็หายไปพร้อม ๆ กับการล่มสลายของ 3Dfx ส่วน OpenGL ก็เป็นที่รู้จักน้อยลงเรื่อย ๆ และเสียพื้นที่ให้แก่ DirectX จนเกือบหมดเนื่องจากความนิยมของ Windows OS, ปัญหาความเข้ากันได้และความสะดวกในการใช้งาน
หลังจากชาว net ได้รับการยืนยันถึงประสิทธิภาพของ Emulator โดยผู้ที่ทดลองใช้ ทำให้ครั้งหนึ่ง UltraHLE มียอด Download ที่สูงมากถึง 3 แสน Copy ภายในวันเดียว (ในยุคความเร็ว internet ที่ 56K นี่ถือว่าเยอะมาก) จนต่อมามีการสร้างวิธีต่าง ๆ เพื่อให้ UltraHLE สามารถใช้กราฟฟิกการ์ดของค่ายอื่นได้ เช่น การสร้างโปรแกรมแปลง Glide ให้ไปเรียกใช้ฟังชั่น DirectX ของ Microsoft แทน นี่ยิ่งทำให้ UltraHLE ยิ่งเป็นที่รู้จักและได้รับความนิยมยิ่งขึ้นไปอีกและสิ่งที่ตามมาคือ การละเมิดลิขสิทธิ์ เนื่องจากเกมของ N64 มีขนาดที่ไม่ใหญ่ เฉลี่ยประมาณ 18-32 เมกกะไบต์ทำให้การแจกจ่ายเกมผ่าน Internet ทำได้ง่ายกว่าเกมของ ps
นี่ทำให้ Nintendo ไม่พอใจอย่างมากเพราะในเวลานั้น Nintendo ยังคงวางจำหน่าย N64 อยู่และพยายามที่จะกำจัด Emulator ตัวนี้ไปให้ได้ ร้อนถึงทีมผู้พัฒนาที่ต้องออกมาประกาศในทำนองว่าจะยุติการพัฒนา UltraHLE เนื่องจากผู้ใช้เอาไปเล่นเกมละเมิดลิขสิทธิ์ซึ่งไม่ตรงกับความต้องการของทีมพัฒนาที่ต้องการให้ UltraHLE เป็นการสาธิตทางเทคโนโลยีและกราฟฟิก
ในเดือนต่อมา กุมภาพันธ์ 1999 Nintendo ได้ยื่นฟ้องผู้พัฒนารวมถึงผู้ให้บริการ Webhost ของทีมที่เก็บข้อมูล Emulator ให้ Download ในข้อหาละเมิดลิขสิทธิ์และละเมิดสิทธิบัตร (ข้อหาแบบเดียวกับที่ Sony ฟ้อง Connectix และ Bleem Company) แต่เนื่องจากทีมผู้พัฒนานั้นแอบพัฒนา Emulator ตัวนี้แบบใต้ดินมาแต่แรกและไม่เคยเปิดเผยตัวตน ทำให้ Nintendo หาตัวทีมผู้พัฒนามาขึ้นศาลไม่ได้ ส่วน Epsilon และ RealityMan ก็ทิ้งนามแฝงที่ใช้แล้วหายเข้ากรีบเมฆไปพร้อม ๆ กับทีมพัฒนา
สาเหตุที่หนีเชื่อว่าเพราะการสร้าง Emulator เครื่องเกมคอนโซลในเวลานั้นยังเป็นอะไรที่หมิ่นเหม่ กว่าที่จะมีการตัดสินถึงที่สุดว่าเป็นสิ่งที่ทำได้ไม่ผิดกฎหมายก็อีก 2-3 ปีให้หลังอีกทั้งผลงานของพวกตนยังไปทำให้บริษัทยักษ์ใหญ่อย่าง Nintendo ต้องสูญเสียรายได้อย่างมากและการที่กลุ่มคนธรรมดาจะไปสู่คดีกับบริษัทยักษ์ใหญ่นั้นเป็นเรื่องที่ลำบาก สิ้นเปลื้องทั้งเงินและเวลา ตัวอย่างที่เห็นได้ชัดที่สุดคือตอนที่ Bleem Company สู่คดีกับ Sony โดยทาง Sony ใช้วิธีฟ้อง Bleem Company ไปเรื่อย ๆ จนเงินทุนหมดไปเอง
ในรูปคือข่าว Nintendo ฟ้องผู้พัฒนา UltraHLE จากนิตยสาร PC Zone ฉบับเดือนเมษายน 1999
อย่างไรก็ตาม ข้อมูลที่ขึ้นไปอยู่บน internet แล้วไม่สามารถลบหายไปได้ง่าย ๆ UltraHLE ถูกอัพโหลดใหม่เพื่อแจกจ่ายโดยผู้ใช้งาน internet รายย่อยมากมาย ทำให้การไล่ฟ้องเพื่อให้ Webhost ลบข้อมูลนั้นทำได้ยากและไม่มีประสิทธิภาพ โดยยังไม่รวมถึงการแจกจ่ายผ่านช่องทางต่าง ๆ เช่น ftp หรือการ Download แบบ p2p ผ่านโปรแกรม Chat Room ต่าง ๆ ในสมัยนั้นอีกด้วย ทำให้การละเมิดลิขสิทธิ์เกมของ N64 ผ่าน Internet ยังคงมีอยู่อีกทั้งยังทำให้ “หัวโปร” ของ N64 ได้รับความนิยมมากขึ้นเพราะเกมสามารถหาโหลดทาง internet ได้
ภายหลังเมื่อ N64 แพ้ในการแข่งขันเครื่องเกมคอนโซลให้กับ ps ของ Sony อย่างย่อยยับจนต้องยุติการผลิตไปในปี 2002 ก็ได้มีการพบ Source Code ของ UltraHLE หลุดออกมาใน internet ในปีเดียวกัน
ส่วนตัวแล้ว บางทีผู้พัฒนาอาจจะจงใจปล่อยออกมาก็ได้ เพราะช่วงเวลาที่ Source Code หลุดนั้นมันประจวบเหมาะเกินไป โดยหลุดออกมาการประกาศยุติการผลิต N64 เพียง 4 เดือนให้หลังเท่านั้น
นี่ทำให้มีการศึกษา Source Code ของ UltraHLE อย่างจริงจังเพื่อศึกษาวิธีการสร้างซึ่งต่อมาทำให้เกิดการปรับปรุงต่อยอด UltraHLE เป็นเวอร์ชั่นที่สนับสนุน OpenGL API ในชื่อ UltraHLE 2064 และหลังจากนั้นก็เกิด N64 Emulator โดยผู้พัฒนารายอื่น ๆ ที่มีประสิทธิภาพดียิ่งกว่า UltraHLE ตามมาอีกมากมาย
ส่วนวิธี High Level Emulator ก็ถูกศึกษาแนวคิดและนำไปปรับใช้ในการสร้าง Game Console Emulator ของเครื่องเล่นเกมอื่น ๆ ต่อมา เช่น Game Cube, Will รวมถึง Emulator ของ ps2 บางตัว เป็นต้น
ในปัจจุบันเนื่องจากพลังการประมวลผลของคอมพิวเตอร์ทั่วไปเพิ่มขึ้นอย่างมหาศาลเมื่อเทียบกับยุค 2000s ทำให้เทคนิค Low Level Emulator ที่ประสิทธิภาพดีกว่าแต่ต้องการพลังการประมวลผลที่สูงกลับมาได้รับความนิยมมากขึ้นเนื่องจากสามารถใช้งานจริงได้แล้ว ส่วน High Level Emulator ถูกนำไปใช้กับอุปกรณ์ที่มีพลังการประมวลผลน้อยกว่า เช่น Smart phone หรือ Tablet แทน
ปล.ตอนนี้ผมได้เปิด Facebook Page “บทความตามใจฉัน”
โดยบทความจะหลายหลากคละประเภทกันไปความตามความสนใจนั้นขณะนั้น ถ้าสนใจก็กดติดตามได้ครับ
https://www.facebook.com/uptomejournal/