Tuesday, June 15, 2010

Correcting Video/Audio sync problem for .MOV file with Mencoder

The magic is
-mc 0 -noskip

Adding those 2 options to mencoder standard option makes the video/audio sync for my .MOV file (taken by Digital Camera) sync smoothly1

Monday, May 10, 2010

เปิดหน้า boot แบบสวยๆใน Lucid Lynx (Ubuntu 10.04)

ต้นตอปัญหาเกิดจากใช้ไดรเวอร์ NVIDIA Priprietary เช่นเคย หลักการคือ เราจะบังคับให้ Grub pass parameter ให้ kernel บูตโดยใช้ Vesafb แทน NVIDIA fb เพราะ NVIDIA fb ไม่ support อะไรบางอย่างที่ Plymouth ต้องใช้ตอนบูต (ทำให้ได้หน้าจอดำๆ และคำว่า Ubuntu แบบหยาบๆโผล่มา)

ต้นฉบับจาก http://news.softpedia.com/news/How-to-Fix-the-Big-and-Ugly-Plymouth-Logo-in-Ubuntu-10-04-140810.shtml
  • apt-get -y install v86d
  • แก้ /etc/default/grub
    • แก้ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset video=uvesafb:mode_option=1280x800-24,mtrr=3,scroll=ywrap"
    • uncomment + เพิ่ม GRUB_GFXMODE=1280x800
  • แก้ /etc/initramfs-tools/modules เพิ่ม "uvesafb mode_option=1280x800-24 mtrr=3 scroll=ywrap"
  • สร้าง /etc/initramfs-tools/conf.d/splash เพิ่ม "FRAMEBUFFER=y"
  • update-grub2
  • update-initramfs -u
  • หมายเหตุ: ทั้งหมดต้องทำด้วย root

Sunday, April 04, 2010

มหากาพย์ภูผามหานที

ว่างเว้นจากการอ่านนิยายจีนกำลังภายในไปนาน พอดีมีสัปดาห์หนังสือเลยฝากเพื่อนซื้อทั้งชุดมาเลย ได้แก่ 2 ภาคแรก + ภาค 3 จำนวน 2 เล่ม (ยังไม่จบ) อ่าน 2 ภาคแรกรวดเดียวจบ ไม่ได้อ่านนิยายจีนชุดยาวรวดเดียวแบบนี้มานานแล้ว ถือได้ว่าเฟิ่งเกอร้ายกาจ สมคำร่ำลือจริงๆ
ส่วนตัวแล้วรู้สึกว่าภาค 2 มีความคล้ายคลึงกับมังกรหยกภาค 2 อยู่หลายอย่าง เช่น
  • ตัวเอกทำอะไรนอกรีต เป็นตัวประหลาดในสายตาชาวบ้าน
  • เนื้อเรื่องแบ่งเป็นหลายช่วงอายุ ช่วงเด็ก ช่วงวัยรุ่น ช่วงวัยเกือบกลางคน จริงๆช่วงวัยรุ่นนี่มีช่วงย่อยๆอีก
  • พระเอกต้องแยกจากนางเอกช่วงวัยรุ่นด้วยสาเหตุพิสดารบางประการ (มังกรหยก - ตกหน้าผา, ภูผา - ติสต์แตก..... เอ้ย โดนสังคมประนาม ไม่กล้าอยู่ต่อ) สุดท้ายกลับมาอยู่ด้วยกันได้ก็ช่วงท้าย
  • พระเอกฉลาดมาก ฝึกวิชาสารพัดสารเพเยอะแยะไปหมด สุดท้ายคิดวิชาของตัวเอง
  • จบเรื่องด้วยฉากสงคราม (มังกรหยก - สงครามมองโกลและซ้องใต้, ภูผา - มองโกลบุกวังความลับฟ้า) ต่างกันตรงที่มังกรหยกโศกมาตลอดสุดท้ายก็ Happy แต่ภูผานี่โศกยันหน้าสุดท้ายเลย
  • พระเอกสุดท้ายใช้ดาบวิเศษ ออกแนวมืดๆทมึนๆ คล้ายๆเอี้ยก้วยที่ใช้กระบี่เหล็กดำ (คล้ายไหม?)
  • มี 3 ภาคเหมือนมังกรหยกซะด้วย (หรือจะมีภาคที่ 4? )
  • สนุกเหมือนกัน :)
เรื่องย่อต่างๆคงหาอ่านได้จาก Boolim Blog แต่สรุปสิ่งที่ผมได้จากการอ่านทั้ง 2 ภาคคือ
  • ปฐมบทฯ - เป็นนิยายจีนอ่านเพลินๆ สนุกๆ ไม่หวือหวามาก เนื้อเรื่องปูพื้นการประยุกต์คณิตศาสตร์มาใช้กับวิทยายุทธิ์นิดหน่อย ปรัชญาที่แฝงอยู่คงเป็นเรื่องของการไม่จองเวร ความโหดร้ายของศึกสงคราม
  • วีรกรรมฯ - เนื้อเรื่องสอดแทรกปรัชญาเกี่ยวกับความสมดุลย์ ธรรมชาติ ตลอดเรื่องนำเสนอความไม่สมบูรณ์พร้อมของสิ่งใดๆในโลก ในขณะที่เหลียงเซียวผู้ชาญฉลาดก็พยายามแสวงหาความสมบูรณ์พร้อม (การแก้แค้นให้สำเร็จ การแก้โจทย์เลขให้ครบ การไม่มีสงคราม การไม่มีอุทกภัย ฯลฯ) จนสุดท้ายก็คิดว่าได้ว่าดุลยภาพคือสิ่งที่สมบูรณ์ที่สุด (ทางสายกลาง???) คิดว่าตอนจบ แทนที่จะให้เหลียงเซียวสู้ตรงๆกับกงหยางหวี่สุดยอดฝีมือซึ่งน่าจะเก่งพอๆกันกับพระเอก กลับวางเรื่องให้สู้กับคู่เพลงกระบี่ไท่อีแยกประกายของกงหยางหวี่กับฮัวอู๋ซือ (ดูไป 2 รุม 1 โกงสิ้นดี) ดูไปคงต้องการสื่อว่าแม้สิ่งใดในโลกไม่สมบูรณ์พร้อม แต่ก็สามารถชดเชยกันเองเพื่อให้สมบูรณ์พร้อมได้
ตลอดเรื่องมีการใช้การอุปมาอุปไมยเทียบกับวัตถุ สิ่งของ เรื่องราวอยู่ตลอดเวลา ซึ่งผมคิดว่าเฟิ่งเกอทำได้ดีมาก มีวัตถุติดตาหลายอย่าง เช่น นกไม้ แมงเม่าบินเข้ากองไฟ อ่านแล้วเรียกน้ำตาได้พอประมาณทีเดียว

Wednesday, March 24, 2010

อ่านนิยายบน Android

ช่วงนี้งานอดิเรกเก่าในร่างใหม่กำลังกลับมา นั่นคือการอ่าน eBook บน HTC Hero (Android 1.5) นั่นเอง

ก่อนหน้านี้เคยทู่ซี้อ่านนิยายฝรั่งหลายเรื่องจนจบ บน Nokia 3110c ด้วย TCBR แต่ด้วยความเล็กของจอเลยปวดตาพอสมควร พอย้ายค่ายมาซบอก Android ก็ได้ฤกษ์ หานิยายมาอ่านบน Android ซะที และไหนๆมันก็เป็น Android ย่อมน่าจะมีโปรแกรมอ่าน eBook ที่เป็น eBook จริงๆหลายตัว พอเสาะหาก็ได้ความดังนี้
  • FBReader - น่าจะเป็นตัวที่ดีที่สุดเพราะเล็กและเร็ว หมุนหน้าจอได้ด้วย แถมมี Night Mode! support EPUB และ MOBI ไม่เชื่อมต่อกับระบบร้านค้าใดๆ ไม่ Support DRM
  • Aldiko - ดูไม่เลว รู้สึกว่าช้ากว่า FBReader อยู่ เหมือนว่าจะพยายาม Support ร้านค้าในตัวเอง แต่ตอนนี้มีแต่หนังสือฟรีให้โหลด Import EPUB เข้ามาอ่านได้
  • EReader - เป็นตัวอ่านตัวเดียวที่เชื่อมกับระบบร้านค้า หนังสือโหลดมาจาก ereader.com เนื่องจากยังไม่ได้ลองซื้อหนังสือ เลยไม่รู้ว่าเวลาอ่านเป็นยังไง โปรแกรมไม่มีใน Market แต่ลงตาม Instruction แล้วก็เวิร์คดี
และแน่นอนยังมีพวกตัวอ่าน PDF อีกหลายตัว แต่จากการทดสอบ พบว่าพวก ไฟล์ฟอร์แมตสำหรับ Ebook โดยเฉพาะจะจัดการตัดคำดีกว่า PDF ที่จะต้องมาย่อ ขยาย เรื่อยๆให้รำคาญ เรียกว่าถ้าเนื้อความในหนังสือส่วนใหญ่เป็น Text ก็หาไฟล์ที่เป็น Ebook format โดยเฉพาะมาจะดีกว่า

