เล่น Retro Game บน Raspberry PI




ก่อนที่จะเขียนเรื่ืองนี้ก็ได้ไปค้นหาดูว่ามีใครทำอะไรเกี่ยวกับ Retro Games กับ Raspberry Pi ไว้บ้างแล้ว ก็พบว่ามีการนำเอา Game Emulators มาทำในลักษณะพร้อมใช้งาน นำมาติดตั้งบน SD Card พร้อมกับรวบรวมเอา Game Data (ROM) หลาย ๆ เกมส์มาไว้ด้วยกัน ได้แก่


  1.  RetroPi (https://github.com/RetroPie/RetroPie-Setup/wiki
  2.  ChameleonPi (http://chameleon.enging.com/
  3.  PiMAME (http://piplay.org/quickstart.html)


ความจริงแล้ว การนำเอา Game ROM มาเล่นบน Raspberry Pi ไม่ใช่เรื่องซับซ้อนอะไร หากท่านไม่ต้องการใช้งานแบบที่กล่าวมาข้างต้น ท่านก็สามารถทำของท่านเองได้ โดยไม่ต้องเตรียม SD-Card ใหม่แต่อย่างใด (หมายถึงใช้ SD-Card ที่มี Raspbian อยู่แล้ว)

สำหรับผมแล้ววิธีการที่ง่ายที่สุดคือการใช้ Madnefen (http://mednafen.fobby.net/) ซึ่งเป็น Game Emulator ตัวหนึ่งที่มีอยู่ใน Raspbian repository แล้ว ตัว mednafen ตัองการ OpenGL driver และ SDL (https://www.libsdl.org/) ครับ ดังนั้นท่านควรจะเลือกใช้งานกับ Raspberry Pi board และ Raspbian รุ่นล่าสุดก็จะได้เล่นอย่างสะดวกหน่อย เพราะมีทั้งคู่พร้อมแล้ว

สำหรับขั้นตอนนั้นมีเพียงสองขั้นตอนคือ ติดตั้ง Mednafen  แล้วก็หา Game Data หรือ ROM มาเล่นก็เท่านั้นครับ แต่ต้องระวังเรื่องลิขสิทธิ์นะครับ เพราะเกมส์บางเกมส์แม้จะเก่าแล้วก็ตาม แต่เจ้าของลิขสิทธิ์เขาอาจจะยังไม่อนุญาติก็ได้

ติดตั้ง Mednafen



$ sudo apt-get install mednafen


การติดตั้งนี้ควรทำหลังจากท่านได้ทำการ enable OpenGL Driver (ทำผ่าน raspi-config) แล้ว

หา Game Data (ROM)

ท่านสามารถหา Game ROM ได้จากหลายเว็บไซต์ครับ ค้นผ่าน Google ดูก็จะรู้ว่าเยอะขนาดไหน แต่ที่ผมใช้คือ https://www.loveroms.com/ ครับ ค้นง่ายดี  แต่ว่า Game มันทีหลายค่ายหลาย platform เหลือเกิน เลือกอย่างไรดี คำตอบคือ ศึกษาว่า Emulator ที่เราใช้นั้นสนับสนุน platform ไหนบ้าง ก็เลือกในค่ายหรือ platform นั้น ครับ อย่างเช่น mednafen เขาจะใช้งานได้กับ Atari, Gameboy, Sega, Nintendo เป็นต้น (http://mednafen.fobby.net/documentation/) แต่กระนั้นก็ตาม จะเล่นของฟรีก็ต้องทำใจไว้เรื่องหนึ่งว่า ไม่ใช่ว่าทุก Game Data ที่ download มาจะใช้งานได้กับระบบของเรานะครับ ท่านต้องลองผิดลองถูกเอาเองละ





ขั้นตอนต่อไปเป็นขั้นตอนที่สำคัญคือ การกำหนด Key Assignment ครับ เพราะระบบของเราทำงานแบบระบบสมมุติไม่ใช่ระบบที่เจ้าของเขาออกแบบไว้ โดยทั่วไปก็จะหมายถึงการใช้แป้นกดบนคีย์บอร์ดของเราให้ทำหน้าที่แทน input device เดิม ครับ ถ้าท่านจำได้ว่าเดิมเขาใช้อะไรและเรียกว่าอะไรบ้างก็จะง่ายขึ้น แต่ในกรณีของผมนี้ จำอะไรไม่ได้แล้วดังนั้นทางที่ทำได้ก็คือการลองผิดลองถูกครับ โดยอาศัยคู่มือของ Mednafen (http://mednafen.fobby.net/documentation/#Core+Features%01Using+Mednafen%01Key+Assignments)  เป็นแนวทางครับ


ถึงเวลาเล่นเกมส์

ใช้คำสั่ง


$ mednafen paht/to/game rom


"path/to/game rom" นี้ส่วนมากแล้วจะได้มาในรูปของ zip ไฟล์ครับ ก็เรียกใช้ได้เลย ไม่ต้องแตกไฟล์ครับ ตัว Mednafen เขาจัดการต่อให้เอง  เช่น

$ mednafen SuperTank.zip

ที่นี้ผมก็มีเกมส์โปรดสมัยเป็นเด็กเล่นแล้ว






อ้อ ... เกือบลืม การใช้ Mednafen มีข้อดีอีกอย่างคือ เขาช่วยให้เราแยก Layer ต่าง ๆ ในเกมส์ได้ครับ เหมาะกับการวิเคราะห์การออกแบบเกมส์ เช่น เราสามารถ disable ชั้นที่เป็น background แล้วศึกษาเฉพาะการเคลื่อนที่ของตัว player เป็นต้น...
Previous
Next Post »