วันเสาร์ที่ 25 สิงหาคม พ.ศ. 2555

Native Resolution กับ Intel VGA driver

พอดีว่าที่บ้านมีโน๊ตบุค Fujitsu T4220 ( อยู่เครื่องหนึ่งและมักจะมีมีปัญหาเวลาที่ต้องต่อเข้าจอภาพภายนอกผ่าน VGA พอร์ต ก็คือมันไม่เห็นความละเอียดสูงสุดของจอภาพ (Native Resolution) สำหรับจอที่ผมใช้ต่อก็คือ LG FLATRON W1942T ที่มีความละเอียดสูงสุด 1440x900@60Hz แต่เวลาต่อกับเครื่องโน๊ตบุคที่ใช้กราฟฟิกการ์ด GMAX3100 (GM965) กลับเห็นความละเอียดสูงสุดหลายขนาดคือ  1400x1050,1600x1200 ก็พยายามหาวิธีแก้จนไปเจอกับ Intel GFX driver resolution fix ก็เลยถึงบางอ้อ เป็นวิธีแก้ง่ายๆ คือเพิ่มความละเอียดที่ต้องการไปในไฟล์ Setup Information (.inf) โดยไฟล์นี้อาจมีชื่อต่างกันไป ซึ่งในส่วนของผมเองเป็นไดร์เวอร์จากเวอร์ Fujitsu เองก็ไปแก้ที่ไฟล์ชื่อ kit18814.inf

โดยมีข้อสังเกตคือไฟล์นั้นจะมีบรรทัดที่พิมพ์ว่า
[NonEDIDMode_AddSwSettings]

โดยเปลี่ยนจาก
HKR,, TotalDTDCount, %REG_DWORD%, 0
เป็น
HKR,, TotalDTDCount, %REG_DWORD%, 5

เพื่อเปิดใช้งานความละเอียดหน้าจออันที่ 5 ที่เรากำลังจะกำหนดเอง (4 อันแรกมีการกำนดไว้แล้ว) โดยเปลี่ยนบรรทัดที่ห้าเดิมเป็น ความละเอียด 1440x900@60Hz ก็คือ

HKR,, DTD_5,%REG_BINARY%, 97,29,A0,D0,51,84,20,30,50,98,13,00,00,00,00,00,00,1C,37,01   

จากนั้นจึงติดตั้งไดรเวร์ที่แก้ไขไฟล์แล้ว ลงไปใหม่เราก็จะสามารถเลือกความละเอียดที่เราต้องการได้แล้ว

ปล. ควรรู้ว่าหน้าจอของเราความละเอียดสูงสุดเท่าใด ที่ความถี่เท่าใด ก่อนค่า Hex สำหรับความละเอียดต่างๆ นั้น ให้ลองค้นจาก google เองครับ    

แก้ปัญหา FlashDevelop กรณีลง Java SDK หลายเวอร์ชั่น

พอดีใช้ FlashDevelop แต่ในเครื่อลง Java SDK หลายเวอร์ชั่นทำให้มี JRE หลายเวอร์ชั่นตาม แต่ตัวของ FlexSDK นั้นต้องการ JRE 1.6 ในการคอมไพล์ เมื่อเราสั่งให้ FlashDevelop ทำการคอมไพล์โปรแกรมที่เขียนขึ้น ผลลัพธ์ที่ตามมาก็คือ Error !
วิธีแก้
1. ให้ไปแก้ในไฟล์ flexsdk\bin\jvm.config เปลี่ยน java.home=C:\Program Files\Java\jre6 <-- ตำแหน่งที่ติดตั้ง JRE 1.6

2. จากนั้นแก้ปัญหา
Debugger startup error: System.TypeInitializationException: The type initializer for 'net.sf.jni4net.jni.JNI' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'jvm.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at net.sf.jni4net.jni.JNI.Dll.JNI_GetDefaultJavaVMInitArgs(JavaVMInitArgs* args) at net.sf.jni4net.jni.JNI.Init() at net.sf.jni4net.jni.JNI..cctor() --- End of inner exception stack trace --- at net.sf.jni4net.jni.JNI.CreateJavaVM(JavaVM& jvm, JNIEnv& env, Boolean attachIfExists, String[] options) at net.sf.jni4net.Bridge.CreateJVM() at net.sf.jni4net.Bridge.CreateJVM(BridgeSetup setup) at FlashDebugger.DebuggerManager.Start() [Capturing traces with FDB]

ด้วยการคัดลอกไฟล์ชื่อ msvcr71.dll จาก C:\Program Files\Java\jre6\bin ไปที่โฟลเดอร์ของ FlashDevelop ที่มีไฟล์ FlashDevelop.exe อยู่เป็นอันเสร็จ

ปล.  เท่าที่สังเกต JAVA 1.6 ยังคงนิยมใช้กันมากกว่าเวอร์ชั่นอื่นๆ