ปัญหาหลักยังคงเป็นเรื่องของ DRM ผมพลาดไปซื้อหนังสือมาเล่มหนึ่งจาก cyberread.com เป็น Format EPUB เพราะคิดว่าเป็นฟอร์แมตที่น่าจะดูดีที่สุด (iPad ใช้ด้วย :P ) ทำให้พบความจริงหลายๆอย่าง นั่นคือ
  • ถ้าซื้อฟอร์แมตไหนไปแล้ว เปลี่ยนฟอร์แมตไม่ได้ คืนเงินได้อย่างเดียว เพราะระบบการซื้อ Ebook จะผูกติดกับระบบบัตรเครดิต ไม่แน่ใจว่าไฟล์ Ebook แต่ละไฟล์ที่ได้มา Encrypt ด้วยข้อมุลบางอย่างของบัตรเครดิตด้วยหรือเปล่า
  • ถ้าซื้อ Epub จากเว็บทั่วไป ต้องอ่าน (โหลดไฟล์) ด้วย Adobe Digital Edition ซึ่งแปลว่าแนวโน้มสูงที่จะต้องอ่านบนหน้าจอคอมพิวเตอร์! ที่แย่คือ Adobe Digital Edition มีเฉพาะบน Windows.... แต่เดี๋ยวก่อน! ลงใน Wine ได้ครับ เวิร์คดีพอสมควร
  • ถ้าเอาไฟล์ที่ติด DRM ไปเปิดด้วย FBReader จะทำให้ FBReader crash ทันที
  • สุดท้ายต้องไปหาตัว Crack DRM ไฟล์ EPUB มาใช้ ก็จะอ่านด้วย FBReader ได้
สรุปแล้วถ้าหาหนังสือแบบไร้ DRM ไม่ได้ สงสัยต้องซื้อผ่าน eReader.com ลูกเดียว

หวังว่าอีก 2-3 ปี ศึกนี้จะจบ หวังว่าจะจบแบบ MP3 ที่่สุดท้ายก็ขายแบบ no DRM

ไม่งั้นคงต้องหวังให้ Google ทำ Book store + DRM Reader แบบ Multi platform เอ่อ แต่ก็ต้องกลายเป็นทาส Google แทนอยู่ดี

Saturday, February 27, 2010

Xenosaga Episode I

ช่วงนี้ผมขุดเอาเกมส์เก่าบน PS2 มาเล่น หนึ่งในเกมส์ที่ผมอยากเล่นมาตลอดแต่ไม่มีเวลา นั่นก็คือซีรียส์ Xenosaga
Xenosaga เป็นเกมส์ไตรภาคแนว RPG-Adventure-SciFi-Fantasy ซึ่งทำโดยทีมคนที่สร้างเกมส์ Xenogears บน PS ผมเองประทับใจพอสมควรกับเกมส์ Xenogears มาตลอด โดยเฉพาะในส่วนของเนื้อเรื่องและเพลงประกอบ (เพลงประกอบเกมส์นี้ จะชอบโดนเอาไปเป็นเพลงแบ็กกราวนด์ของพวก Spot สารคดีเกี่ยวกับในหลวงในวิทยุ Radio Thailand News เห็นได้ชัดถึงความอลังการของเพลง) แต่เพราะว่า Xenogears จัดจำหน่ายโดย Square (ปัจจุบันคือ Square-Enix) ในขณะที่ Xenosaga จัดจำหน่ายโดย Namco (ตอนนี้เป็น Bandai-Namco ไปแล้ว คือทีมพัฒนาเดิมได้แยกตัวจาก Square ไปตั้งบริษัท Monolith-soft และทำเกมส์ให้ Namco) Xenosaga เลยกลายเป็นเกมส์ที่อารมณ์เดียวกับ Xenogears แต่ว่าอยู่บนเนื้อเรื่องกันคนละจักรวาลกัน และมี Element หลายๆอย่างในเกมส์ เช่น Zohar ที่ถูกนำมาใช้ใหม่ ตอนที่เขียนอยู่นี้ผมเล่น Xenosaga Episode I จบแล้ว และกำลังเล่น Episode II เลยอยากจะจดเก็บไว้หน่อยว่ารู้สึกยังไงบ้าง สำหรับเนื้อเรื่องคงไม่ต้อง Note ไว้ เพราะ หาอ่านได้จาก Xenosaga Wiki อยู่แล้ว
  • เกมส์ให้อารมณ์แบบ Star-Trek ผสมคุจากุ (!?? ไม่รู้จะเทียบยังไง ผมไม่ค่อยอ่านนิยาย Scifi รู้จักแค่นี้) คือ Element ในส่วนของ Sci-fi นั้นผมว่าทำได้ดีทีเดียว ในขณะเดียวกันก็มีพวกเรื่องลึกลับ เหนือธรรมชาติมาปนเยอะพอสมควร
  • Element ที่น่าสนใจในเกมส์
    • U.M.N. (Unus Mundus Netweork) - วิธีการสื่อสารทางไกล ใช้ทั้งในการสื่อสาร รวมไปถึงการ "Gate Jump" ง่ายๆก็คือการวาร์ป วอร์ปไดรว์ โฟลด์ หรืออะไรก็แล้วแต่ที่
      จะเรียกในเรื่องอื่นๆ ไอเดียของ Xenosaga จะบอกว่า U.M.N. นั้นมีองค์กรคอยควบคุมเส้นทางอยู่ น่าจะคล้ายๆกับพวกกรมทางหลวงอะไรประมาณนั้น เวลาจะ Gate Jump หรืออะไรต้องขออณุญาตก่อน
    • GNOSIS - เป็น Alien ปริศนาที่ไปมากันเป็นกลุ่ม ดูเหมือนจะไม่มีความฉลาด แต่ที่สำคัญคือมันอาศัยอยู่ใน Space-Time คนละอันกับที่มนุษย์อยู่ ทำให้มนุษย์ไม่สามารถทำร้ายได้ คือเหมือนสู้กับวิญญาณ โจมตีแล้วทะลุผ่านไปเฉยๆ แต่ GNOSIS สามารถทำร้ายมนุษย์ได้ (ทำเหมือนสิงคน คือถ้าโดนจับแล้วเหมือนจะโดนดูดพลังชีวิต) คนที่โดนจับแต่ไม่ตาย อาจจะกลายเป็น GNOSIS ได้ ซึ่งเป็นปมที่เรื่องทิ้งไว้อีกอย่าง เพราะตัวเอกเคยโดนจับแล้ว แต่กลับไม่กลายเป็น GNOSIS
    • Realian - คิดว่า Realian คืออารมณ์ประมาณ Coordinator ใน Gundam Seed หรือเป็นพวก Bio-made Android หรือพวกมนุษย์ Cloning อะไรทำนองนั้น ในยุคของ Episode I นี่ Realian ถูกใช้งานกันอย่างแพร่หลายมาก Realian ส่วนใหญ่จะถูกผลิตออกมาเพื่องานเฉพาะทาง เช่น การต่อสู้ การสื่อสาร ในยุคของ Episode I นี้ Realian จะมีสิทธิ์เหมือนมนุษย์ ซึ่งเป็นผลพวงจากสงครามที่เกิดขึ้นก่อน Timeline ของ Episode I นี้ ซึ่งดูเหมือนจะเป็นการปฏิวัติของพวก Realian ต่อมนุษย์
    • Hilbert Effect - เป็นปรากฎการณ์ที่จะทำให้ GNOSIS มาอยู่ใน Space-Time เดียวกับมนุษย์ ง่ายๆคือสู้กันได้ มีแต่ Realian รุ่น 100 และ KOS-MOS ที่สร้างปรากฎการณ์นี้ได้ KOS-MOS สามารถสร้างปรากฎการณ์นี้ได้ในวงกว้างขนาดทั้งกองทัพ
    • Android (KOS-MOS) - ตัวเอกอีกคนของเรื่องซึ่งเป็น Man-made Android น่าตกใจว่า Timeline ของเรื่องที่เกิด 4000 ปีหลังจากปี ค.ศ. 2000 แต่เทคโนโลยีการสร้าง Android แบบเหมือนคนจริงกลับยังไม่ก้าวหน้ามากนัก เข้าใจว่าเพราะมี Realian ใช้แทนแล้ว (น่าจะอารมณ์เดียวกับ Data ใน Star Trek Next Gen) KOS-MOS เป็น Android ที่บริษัท Vector สร้างขึ้นเพื่อเป็นอาวุธต่อต้าน GNOSIS โดยเฉพาะ
  • การเล่าเรื่องของเกมส์ทำได้ดีมาก ฉาก movie หลายๆฉากผมดูแล้วตื่นเต้นเหมือนดู Anime ดีๆจริงๆ (ทั้งๆที่ภาพห่วยพอดู ต้องเห็นใจเกมส์เก่าเกือบ 10 ปี)
  • ใน Episode I นี้พวกเรื่องลึกลับยังดูไม่เข้ากับเนื้อหาเป็นเนื้อเดียวกันมากนัก คิดว่าคงค่อยๆคลายปมมากขึ้นเรื่อยๆ
  • ผมชอบตอนที่ตัวเอก (Shion) บอกว่า "I understand any of this... เพราะว่าตูก็ไม่เข้าใจเหมือนกันเฟ้ย! เป็นจุดที่แสดงชัดว่าคนแต่งเรื่องไม่พยายามยัดเยียดความเข้าใจแบบแปลกๆ ที่การ์ตูนญี่ปุ่นหลังๆชอบยัดๆมาให้คนดู (นึกภาพ Evangelion) แบบว่างงว่ะ แต่เอาเหอะ อย่างน้อยตัวละครในเรื่องมันยังพูดแบบนี้ ก็หวังว่าสุดท้ายมันจะคลี่ปมให้รู้เรื่องจริงๆ
  • เกมส์แต่ละเกมส์จะมี Element ของเนื้อเรื่อง กับ Element ของตัวเกมส์ ซึ่งบางทีเหตุผลจะขัดกัน (เช่น จบดันเจี้ยนต้องมีบอสขวางเสมอ หรือไอเทมทำไมถึงได้แชร์กับระหว่าง Party ที่อยู่กันคนละที่?) ถ้าเป็นอารมณ์การ์ตูน Element พวกนี้จะต้องมีคำอธิบายเสมอ เช่น จักระ เน็น คอสโมแต่ในเกมส์จะเหมือนละไว้ในฐานที่เข้าใจ ว่าทำไมตัวละครใช้เวทย์ได้ ทำไมถึง Summon เรียกหุ่นยนต์ยักษ์แนว Yuusha ออกมาได้ ผมคิดว่า Episode I แยกส่วนของตรงนี้ออกจากกันได้ดีพอสมควร ในขณะที่ก็ไม่ทำให้ Gameplay จืดชืดเกินไป
  • ตัวเกมส์เอาวิทยาศาสตร์เป็น Background ของสิ่งที่ดูเป็นไสยศาสตร์ พอจะมีเหตุผลทางวิทยาศาสตร์ประกอบกล้อมแกล้มได้เสมอ แต่ช่วงหลังๆของเกมส์ ดูตัวละครมันเริ่มยิงแสงๆสู้กันใหญ่ หวังว่าจะมีเหตุผลประกอบ ที่ไม่ใช่แบบว่าการใช้เวทย์ยิงแสงใส่กันมันเรื่องปกตินะ

Friday, January 08, 2010

Complete guide สำหรับการ Convert หนัง HD ทีเป็น MKV มาเล่นบน PS3 พร้อมมี Subtitle ไทย

ขอจดทิ้งไว้จะได้ไม่ลืม มันลืมๆรายละเอียดทุกทีเลยเวลาจะทำ อันนี้เป็นวิธีการที่ทำแล้วสำเร็จบน Ubuntu Linux 9.10 (Karmic Koala) แต่จริงๆจะทำบน Windows ก็ได้ (ง่ายกว่าด้วย) โดยเอาหนังวางไว้บน External HDD อะไรก็ได้ที่ใหญ่พอ

อันนี้เป็นวิธี Convert หนัง HD ใน Format MKV (H264+DTS|AC3) ให้เป็น Format ที่เล่นได้บน PS3 พร้อม Subtitle ภาษาไทย

สั้นๆก่อน จริงๆแล้วการเล่นหนัง HDบน PS3 มันมี 2 ทาง ทางแรกคือไฟล์ MP4 ซึ่งพวก Anime Fansub จะชอบแจกแบบนั้น MP4 ใช้ได้ดีและมีซับไตเติ้ลแยกได้ (ไม่แน่ใจว่าภาษาไทยเวิร์คหรือเปล่านะ) แต่ปัญหาหลักคือไฟล์ MP4 มันต้องเป็นไฟล์ๆเดียว ทำให้ไฟล์วีดีโอยาวๆ 2 ชม. จะไม่สามารถเก็บลงบน External HDD ที่เป็น FAT32 (ขนาดไฟล์สูงสุด 4GB) ได้ ซึ่งปกติหนัง 720p ที่เป็น H264 MKV มักจะขนาดประมาณ 6GB ถ้า 1080p ก็ 8GB หรือมากกว่านั้นอีก ทำให้ไม่มีทางเลือก ต้องเล่นด้วยฟอร์แมต AVCHD เท่านั้น เพราะ AVCHD เป็นฟอร์แมตลักษณะเดียวกับ DVD (VIDEO_TS, AUDIO_TS) คือเป็นไฟล์หลายๆไฟล์แยกกัน แต่รวมเป็นวีดีโอเรื่องเดียว ทำให้เราแยกไฟล์เป็นไฟล์ย่อยๆที่เล็กกว่า 4GB ได้ (หวังว่าปัญหานี้คงจะหมดไปเมื่อ exFAT กลายเป็นที่นิยมนะ)

อีกปัญหาของชาวไทยคือ Subtitle ถ้าไม่ติดเรื่อง Subtitle หรือคิดว่าอ่าน Subtitle อังกฤษก็ได้ ก็สบาย ไม่ต้องทำอะไรมาก แต่ถ้าจะอ่าน Subtitle ไทย ทางเลือกจะเริ่มจำกัด อย่างแรกคือจะใช้วิธีแกะ Subtitle จาก Subtitle ที่เป็นรูปภาพนี่ทำไม่ได้ เพราะ OCR Software ของไทยยังไม่ดีพอ เอา OCR ฝรั่งมา Learn ก็ไม่ได้ เพราะภาษาเรามีการตัดคำไม่เหมือนภาษาอังกฤษ ทางเลือกเลยเหลือแค่ ต้องหา Subtitle ดีๆ ใน Format ที่เป็นภาพ ซึ่งส่วนใหญ่ก็จะต้องมาจากตัวหนังของจริง อาจจะมาจาก DVD หรือ Blueray Disc (BD) ก็ได้ หรือบางทีจะมีมือเทพที่มาแปลแบบดีมาก หรือไม่ก็มานั่งพิมพ์บทแปล จากเสียงพากย์ทั้งหมด มาแปลแล้วแจกตามเน็ต ถ้าเป็นอย่างหลังเอามาเป็น Text Subtitle พวก SRT ก็ได้ แหล่งหา Subtitle ดีๆ ก็เช่น 1080ip.com และ thaidvico.com

นิดนึงคือ ตัวไฟล์ MKV นั้น ควรจะที่ Resolution ตรง หรือใกล้เคียงกับ Resolution ที่ต้องการ เช่น 1280x720 หรือ 1980x1080 เพราะว่า PS3 จะไม่ปรับให้ตัวภาพอยู่ตรงกลางจอ ถ้าเกิดว่า Resolution ของภาพไม่พอดี ส่วนใหญ่ความกว้างจะพอดี แต่ความสูงจะน้อยไป เช่น 1980x800 สิ่งที่เกิดคือภาพจะเด้งไปชนขอบบนเสมอ ตรงด้านล่างจะเป็นแถบดำขนาดใหญ่ ถ้าไม่ซีเรียสก็ไม่เป็นไร

โปรแกรมที่ใช้
  1. SmartLabs tsMuxeR - ใช้แยกและรวม Stream ในไฟล์ MKV ให้เป็น Format AVCHD สามารถรวม Subtitle stream แบบ SUP (BD Subtitle) ดาวน์โหลดเวอร์ชัน Windows หรือ Linux ตามสะดวก โปรแกรมเป็นแบบคอมไพล์แล้ว (ไม่ใช่ Open Source) แต่รันได้ปกติบน Karmic
  2. BDSup2Sub - อันนี้ใช้ Convert subtitle ใน Subpicture Format (.idx, .sub) ซึ่งถอดออกมาจาก DVD ให้กลายเป็น .SUP ซึ่งเป็น Format ที่ tsMuxeR support โปรแกรมเป็น Java เพราะฉะนั้นถ้าจะรันบน Ubuntu ต้องลง sun-java6-bin ก่อน (sudo apt-get -y install sun-java6-bin)
  3. iconv - คำสั่ง iconv ไว้ convert character encoding ในกรณีที่ไฟล์เซฟมาเป็น tis-620 (windows-874) ให้กลายเป็น UTF-8 (Linux ส่วนใหญ่จะทำงานเฉพาะกับ UTF-8 ถ้าไม่ใช่นี่จะมีปัญหาร้อยแปด)
  4. สคริปต์ Python เปลี่ยนชื่อไฟล์ที่ผมเขียนเอง เพราะ PS3 AVCHD รับเฉพาะไฟล์ที่ชื่อไฟล์เป็นแบบ Dos 8.3 เท่านั้น ถ้าบน Windows จะมีโปรแกรมชื่อ AVCHDME ใช้แทนกันได้ Content ใน สคริปต์เป็นเช่นนี้


#!/usr/bin/python

import os, re
from optparse import OptionParser

usage = '%prog [options] /path/to/avchd/dir'

opt_parser = OptionParser(usage=usage)
opt_parser.add_option('-d', '--debug', dest='debug', action='store_true', default=False, help = 'debug')

options, args = opt_parser.parse_args()

def dosname(file) :
name_map = [
('index.bdmv', 'INDEX.BDM'),
('MovieObject.bdmv', 'MOVIEOBJ.BDM'),
(re.compile(r'(?P.*)\.clpi', re.IGNORECASE) , '.CPI'),
(re.compile(r'(?P.*)\.m2ts', re.IGNORECASE) , '.MTS'),
(re.compile(r'(?P.*)\.mpls', re.IGNORECASE) , '.MPL'),
]
for src, dst in name_map :
if type(src) == type('') :
if file == src :
return dst
else :
mo = src.match(file)
if mo :
return mo.group('name') + dst
return None

def avchdme(src_path, debug) :
'''Convert file name to AVCHD with Dos short file name style for PS3'''

for ent in os.listdir(src_path) :
full_path = os.path.join(src_path, ent)
if os.path.isdir(full_path) :
avchdme(full_path, debug)
else :
newname = dosname(ent)
if newname :
src = full_path
dst = os.path.join(src_path, newname)
if debug :
print 'renaming %s to %s' % (src, dst)
else :
os.rename(src, dst)

for arg in args :
avchdme(arg, options.debug)

เอาสคริปต์มาเซฟเป็นไฟล์ชื่อ ps3me ที่ไหนก็ได้ (แนะนำ /usr/local/bin) อย่าลืม chmod a+x ด้วยจะได้รันได้ กระบวนการทั้งหมดจะใช้เวลาประมาณ 10-15 นาที แล้วแต่ขนาดไฟล์ ไม่มีการ Re-encode ไฟล์ใหม่จึงไม่เสียเวลามาก เท่าที่ลองดู พบว่าเวลาจะสัมพันธ์กับขนาดไฟล์เป็นหลัก

วิธีการทำ
  • ต่อ External HDD เข้ากับเครื่อง ซึ่งต้อง Format เป็น FAT32 เท่านั้น (ถ้าจะ Format บน Ubuntu ก็ใช้ mkfs.vfat ได้) และสร้าง Directory AVCHD ไว้ที่นอกสุด
  • ไฟล์ต้นฉบับแนะนำให้เก็บไว้บนคอมพิวเตอร์ แต่ไฟล์ปลายทางเราจะให้เขียนลงบน External HDD เลย ถ้าให้ทั้งอ่านเขียนลงบน HDD เดียวกันจะนานมาก
  • ถ้า Subtitle เป็นไฟล์ภาพ (.idx, .sub) ซึ่งจะมาคู่กัน
    • เปิด BDSup2Sub ซึ่งดาวน์โหลดมาเป็นไฟล์ .jar ด้วย Java
    • java -jar BDSup2Sub.jar
    • กด Load Subtitle file .idx หรือ .sub ก็ได้
    • ตรง Convert Resolution เลือก Format ของหนังให้ตรงกับที่ต้องการ (1080p หรือ 720p) โปรแกรมจะปรับขนาดของ Subtitle ให้ด้วย นอกนั้นทิ้งไว้คงเดิม กด OK
    • ตามประสบการณ์ พบว่าต้อง Move subtitle ทั้งหมดเนื่องจากเวลารวมแล้วจะตกขอบ ให้ไปตรง Edit->Move All Captions ตรงแกน X เลือก move to center (ดูเหมือนไม่มีผลอะไร แต่พบว่าบางที Subtitle ไปตกซ้ายสุดของจอจนตกขอบก็มี) ตรงแกน Y เลือก Keep Y Position ก็ได้ ถ้าเอาชัวร์ ให้กด move outside bounds แล้วใส่ Offset Y ไว้ที่ 50 เสร็จแล้วกด Move All
    • ตรง Windows หลัก กดเลือก Output Format เป็น SUP(BD) นอกนั้นทิ้งไว้คงเดิม
    • กด File->Save/Export โปรแกรมจะเซฟไฟล์เป็น .sup ให้ จำ Path เอาไว้
  • ถ้า Subtitle เป็นไฟล์ text (.srt)
    • ลองเปิดไฟล์ด้วย gedit ดู ถ้าพบว่าอ่านไม่ออก จะต้อง Convert ด้วย iconv ก่อน โดย
    • iconv -f tis-620 -t utf-8 -o destinatino_subtitle_file.srt source_subtitle_file.srt
    • ที่เหลือปล่อยให้ tsMuxeR จัดการทั้งหมดเลย
  • เรียกคำสั่ง tsMuxerGUI (./tsMuxerGUI)
  • กด Add ไฟล์ MKV รอสักเล็กน้อย จะ List stream มาให้เราดูว่ามีอะไรบ้าง
  • ถ้าจะ add subtitle ที่เป็น .sup ให้กด add อีกที แล้วเลือกไฟล์ .sup ของเรา ตรง Language เลือกเป็นภาษาไทย (tha พิมพ์ tha ติดกันเลยก็ได้)
  • ตรง Split & Cut ให้เลือก Split by size very แล้วใส่ 4GB
  • ถ้ามี Text Subtitle ให้ไปที่ tab subtitles แล้วเลือก Font บน Ubuntu แนะนำ Norasi ดีกว่า
  • ตรง Vertical Position ให้ติ้กตรง Bottom of Screen แล้วใส่ offset สัก 50 เพื่อจะได้ไม่ตกจอ
  • ตรงกรอบ Output เลือก AVCHD Disk แล้ว Browse directory ปลายทาง โดยเลือก /AVCHD ของ External HDD ไว้
  • กด Start Muxing แล้วรอๆๆ ไม่นานมาก พอเสร็จแล้วจะมี directory BDMV และ Certificate โผล่มาใน /AVCHD
  • เอาสคริปต์ ps3me มารัน โดยสั่ง ps3me /media/Mobile/AVCHD ทีนึง สคริปต์จะเปลี่ยนชื่อไฟล์ให้เป็น Dos 8.3 filename compat
  • เสร็จแล้วอย่าลืม Safe Remove Hardware
ทดสอบโดยการเอา HDD เสียบที่ PS3 ไปตรง Video จะเห็น USB Disk โผล่มา กด O เลือก AVCHD แล้วจะเล่นหนังทันที กดปุ่มสามเหลี่ยม เพื่อเปิด Subtitle (ภาษาไทยจะเป็น Other ตามลำดับที่ใส่ใน tsMuxeR) หรือเปลี่ยน Audio Channel ได้

Wednesday, September 02, 2009

Disable touchpad when USB Mouse connected on Ubuntu (Jaunty)

Do you have problem with Synaptics touchpad Palm detection? Do you accidentally touch the touchpad while typing? On Windows Vista, there is an option to disable touchpad when USB Mouse connected, but how to do that on Ubuntu? Here's how I 'properly' did it on my Ubuntu 9.04 (Jaunty).
  • Create a Dbus signal handler script using Python. Here's the script
#!/usr/bin/python

global DeviceName, AddAction, RemoveAction, bus, hal_manager

#DeviceName = 'usb_device_15ca_c3_noserial_if0_logicaldev_input'
DevicePattern = r'usb_device.*_input'
DeviceCap = 'input.mouse'
AddAction = '/usr/bin/gconftool --set --type=bool /desktop/gnome/peripherals/mouse/touchpad_enabled false'
RemoveAction = '/usr/bin/gconftool --set --type=bool /desktop/gnome/peripherals/mouse/touchpad_enabled true'

import dbus # needed to do anything
import dbus.decorators # needed to receive messages
import dbus.glib # needed to receive messages
import gobject # needed to loop & monitor
import os # needed to
import re, time

DeviceRe = re.compile(DevicePattern, re.IGNORECASE | re.DOTALL)

#@dbus.decorators.explicitly_pass_message
def add_device(*args, **keywords):
Path = args[0].split('/')
device_obj = bus.get_object('org.freedesktop.Hal', args[0])
device = dbus.Interface(device_obj, dbus_interface = "org.freedesktop.Hal.Device")

cap = device.QueryCapability(DeviceCap)

if cap and DeviceRe.match(Path[-1]) :
os.system(AddAction)

#@dbus.decorators.explicitly_pass_message
def remove_device(*args, **keywords):
Path = args[0].split('/')
try :
device_obj = bus.get_object('org.freedesktop.Hal', args[0])
device = dbus.Interface(device_obj, dbus_interface = "org.freedesktop.Hal.Device")
cap = device.QueryCapability(DeviceCap)
except :
# assume true, since device might be already removed
cap = True

if cap and DeviceRe.match(Path[-1]) : # Device found
os.system(RemoveAction)

bus = dbus.SystemBus() # connect to system bus
hal_manager_obj = bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
hal_manager = dbus.Interface(hal_manager_obj, 'org.freedesktop.Hal.Manager')

# Add listeners for all devices being added or removed
bus.add_signal_receiver(add_device, 'DeviceAdded', 'org.freedesktop.Hal.Manager',
'org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')
bus.add_signal_receiver(remove_device, 'DeviceRemoved', 'org.freedesktop.Hal.Manager',
'org.freedesktop.Hal', '/org/freedesktop/Hal/Manager')

# Run remove action once to enable touchpad
os.system(RemoveAction)
time.sleep(1)

# Find mouse first
udis = hal_manager.FindDeviceByCapability('input.mouse')
for udi in udis :
Path = udi.split('/')
if DeviceRe.match(Path[-1]) : # Check if this is our prefer mouse
os.system(AddAction)
break # no need to keep looking

# monitor
loop = gobject.MainLoop()
loop.run()
  • If you wonder how I got the HAL path of USB mouse, try connecting your mouse and do "lshal", look for "Mouse" and see how your path looks like. Change the path properly if the default one is not match.
  • Add the script to run when log-in by going to System->Start up Applications
  • Log-out and re-Log-in again. That's it.
Another way to do this is to handle it in UDEV. However, I found that GNOME will always try to enable it back that way. Besides, UDEV is run by root, but touchpad setting is per-user. Disabling Touchpad permanently (in Mouse setting) and use synclient to control touchpad is another way to go.

Saturday, August 01, 2009

View a movie on PS3 with decent Subtitle

Most of the method I found when I search for "AVCHD Subtitle .sub" which point me to either mkv2vob or tsMuxer. Most of them refer to text base subtitle (.srt) file which is good for English base subtitle. But for me I'm Thai. If possible, I would love to have the method that works for picture-base Thai subtitle. Don't ask why I am not converting this file to text base subtitle, there is no free good Thai OCR available to do that (yet).

And at last I found it. With the following toolchain you can create an AVCHD content to be played on PS3 with subtitle on/off capability, using picture-base subtitle taken from Bluray disc!
  • BDSup2Sub - Use this tool to convert .sub and .idx distributed in the Internet back to PGS .sup file (BD subtitle). Don't forget to change the resolution. I think it should be possible too to take this from a BD movie directly (but I rarely found anyone distribute subtitle file in .sup format, since .sub works well computer-base player like VLC or Media Player Classic).
  • tsMuxer - As with normal AVCHD creation, use tsMuxer to mux MKV video and audio stream, then select add and add .sup subtitle file created above. If you have a compatible MKV (H264+(AC3 or DTS)), the conversion takes only about 5-10 minutes. I would recommend writing directly to your external hard drive where you will use to plug to PS3, since speed here depend mostly on hard drive speed.
  • AVCHDMe - After the the creation of AVCHD, use AVCHDMe to make sure that the created AVCHD is playable on PS3. Mostly this only concern 8.3 file name, so I guess just renaming the file manually may work.
With this, I can view HD content with decent translation on screen. The only problem I face is that the movie has been pushed back up to top of screen, leaving a blank black panel on the bottom (instead of black panel on both top and bottom). Other than that, everything seems fine.

Tuesday, March 17, 2009

MBPurple 0.2.1 for PortableApps

New Microblog-Purple for Pidgin 2.5 PortableApps, where you can store your Pidgin on thumbdrive and bring it wherever you go, is released! Download it here

Thanks to rottnkorpse for very quick help!

Sunday, March 15, 2009

Adium port for MBPurple released!

Thanks for @jsippel for your hard work. Now the first release of Adium port for #mbpurple is here (base on 0.2.1). Enjoy!

Friday, March 13, 2009

Using PS3 to view MKV with Thai Subtitle

No, the subject is misleading. Actually I found no viable solution for viewing MKV on PS3 properly. Many will thought that I found a way to do this on Linux, but no.

The problem is sound driver. It seems that with latest mplayer-ps combination with spu-medialib, HD MKV can be viewed without any problem. (not to mention that latest mplayer now has improve x264 support + multi-thread decode on ffmpeg!). However, sound driver for any PS3-base Linux support only 2 channels!

The method I am using right now is very simple. I use mkv2vob to translate the MKV file into AVCHD-compatible format on my 80GB USB HDD. mkv2vob also handle size-limit on FAT32 by separating file into small pieces. The only problem lies in subtitle. I want the thai subtitle to be displayed on PS3!

The solution is to use SSA sub, with Thai font specified in SSA, and then use mkv2vob with "load subtitle file" enabled!. I tested this with Eagle Eye and it worked well! Thai subtitle displayed correctly on my TV screen!

The only problem is that movie screen is not in the middle of my TV. I saw on some forum said that this was because the size of original MKV file is not exact 720p or 1080p. Anyway it is a very minor point, at the least we have lots of space for subtitle.

Friday, January 23, 2009

PackageManagerCheatsheet - Naked Ape Wiki

PackageManagerCheatsheet - Naked Ape Wiki

This page include Debian, Red Hat, Sun package management cheatsheet.

Wednesday, December 10, 2008

Faxing in Ubuntu

Today, I have a mission to send out as many fax as possible to attract customer with my laptop and modem. I don't have much choice, Windows used to have good faxing support but that's gone from Vista (fax only available in Vista Business or Ultimate), so Hardy is my only quick choice now (not mentioning other commercial software for Windows).

efax command line works well and can send fax, but I have some problem on converting postscript printed file into tiffg3, because all page is not being converted, some part is being cropped. And I don't want to use command line all the time. Anyways I will document how to do that here.
  • Have your file ready in PS format, easiest way is to use "print to file" option in Print menu of Oo.O.
  • Use ghostscript to convert from PS to Tiffg3, format accepted by efax program
    gs -q -sDEVICE=tiffg3 -dNOPAUSE -sOutputFile=letter-%03d.tiff invitation_cmu.ps < /dev/null
  • You'll get letter-001.tiff - letter-00x.tiff, counted by number of pages in the PS file. Last, use efax to send it out
    efax -t  file...
I search again and found that gfax might be my helper. Anyways, gfax is not working with my mode, although I told gfax to use efax. I don't sure why, but from quick search it seems that some initialize modem command might not compatible with my modem. And there is no debugging or customize initialize command configuration available. So I try efax-gtk next. And efax-gtk works quite well on my Dell XPS M1330 Modem!
  • efax-gtk can send out single/multiple PS file by itself. I just need to change modem initialize command a bit. The key is
    .... M1L3
    Command in the latter part of Modem Init command dialog box. Also, the modem reset command is not working well, so I replaced it with hang-up command
    H
    Note that all command will always being prefixed with "AT", as normal modem command. Ah... I miss the AT command
  • Next, I don't want to just use efax-gtk. I want to print form OO.O directly to efax-gtk!. That can be easily done. First, add a new printer through system-config-printer GUI utility. Select "New Printer" -> "AppSocket/JetDirect" and specify "localhost" and port "9900" in the diaglog box (Yes, efax-gtk is also a network server)
  • Next printer type is "Generic", and model is "Raw Queue", which means we'll just get PS file from printing. After that, name the printer anything meaningfull.
  • Now open efax-gtk and leave it run in tray, then print directly to the new printer. After a while, a efax-gtk dialog will appear to ask for telephone number. It works!

Sunday, December 07, 2008

Office2007 on my hardy




Just want to mention that the instruction here is really working, even with my Office 2007 Thai Edition (btw, licensed to my organization).

(The transparent floating windows in the middle is Compiz effect on gimp whole screenshot acquire)

Saturday, November 22, 2008

20th Centry Boy - Part I

Just finished watching 20th Century Boy movie adaptation from the very famous manga with the same name.

I'm one of the fan of this series. Actually I really admire Mr. Naoki Urasawa in his talent on almost every Manga. I red 20th, Monster, and now still reading Pluto. He's quite amazing.

Anyways, my impression with 20th CB Part I is not good. I think the movie is suit more for manga fan, but for the people never read the manga version, I think they'll get confuse. Note that, this comment came directly from the one watching the movie with me. She never read the manga version. Oh, and she likes Death Note movie adapation, so there's nothing against Japanese movie.

I personally thought that the movie is OK, because I'm the fan. I reconsidered it and thought that the movie miss so many points in manga. Of course this is unavoidable since it is a very long manga. But many good points, that shouldn't be missed out, were missing ( I will try to recall it since the last time I red the manga is around 1 year ago) Some of these were
  1. The movie could not convince audience enough to believe that someone like "Friend" might exist. The "Friend" organization and Yumin party looked so unrealistics. I thought this is partly because the very fast pace of movie.
  2. The appearance of Fukube was so few. I think movie cut out the scene about teacher-ask-for-who-bend-spoons off. So the "Psychic" plot is all blown out.
  3. Otcho appearance was too short and weightless. I didn't see why he should come back to Japan. In manga, he spent a lot of time in Thailand, and there are lots of flashback on him. In movie, I didn't feel anything when he said "I'm Shokun" in the end. But the phrase really move me when I red manga.
  4. The cut is a bit confusing. Flash back and flash forward is not well handle enough.
  5. No explanation about robot at all. No details about the kidnapped professor that made the robot (he didn't appear at all in the movie). I thought most audience in theater feel that the robot is actually a robot (actually it is a big car dressed like robot). Anyways the robot in the movie looks cool enough. I think I understand immediately how they make it "looks like" robot.
  6. In manga, up until the point where movie ends, I feel that "Friend" is brilliant in the way how he cheat and fake to make people belive him. Up to this point, the only real thing was the deadly virus. In movie, this point is not well handle enough. The "Friend seminar" scene made me think that people attended the ceremony were all dumbasses who believe that "Friend" is real thing. And Friend looked unreal and unconvincing.
  7. Nothing much said about the burglar "God". His name never even being mentioned in the movie.
  8. I think the ending should adapt exactly like the ending of part I in manga (the scene where Kanna bring flower to pay respect to Kenji and scene flash to Yumin party come up to get the honourary at UN). I personally think that, in mang, this was being handle this very well. The ending in movie didn't make me feel like "I wanna watch the 2nd part!".
  9. I thik the actor taking the role of "Kenji" is too handsome :P. Anyways this is not that big deal.
  10. I did't think they had to insert the "Otcho in the jail" scene at all. It could be left for 2nd part.
  11. The joint before and after "Kenji-decision-to-go-against-Friend" was not well handled enough. I recall that Kenji lives for many years underground and train himself to go against Friend. He did try to recruit his childhood friend as ally. In movie, it seems as if it happened just after his convenient store was set on fire, if people not paying attention to the date appeared on screen.
  12. The scene where "Friend" confronted with "Kenji" on the robot. "Friend" appearred on the big structure, the same one in Osaka Expo. In movie, there was no explanation about this structure at all. Actually there was no explanation about Expo at all too, just a bit mentioned about Osaka. For foreigner like me, they wouldn't undrestand what really is the structure.
(That's all I can think of for now)

Anyways, if my memory is correct, the song that Kenji sang on the road is "that song", right? I think the song is nice.

Also, I don't sure about this, but I think the theather that I watch intentionally cut out some part of movie to make the length a bit shorter. I notice that from incontinuous dialog in many scenes. For example, the very first scene where manga writer talk with Otcho has been cut a bit. In my watch, after he ask if Otcho is human, he suddenly talking about his manga. There are other points like this in the movie as well. Anyways I think that mostly 5-10 minutes has been cut off. I will wait for DVD version to see if this is true or not. If this is not true, then the editing of this movie has some problem.

Friday, November 21, 2008

Optimal mencoder option for me

Yesterday, I recorded a local Thai drama series, "Jai Rao", at channel 3 since my wife had a meeting so she couldn't watch it.(NOTE: This is for home use only, I didn't mean to distribute it!). The recording is done on my desktop machine using SnaZio (V One Multimedia) DVR tool came with my video capture card. It can record to DVD-compatible MPEG2 stream, the stream can't be converted to DVD easily due to some incompatibility, so I need to convert to some other viewable format.

As said in my last post, the format I chose was DivX, due to its quality and size. Since I have change my laptop, it seems that my laptop is powerfull enough to test drive the quality of encoding.

I think the best optimal option for mencoder is
mencoder -ovc lavc -lavcopts vcodec=mpeg4:vhq:vqmin=2:vqscale=5:threads=2:aspect=4/3 -oac mp3lame -lameopts preset=standard -ffourcc DX50 -edl edl1.txt - o output.avi input.mpg
The vqscale=5 yield best quality and good file size. The total file size is about 1G from 4.2G MPEG2 source file, note that I remove the commercial ad and other TV program at the end of file so the actual source file size would be about 3G.

Note that, actually the default option for lavcopts (vcodec=mpeg4:vhq) is actually sufficient for viewing on most CRT TV already. I believe that the difference is hardly noticable on 21"-29" CRT TV. For best quality file, 2 pass XVID encode will yield much better result but consume lots more time. The encoding is done within about 1 hr for me.

Friday, November 07, 2008

MBPurple 0.2.0 is released

For almost 3 months of development, now Microblog-purple version 0.2.0 is released, with some more features. This is also a major code restructuring to allow more services on MBPurple.
Note that, this new version is INCOMPATIBLE with older version, so you will need to remove and re-add the plug-in to get all new features. You will be prompted a warning message if you still using the old plug-in.
All users are recommended to upgrade. Proceed to MBPurple and download the 0.2.0 now. Instruction for Ubuntu (8.10.1 interpid ibek) is here. Thanks to @sugree for ppa package!

Wednesday, October 08, 2008

เล่น Final Fantasy 12 จบแล้ว

(แก้ไข ใส่เนื้อเรื่องหน่อย กันลืม)
ต้องขอจดไว้ซะหน่อย นี่เป็นเกมส์ที่ผมใช้เวลาเล่นยาวนานที่สุดตั้งแต่เล่นเกมส์มา เวลาในเกมส์บอกว่าประมาณ 120 ชม.กว่าๆแล้ว แต่เวลาจริงๆที่เล่นคือประมาณปีกว่า นับว่าผมเองอึดใช่เล่นเลยทีเดียว ส่วนหนึ่งก็เป็นเพราะผมเองไม่ค่อยมีเวลามาเล่น (แก่แล้ว) แต่การเล่นเกมส์นานขนาดนี้ทำให้ผมได้มุมมองใหม่ๆหลายอย่างจากการเล่นเหมือนกัน

ขอพูดถึงเกมส์นี้ก่อน Final Fantasy 12 เป็นซีรียส์ล่าสุด (ในปัจจุบัน ตอนที่ FF13 ยังไม่ออก) เนื้อเรื่องให้บรรยากาศสไตล์ยุโรปยุคกลางผสม Mecha นิดหน่อยตามสไตล์ของไฟนอล บรรยากาศของเรื่องนี้ออกแนว Fantasy ค่อนข้างมาก ประมาณเดียวกับ FF9 แต่สไตล์ภาพดูขึงขังไม่เหมือน FF9 เนื้อหากล่าวถึงสงครามระหว่างสองมหาอำนาจ อาร์เคเดีย และโรซาเรียน ซึ่งส่งผลกระทบต่อประเทศเล็กๆชื่อว่าดัลมัสก้าซึ่งอยู่ตรงกลางระหว่างสองประเทศพอดี ตัวเอกของเรื่องเป็นเจ้าหญิงแห่งดัลมัสก้าชื่อว่า แอช (Ashe ขอเรียกแบบนี้ตามเสียงพากย์นะ) ซึ่งต้องเสียสามีที่พึ่งแต่งงานกันหมาดๆไปกับสงครามยึดพื้นที่ของอาร์เคเดีย จนเธอต้องกลายเป็นหัวหน้ากลุ่มต่อต้านเพื่อเรียกร้องเอกราชคืนจากอาร์เคเดีย แต่ตัวเรื่องนี้จะเล่าผ่านมุมมองของวาน (Vaan) โจรลักเล็กขโมยน้อยที่อาศัยอยู่ในราบานัสตรา เมืองหลวงเก่าของดัลมัสก้า วานเป็นผู้ได้รับผลกระทบโดยตรงจากสงครามเพราะต้องสูญเสียพี่ชายไปจนต้องกลายมาเป็นโจร ตอนแรกๆคนจะนึกว่าวานเป็นพระเอก คือผมว่ามันก็เหมือนจะเป็นพระเอกอยู่หรอก แต่จริงๆแล้วเนื้อหาของเรื่องนี้มันเน้นที่แอชไม่ใช่วาน เนื่อหาของ FF12 ให้บรรยากาศที่คล้ายคลึงกับ Star wars มาก ทั้งเรื่องสงคราม หัวหน้ากลุ่มต่อต้านที่เป็นผู้หญิงและเจ้าหญิง บรรยากาศของ Mecha ในเรื่อง โดยเฉพาะตอนสุดท้ายเอฟเฟ็กเสียงเหมือนดู Star wars มาก โดยเฉพาะเสียงหายใจในหมวกของพวก Judge ยังกะ Darth Vader อ้อ ขาดไปแค่เจไดเนาะ แต่ฝ่ายอาร์เคเดียมีพวก Judge ก็คงคล้ายๆกับพวก Sith Lord แต่ Judge จริงๆก็เหมือนแม่ทัพเฉยๆน่ะแหละ บางคนก็เป็นคนดี บางคนก็ไม่ดี

แรกๆเนื้อหาของเรื่องจะเน้นไปที่การพยายามกู้เอกราชของแอช วานและเพื่อนสาวเพเนโล (Penelo) บังเอิญต้องไปช่วยเหลือแอช ร่วมกับบัลเธียร์ (Baltheir, ภาคญี่ปุ่นเรียก Balflea) และฟราน (Fran) สลัดอากาศที่บังเอิญต้องมาเกี่ยวข้องด้วย เรื่องเริ่มซับซ้อนเมื่อแอชรู้ว่าจริงๆแล้วอาร์เคเดียจงใจจะไม่เจรจากับดัลมัสก้าและกะบุกยึดอยู่แล้ว โดยจัดฉากว่าทหารคนเก่งของดัลมัสก้าคือ บาช (Basch) ลอบปลงประชนม์กษัตริย์ของดัลมัสก้าเอง ระหว่างการเจรจาสงบศึก เพื่อทำให้ราชบังลังค์ดัลมัสก้าระส่ำระสาย แต่จริงๆแล้วเป็นพี่น้องฝาแฝดของบาช ชื่อโนอา (Noah) ซึ่งอยู่กับฝ่ายอาร์เคเดียเป็นคนจัดฉากตะหาก ไปๆมาๆบาชก็มาเป็นเพื่อน ครบ 6 คนพอดีจัดได้สองกลุ่ม ตรงนี้ผมว่าเป็นจุดด้อยของการเป็นเกมส์ คือพอมีเพื่อนครบทีมแล้ว มันก็จะมีเพื่อนเพิ่มไม่ได้ เพราะจะทำให้สับสนเรื่องการฝึกตัวละคร อัพเลเวลต่างๆ ทำให้เนื้อเรื่องของคนที่จะมาเป็นเพื่อนกลุ่มตัวเอกก็จะตันไป เกมส์นี้เลยมีระบบผู้ช่วย คือเป็นตัวละครประเภทควบคุมไม่ได้ แต่จะมาคอยช่วยตามเนื้อเรื่อง แต่ก็มีได้แค่ทีละคน ตรงนี้สมัย FF4 แก้โดยการยอมให้มีเพื่อนเพียบเลย เปลี่ยนไปมาตามเนื้อเรื่อง แต่ตัวละครก็จะไม่ค่อยต่อเนื่อง บางเกมส์อย่างซุยโคเดนก็เอาเป็นว่ามีเพื่อนได้โคตรเยอะเลย (108 คน เอาคนที่บังคับได้น่าจะราวๆ 40-50 คน) หรือภาคหลังๆของไฟนอลก็จะเป็นกลุ่มใหญ่ประมาณ 6-10 คน ไปเลย แต่ก็คือห้ามตาย เพื่อนไม่มีทางจากไปเด็ดขาด ไม่งั้นต้องมาคิดว่าจะถ่ายทอดเลเวลกับของกันยังไงให้ไม่ขัดเขิน ตรงนี้ผมว่าเป็นโจทย์ของการทำเนื้อเรื่องเกมส์ rpg สไตล์ญี่ปุ่นเหมือนกัน

พอเนื้อเรื่องดำเนินไปเรื่อยๆก็ตามสูตรหนังสงครามแฝงปรัชญญานิดหน่อย ตามสไตล์ญี่ปุ่น ที่จะต้องมีการพูดถึงต้นเหตุของสงคราม หนทางหยุดสงคราม มนุษย์ไม่หยุดฆ่าฟันกันเองหรอก! อะไรพวกนี้ ซึ่งผมรู้สึกว่าพักหลังจะมาเยอะมากตาม anime เพียบไปหมดเลย สำหรับ FF12 แอชซึ่งจริงๆแล้วเป็นเจ้าหญิงที่ดูไม่ค่อยเป็นผู้นำเท่าไหร่ต้องผ่านการทดสอบทางใจหลายด่าน เพราะเธอเองไม่ได้เป็นคนที่อยากได้อำนาจ แต่การกู้เอกราชแน่นอนย่อมทำให้เกิดทั้งคนรักและคนเกลียด

เนื่องเรื่องมาขมวดปมตรงที่ว่าจริงๆแล้วในโลกมีชนเผ่าที่เป็นเหมือนเทพเจ้า เรียกว่าเผ่า อ็อกคูเรียน (Occurian สะกดยังงี้ป่าวหว่าจำบ่ได้) ซึ่งมีวิทยาการก้าวล้ำนำหน้าจัด เป็นคนคอยจัดฉากว่าใครจะได้เป็นคนปกครองโลก โดยเคยทำมาทีแล้วกับบรรพบุรุษของแอช ปรากฎว่าจริงๆแล้วทางตัวร้ายคือเวยน์ (Vayne) เจ้าชายของอาร์เคเดียผู้อยู่เบื้องหลังเหตุการณ์ทั้งหมด มีจุดประสงค์จริงๆคือจะครองโลก เพื่อต่อต้านการอยู๋เบื้องหลังของอ็อกคูเรียนด้วย โดยอาศัยความช่วยเหลือของเวนาท์ (Venat) ซึ่งเป็นเผ่าอ็อกคูเรียนที่ทรยศมา

พอเนื้อเรื่องมาเป็นงี้ก็เลยกลายเป็นว่าการกู้เอกราชสามารถจบได้แบบสมประโยชน์ เพราะทุกคนมีศัตรูคนเดียวกันนั่นเอง เพียงแต่เวยน์เองก็ดูเหมือนจะอยากได้อำนาจด้วย สุดท้ายแอชซึ่งได้รับเลือกจากอ็อกคูเรียนให้ถือครอง Nethicite ซึ่งเป็นศิลาเวทย์มนตร์ที่มีพลังทำลายล้างสูงมาก (ประมาณว่าเป็นนิวเคลียร์ว่างั้น) ตัดสินใจไม่ใช้ Nethicite และยอมทำลายต้นกำเนิดของ Nethicite ทิ้งเพื่อไม่ให้มีอาวุธอันตรายเช่นนี้เหลืออีก และสุดท้ายแอชและผองเพื่อนก็ร่วมกันบุกไปจัดการกับเวยน์ที่เกิดกู่ไม่กลับ อยากจะครองโลกจัด จนชนะและก็เกิดความสงบสุข แอชกลับไปครองดัลมัสก้า ส่วนอาร์เคเดียปกครองต่อโดยลาร์ซ่า (Larsa) ตัวละครที่มาเป็นเพื่อน NPC ช่วงหนึ่ง และเป็นน้องชายของเวยน์ ทุกคนก็แยกย้ายกลับไปดำรงชีวิตอย่างมีความสุข

เนื้อเรื่องตอนท้ายๆตรงเวยน์นี่ผมงงๆนิดหนึ่งว่าทำไมมันจะต้องดันทุรังยึดโลกต่อด้วย ทั้งๆที่แอชเองก็ตัดสินใจหันหลังให้กัลเผ่าอ็อกคูเรียน แต่คล้ายๆกับว่าเวยน์พยายามจะยึดมั่นในสิ่งที่ตัวเองทำมาจนถึงที่สุดก็เท่านั้น อีกส่วนหนึ่งคงเพราะนี่มันเป็นเกมส์ ต้องมีบอสตัวสุดท้าย ถ้าเกมส์จบแบบว่าทุกฝ่ายลงเอยกัน จับมือกัน เย้ จบ ก็คงหมดสนุก (ของเกมส์) เวยน์เลยซวยไปต้องมาเป็นบอสตัวสุดท้าย และบอสตัวสุดท้ายก็ต้องตัวใหญ่ๆ บินได้ ดูแล้วน่าเกรงขามไปพร้อมๆกัน ก็เลยเหมือนกลายเป็นว่าเวยน์โดนมารเข้าสิงยังไงไม่รู้

เนื้อเรื่องไม่ได้พูดถึงอ็อกคูเรียนต่อเลยนอกจากเวนาท์ที่เหมือนจะไปพร้อมกับเวยน์ จริงๆแล้วเผ่านี้ก็ยังอยู่ ก็งงว่าแล้วทำไมไม่ส่งใครมาลงโทษแอชเลยหว่า

ในส่วนของเกมส์นี้โดยรวมๆ นี่เป็นเกมส์ที่ดูเหมือนจะมีชื่อเสียงพอสมควร จากข้อดีอะไรหลายๆอย่างในเกมส์ เช่น ระบบต่อสู้แบบใหม่ (เข้าใจว่ามาจากภาคออนไลน์ FF11) กราฟิกแบบใหม่ๆ เป็นภาคแรกที่ไม่มีการตัดฉากต่อสู้เลย สู้มันบน field เลย ซึ่งผมคิดว่าดีมากๆ แต่จุดที่ผมไม่ชอบก็คือระบบการเก็บไอเทมที่ยากมาก (เพราะของในหีบสมบัติมัน random) หรือการต้องมานั่งเก็บของจากมอนสเตอร์มาสร้างเป็นอาวุธ ซึ่งผมว่าดีนะแต่ของสุดยอดๆนี่เก็บยากมากๆ ประมาณว่าต้องเก็บของหายากชุดนึง เพื่อมาสร้างเป็นของอีกชุด เพื่อเอาไปสร้างเป็นอาวุธ เข้าใจว่าระบบพวกนี้มันส่งมาจากเกมส์ออนไลน์ ที่ออกแบบพวกนี้มาเพื่อดูดเวลาในการเล่นเกมส์จากคนเล่นไป และเนื่องจากผมไม่ค่อยมีเวลาเล่นเกมส์นี้ ระบบพวกนี้เลยกลายเป็นจุดเสียใหญ่ทำให้ผมรู้สึกไม่ค่อยดีกับเกมส์ภาคนี้เลย ยิ่งผมเป็นพวกชอบเล่นจบแบบสมบูรณ์สุดๆ (ตั้งแต่ ff4 มาแล้ว ผมคิดว่าผมเล่นสมบูรณ์มาทุกภาคนะ) ภาคนี้เป็นภาคแรกที่ต้องยอมแพ้ ไม่ได้ไปปราบบอสลับ อาวุธสุดยอด อะไรทั้งหลายแหล่จนหมด เพราะไม่ไหวจริงๆ จริงๆเป็นเพราะเหมือนเจ้า ps2 ทำท่าจะพังๆด้วย ผมเลยรีบๆเล่นจบก่อนเครื่องพัง

สรุปแล้วความรู้สึกที่มีต่อเกมส์นี้ค่อนข้างเฉยๆ ตอนแรกๆดูดีมาก เล่นๆไปแล้วเออ ก็สนุกดีนะ แต่ตอนท้ายๆพอพยายามให้สมบูรณ์แล้วเสียเวลาจัดมาก ในส่วนของเนื้อเรื่อง ช่วงหลังๆของเกมส์ก็ดาวน์ๆลงมา เนื้อเรื่องทั้งหมดดูแล้วเหมือนแค่เป็นส่วนเสี้ยวของมหากาพย์อันยิ่งใหญ่ แต่เนื่องจากมันไม่ได้มีภาคต่อ (จริงๆแล้วมี Revenant wing แต่ดูเหมือนภาคพิเศษมากกว่า) เป็นหลักเป็นแหล่ง ก็เลยเหมือนว่าสิ่งดีๆของมหากาพย์เรื่องนี้กลับไม่ได้รับการถ่ายทอดเท่าที่ควร เนื้อเรื่องของวาน ซึ่งตอนแรกดูเหมือนจะมีส่วนเกี่ยวข้องกับแอช สุดท้ายก็ไม่มีอะไร ก็คือวานกับเพเนโลก็คือเด็กในเมืองธรรมดา บาชซึ่งเหมือนจะมีความหลังก่อนมาเป็นทหารของดัลมัสก้าก็ไม่มีอะไร แทบไม่ได้พูดถึง บัลเธียร์ซึ่งจริงๆเป็นลูกของซิดก็สรุปแล้วคือเป็นลูกของซิด แต่ไม่ชอบพ่อเลยแอบไปพาชนเผ่า Viera หญิง (Fran) มาหนีตามกันไปก็แค่นั้น การถ่ายทอดเรื่องราวความหลังของตัวละครผมว่าค่อนข้างน้อยมาก อ้อ ภาคนี้ตัวละครชื่อซิด (Cid) เป็นฝ่ายผู้ร้ายด้วย เป็นอะไรที่แปลกพอสมควรสำหรับ Final Fantasy

แต่ก็เป็นธรรมดาของเกมส์ rpg อ่ะนะ ผมพบว่าเกือบทุกเกมส์มันจะหลุดๆในส่วนเนื้อเรื่อง เพราะไม่งั้นอาจจะทำให้เกมส์ไม่สนุก แต่ถ้าทำดีๆก็ออกมาดีได้นะ ผมประทับใจกับ FF10 มาก เพราะทำเนื้อเรื่องลงตัว สานกับระบบของเกมส์ได้ดีกว่า หวังว่า FF13 จะออกมาดีเหมือน FF10 นะ

ที่แปลกอีกอย่างคือมนต์อสูร ซึ่งภาคนี้เรียกว่า Esper ภาคนี้มนต์อสูรทั้งหมด มาจากพวกบอสเก่าๆ หรือตัวละครฝ่ายผู้ร้ายของ Final Fantasy เก่าๆทั้งหมด แทนที่จะเป็นซีรียส์ บาฮามูท ลิเวียธาน ฯลฯ เหมือนเดิม ส่วนชื่อพวกมนต์อสูรเก่าๆกลับกลายไปเป็นแค่ชื่อเรือเหาะของฝ่ายอาร์เคเดียไปหมด ตัวอย่างของมนต์อสูรที่ผมจำได้จากภาคเก่าก็เช่น Zeromus (บอสภาค FF4) Exodus (เห็นว่าภาคญี่ปุ่นใช้ชื่อว่าเอ็กซ์เดธ บอส FF5) Chaos (บอส FF9 กับ FF1) ระบบมนต์อสูรผมว่าทำได้ไม่ค่อยดี คือไอเดียดีแล้วที่ให้ออกมาเดินกับคนเลย แล้วก็ attack ธรรมดาได้ ตรงนี้เหมือนๆกับ FF10 แต่ปัญหาคือ คุมการขยับไม่ได้ เป็นเหมือน NPC ไปหมด (ตรงนี้จริงๆนับเป็นฟีเจอร์แบบนึงของเกมส์นี้ด้วย เพราะจงใจให้ผู้เล่นต้องเดาว่าทำยังไง Esper ถึงจะใช้ท่าสุดยอด) ปัญหาคือภาคนี้จะเน้นการต่อสู้แบบรุมมาก (เหมือนเกมส์ออนไลน์) แต่เรียก Esper ออกมาแล้วเพื่อนจะหายหมด เหลือแค่คนเรียกกับตัว Esper เอง ทำให้โดนรุมได้ง่าย แถมเวลาเรียกมาสู้บอสก็คุมท่าสุดยอดไม่ได้ ทำให้เวลาเจอบอสที่เก่งจัดๆ (อัดทีสองทีก็ไปแล้ว) อาจจะหายไปก่อนจะได้ใช้ท่าสุดยอด อันนี้ใน FF10 ก็เป็น แต่ใน FF10 เราควบคุม Aeon ได้เต็มที่ ช่วงหลังๆของเกมส์เลยเหมือนจงใจเรียกมาให้ใช้ท่าสุดยอด (กับกันการโจมตีจากศัตรู) มากกว่า สาเหตุอีกประการคือระบบการใช้เวทย์มนตร์ รวมไปถึงท่าสุดยอดของ Esper ที่ดูเหมือนเกมส์จะกันไว้ให้เวทย์ใหญ่ใช้ได้ทีละคน (รวมศัตรูด้วย) คงเพราะข้อจำกัดว่าไม่งั้นภาพเอฟเฟ็กคงมั่วพิลึก แต่กลายเป็นช่องโหว่ว่าระหว่างที่มีคนใช้ท่าใหญ่ ถ้าเราโจมตีธรรมดาๆจะอัดได้หลายทีเลย การใช้ท่าสุดยอดของ Esper ที่เสียเวลาแถมต้องเสี่ยง ก็เลยเป็นอะไรที่ไม่ค่อยคุ้มเท่าใช้หลายๆคนอัดด้วยอาวุธแรงๆไปเรื่อยๆนัก (จริงๆตรงนี้ FF10 ก็เป็นเหมือนกัน แต่เป็นเฉพาะถ้าขุนตัวละครจนเก่งสุดยอดเพื่อไปปราบบอสลับ ถ้าเล่นตามปกติก็น่าจะไม่เป็นแบบนี้)

ว่าแล้วก็กะจะไปเล่นต่อให้ชนะ Zodiark เอ หรือเอาจนชนะ Omega ดี คงไม่ไหวแน่ แค่นี้ก็ซัดไปร้อยกว่าชม. แล้ว แค่พยายามจะผสมเอาดาบ Tournesol เล่มเดียวก็กินเวลาไปมากโข

สงสัยสุดท้ายก็ไม่ได้เล่นต่อ ว่าแล้วก็เตรียมเล่นอย่างอื่นต่อแทนดีกว่า อ๊ะๆแต่ ps2 จะพังก่อนไหมเนี่ย

Wednesday, September 24, 2008

Windows Vista, Ubuntu Linux, and Media Direct on DELL XPS M1330

My laptop, DELL XPS M1330, was broken two days ago! The machine refused to boot, even the bios screen was not coming up. Thanks to the quick and decent services from Dell, they quickly replace my laptop motherboard the next business day and my laptop is back to work. I think this is the good side of Dell as many suggest, their services. But I wonder why my laptop was broken, although I just purchased it less than a month ago.

Anyways, I just found out that my media direct (small "home" button) stop working. It just goes directly to the same GFXGrub boot screen that I installed for my Ubuntu + Windows dual boot. At first, I thought that this is the doing of replaced motherboard, some internal nvram or something might be changed. So I follow many guides spread in the internet to use "rmbr" command supplied with MediaDirect CD to fix the problem.

The rmbr tool is actually a tool to instruct the machine to boot from a partition when power button is pressed, and boot from another partition when mediadirect button is pressed. The command is like
rmbr DELL 2 4
Where "DELL" is my manufacturer model, 2 is the number of partition for power button, and 4 is number of partition for mediadirect button. I believe what it really does is, modify MBR to boot from partition #2, and put "something" in some place to boot from #4 when mediadirect is pressed. (I think the "something" is actually goes into MBR as well after some experiments below, and also according to many web sites in the internet.)

I expermented a bit with rmbr. It really crashed the whole partition table if the number of partition exceed 4 (aka. use it on non-primary partition). I had to use testdisk to recover my partition. Somehow testdisk recovered the wrong order of my partition, which was because the odd structure of my partition due to MediaDirect partition. But testdisk can also change the type of any partition from logical to primary as well. So now my last partition is MediaDirect although the numbering is 4 (I got 7 partitions).

Because of the lost of partitions, I have to modify my Grub menu.lst, fix Windows using restore DVD supplied with my Notebook (using "Repair" functionality, a small link on the bottom of the screen that show "Install NOW"), then manually fix boot.ini in MediaDirect partition (it was actually FAT32, with partition type set to 0xc to hide it).

After a bit of experments, I found that the culprit is actually GFXGrub. I managed to make everything back to works as it should without grub. However, once GFXGrub was installed, media direct will boot to Grub instead of MediaDirect. So I just add a new menu option to my Grub to boot to MediaDirect. It works now, although not neatly.

I believe that once my laptop can boot to Grub from power button, and boot to MediaDirect directly using mediadirect button. Don't sure if that happened when I use normal Grub, or after I replace it with GFXGrub. Anyways my everydays works are in Vista|Ubuntu, not MediaDirect, so the priority goes to that.