เปลี่ยนอัลกอริทึมการปรับให้เรียบของ Windows ความละเอียดต่ำ


3

ฉันใช้ Windows 8.1 และใช้งานเกมเก่าบน (มันเข้ากันได้อย่างสมบูรณ์) หลายคนใช้ความละเอียด 800x600 หรือ 640x480 แต่ฉันมีจอแสดงผล 1920x1080 ในขณะที่ปรับสเกล Windows ให้การปรับให้เรียบ (อัลกอริทึมเพื่อนบ้านที่ใกล้ที่สุดฉันเดา) แต่มันค่อนข้างแย่ ฉันต้องการใช้วิธีการขั้นสูงเช่น 2xSAI เป็นต้น ถ้าฉันเรียกใช้บางอย่างใน DOS-box ฉันสามารถเลือกอัลกอริธึมการปรับขนาดได้อย่างง่ายดายและฉันต้องการอะไรแบบนี้ใน Windows เนื่องจากฉันมี AMD videocard (r9 380) ฉันจึงพบการปรับปรุงด้านกราฟิกในไดร์เวอร์รวมถึงวิธีการปรับให้เรียบ แต่มันไม่มีผลกับเกมเก่า (ฉันเดาว่าเป็นเพราะพวกเขาไม่ได้ใช้ OpenGL หรือ DirectX) ดังนั้นมีวิธีใดให้เลือกวิธีการปรับให้เรียบที่มีความละเอียดต่ำ

UPD พบการตั้งค่าสถานะ "GPU Scaling" ในไดรเวอร์ AMD การต่อต้านนามแฝงบางอย่างสามารถใช้กับเกม 2D เก่าได้ อย่างไรก็ตามไม่มีตัวเลือกอัลกอริทึมการแก้ไขที่นี่

รายชื่อเกม: Dispel (1999), Horde 2: Citadel (2001), StarCraft: Brood War (1998), Rage of Mages 2: Necromancer (1999), สงครามดั้งเดิม (2002) และ Warlords 3: Darklords Rising (1998)


ฉันเชื่อว่าการปรับขนาด GPU (เช่นฮาร์ดแวร์ videocard) ปิดอยู่ (ซึ่งอาจเป็นวิธีนั้นโดยปริยาย) จอภาพจะทำการปรับมาตราส่วน ไม่ว่าในกรณีใด ๆ windows จะไม่เกี่ยวข้อง ดังนั้นคุณจะต้องแฮ็ก Scaler ในระหว่างเอาต์พุตเกมและอินพุต GPU ของคุณ เนื่องจากเกมส่วนใหญ่สั่งให้ระบบปฏิบัติการเปลี่ยนหน้าจอเป็นความละเอียดคงที่อย่างชัดเจนจึงอาจไม่มีวิธีแก้ปัญหาทั่วทั้งระบบสำหรับเรื่องนี้ อย่างไรก็ตามการแฮ็คเกมบางเกมอาจเป็นไปได้ - แต่ก็ขึ้นอยู่กับว่าวิดีโอเอาต์พุตเหล่านั้นเป็นอย่างไร ตัวอย่างหนึ่งคือsol.gfxile.net/ddhackโปรดอัปเดตคำถามของคุณพร้อมรายชื่อเกมที่คุณต้องการย่อส่วน
แจ็คไวท์

@ JackWhite ฉันจำเป็นต้องเปิดตัว Dispel (1999), Horde 2: Citadel (2001), StarCraft: Brood War (1998), Rage of Mages 2: Necromancer (1999), สงครามดั้งเดิม (2002) และ Warlords 3: Darklords Rising (1998) )
JustLogin

โปรดคลิกeditคำถามของคุณด้านล่างและใส่รายชื่อเกมที่นั่นไม่ใช่ทุกคนยินดีที่จะรับฟังความคิดเห็น น่าเสียดายที่ไม่มีแฮ็กที่เชื่อถือได้ที่ฉันรู้จักสำหรับเกมที่คุณอยู่ในรายการ (และเกมที่คล้ายกันในช่วงปี 2538-2548) แต่ฉันปรับโครงสร้างสิ่งที่ฉันรู้ว่าเป็นคำตอบและโพสต์ไว้ มันอาจจะไม่ช่วยคุณจริง ๆ แต่อย่างน้อยก็อาจให้คำแนะนำว่าทำไมมันถึงเป็นอย่างนั้น
แจ็คไวท์

คำตอบ:


2

อัปเดต 2017+

ตั้งแต่คำตอบถูกโพสต์ Blizzard เขียนใหม่การแสดงผล Starcraft อย่างสมบูรณ์ดังนั้นวิธีการอธิบายไม่ทำงานกับเกมนั้นอีกต่อไป ตอนนี้มันควรจะมีตัวยกขึ้นในตัวและแพ็คพื้นผิว HD "remastered" ใหม่ล่าสุดมีวางจำหน่ายแล้วผ่านร้านพายุหิมะอย่างเป็นทางการ

ฉันตัดสินใจที่จะเก็บข้อความไว้ด้านล่างเพราะอาจเป็นประโยชน์สำหรับการจัดการกับเกมที่เก่ากว่าด้วยเอนจิ้นที่คล้ายกันเช่น Diablo ดั้งเดิมหรือเล่นแผนที่แบบกำหนดเองที่เก่ากว่าซึ่งใช้งานได้กับ v1.16.1 เท่านั้น

คำอธิบาย

ตามค่าเริ่มต้นมอนิเตอร์จะทำการปรับสเกล จอภาพที่แตกต่างกันมี scaler ที่แตกต่างกันอย่างมากมาย - บางตัวค่อนข้างดี, บางอันเจ็บปวดที่จะมอง แต่ไม่มี 2xsai หรือ advmame โดยทั่วไปทีวีที่มีอินพุต VGA จะปรับขนาดได้ดีกว่าจอมอนิเตอร์ทั่วไป

บางคนถึงกับซื้อจอมอนิเตอร์ CRT ที่ใช้แล้ว: โดยทั่วไปแล้วจะให้ภาพที่ดีกว่าเพราะพวกเขาไม่มีพิกเซลทางกายภาพคงที่ - ความละเอียดของพวกเขาคือแบบอะนาล็อก, "ปรับ" พิกเซลใกล้เคียงและเกมเก่า ๆ เกิดขึ้น.

การเปิดใช้งานGPU scaling(ถ้ามี) ทำให้การ์ดแสดงผลทำการปรับขนาดแทนโดยใช้อุปกรณ์ปรับใช้ที่ติดตั้งไว้ในฮาร์ดแวร์ มันไม่สามารถกำหนดค่าได้ แต่อาจรวมถึงการกรองบางอย่างและดังนั้นจึงทำงานได้ดีกว่าจอแสดงผลของคุณ

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

กล่าวอีกนัยหนึ่งคุณต้องแฮ็กสเกลเลอร์ในระหว่างเอาท์พุทเกมและอินพุต GPU ของคุณ

เกมเก่าบางเกมปัจจุบันมีเวอร์ชั่นที่ทำจากพัดลมหรือสิ่งห่อหุ้มที่ทันสมัยซึ่งอาจรองรับ scaler แต่สิ่งเหล่านี้ส่วนใหญ่จะ จำกัด อยู่ที่อีมูเลเตอร์ (เช่น MAME, PCSX, DOSBOX, SCUMMVM) นั่นเป็นเพราะสิ่งเหล่านั้นไม่จำเป็นต้องแฮ็คระหว่าง OS / videocard และเกม - พวกมันเลียนแบบระบบวิดีโอทั้งหมดอย่างไรก็ตามมันง่ายกว่าสำหรับพวกเขาที่จะใช้ตัวกรองกับภาพที่เกิดขึ้น

สำหรับแฮ็กเกมบางเกมได้รับการพัฒนาขึ้นเพื่อแสดงส่วนใหญ่ของโลกเกมบนหน้าจอ (โดยไม่ต้องปรับขนาด) - นี่ไม่ใช่สิ่งที่คุณต้องการ แต่อย่างน้อยเกมดูไม่น่าเกลียดเหมือนตอนที่ปรับขนาด

เกมส่งภาพกราฟฟิกของพวกเขาแตกต่างกัน - บางใช้ Windows API ( GDI ) บางพึ่งพาฮาร์ดแวร์ videocard ในการแสดงผลภาพ 3 มิติ ( ตรง 3D , OpenGL ) อื่น ๆ ยังคง (ส่วนใหญ่ 2D / หลอก 3D) ใช้DirectDrawกับภาพ 2D ส่งออกโดยตรงไปยัง วีดีโอการ์ด. มันอาจมีประโยชน์ที่จะทราบว่าเกมของคุณใช้เพราะอาจมีเครื่องมือหรือโหมดที่แตกต่างกันในการทำงานกับแต่ละเกม

จากสิ่งที่ฉันพบ:

  • Primitive wars ดูเหมือนว่าจะทำงานกับ DirectX / OpenGL
  • Starcraft (before 1.18), Horde 2และWarlords 3อาจจะใช้ DirectDraw
  • ฉันไม่พบข้อมูลใด ๆDispelและRage of Mages 2ด้วยรูปลักษณ์ของพวกเขาฉันเดาว่า DirectDraw ก็เช่นกัน

น่าเสียดายเท่าที่ฉันรู้ไม่มีแฮ็คที่สนับสนุน scaler ขั้นสูงใด ๆ ในเกมใด ๆ ที่ระบุไว้ ตาร์คราฟ (1.16 และด้านล่าง) มีตัวขยายบางรายการด้านล่าง

DDHack

อย่างไรก็ตามมีโปรแกรมที่เรียกว่าDDHackaka DirectDraw Hackที่คุณอาจต้องการลอง อย่างน้อยก็มี scaler สำหรับเกม DirectDraw บางประเภท ไม่ดีเท่า 2xSAI แต่ไม่มีอะไรดีกว่า มันใช้งานได้กับเกมบางเกมเท่านั้นและอาจมีข้อผิดพลาดถึงแม้ว่ามันจะใช้ได้

มันได้ผลเช่นนี้:

  • ดาวน์โหลดและแกะออก : มีหลายรุ่นคุณอาจต้องการที่จะลองเป็นหนึ่ง , สอง , สาม
  • แทนที่ddraw.dllไฟล์ในโฟลเดอร์เกมของคุณด้วยไฟล์ที่อยู่ในการดาวน์โหลด หากคุณไม่พบไฟล์ดังกล่าวเป็นไปได้ว่าไฟล์ดังกล่าวจะไม่ทำงานกับเกมของคุณ อย่าลืมสำรองไฟล์ดั้งเดิม!
  • แก้ไขddhack.cfgไฟล์ด้วยโปรแกรมแก้ไขข้อความธรรมดาเช่น notepad มันมีรายการตัวเลือกคั่นด้วยช่องว่าง คุณอาจสนใจ halfnhalfและbilinearตัวเลือกต่างๆ - พิมพ์หนึ่งในนั้นลงในไฟล์และบันทึก หากคุณได้รับหน้าจอสีดำเมื่อเริ่มเกมให้ลองรวมaltwinposตัวเลือกด้วย
  • เรียกใช้เกม หากใช้งานได้ควรดูอย่างน้อยดีกว่าเล็กน้อย

DxWnd

มีโปรแกรมอื่นที่อาจใช้งานได้กับเกมบางประเภท (DirectDraw และ Direct3D) แต่มีเพียง scaler แบบ bilinear ยังดีกว่าไม่มีฉันคิดว่า

  • ดาวน์โหลดได้ที่นี่แกะและเรียกใช้
  • ไปที่Menu -> Edit -> Addเพื่อสร้างโปรไฟล์เกมใหม่
  • เข้าpathสู่เกมที่คุณต้องการเล่น
  • ยกเลิกการเลือกRun in windowถ้าคุณต้องการรันเกมในโหมดเต็มหน้าจอ
  • ไปที่Video -> Resolutionและตั้งค่าความละเอียดมาตรฐานของจอภาพ
  • ภายใต้การDirectX -> FilteringเลือกFull Bilinear
  • คลิกOkเลือกโปรไฟล์ที่สร้างขึ้นใหม่เลือกMenu -> File -> Runเพื่อเริ่มเกม
  • หากเกมไม่ทำงานให้เลือกMenu -> Edit -> Modifyและลองปรับแต่งพารามิเตอร์อื่น ๆ
  • เอกสารสำหรับ DxWnd อยู่ที่นี่

ในทางทฤษฎีแล้วฉันเดาว่ามันคงไม่ยากเกินกว่าที่จะใช้ scaler เช่น 2xsai ใน DxWnd และซอร์สโค้ดเปิดอยู่ แต่ก็ยังมีงานที่ใครบางคนต้องทำ ...

แฮ็คตาร์คราฟ (v1.16 และต่ำกว่า)

Please read the message on top of this post.

ตัวขยายความละเอียดบางตัว (เช่นดูแผนที่เพิ่มเติม แต่มีความละเอียดดั้งเดิม) สำหรับเกมนี้:

ผู้ที่ควรมีคำแนะนำพื้นฐานรวม ส่วนใหญ่ต้องการ StarCraft เพื่ออัปเดตเป็นเวอร์ชันที่ไม่ใช่มาสเตอร์ใหม่ล่าสุด (1.16.1)

Kludge บ้าทั้งหมด

นี่คือความบ้าคลั่งที่บริสุทธิ์ แต่ในทางทฤษฎีคุณสามารถ:

  • บังคับให้การ์ดวิดีโอของคุณรู้จักจอภาพที่ไม่มีอยู่
  • ทำให้เกมของคุณวาดภาพไปที่หน้าจอ (ซึ่งคุณจะไม่เห็น)
  • รับ Grabber หน้าจอ DirectX (เช่นที่ใช้ในการสตรีมวิดีโอ YouTube) เพื่อสตรีมหน้าจอที่มองไม่เห็นของคุณ
  • เปิดสตรีมวิดีโอด้วยเครื่องเล่นวิดีโอบนหน้าจอปกติ
  • โหลด FFmpeg libmpcodecs' hq2x, 2xsaiหรือตัวกรองคล้ายกัน (ถ้าผู้ที่ได้ทำงานบน Windows OS)
  • ขยายหน้าต่างผู้เล่นเป็นแบบเต็มหน้าจอแล้วแท็บ alt + กับเกมจริงของคุณ

จากนั้นคุณจะมองเป็นเครื่องเล่นวิดีโอสตรีมมิ่งวิดีโอจากเกมของคุณจากคอมพิวเตอร์ของคุณเอง มันจะไม่ทำงานหากเกมต้องการเคอร์เซอร์ของเมาส์มันจะมีความล่าช้าเล็กน้อย

ฉันรู้ว่ามันไร้สาระและไม่เคยลองเลย ฉันไม่แน่ใจว่าจะสามารถใช้งานได้จริงหรือไม่ ถ้ามันเกิดขึ้นมีคนที่คิดว่าวิธีนี้คุ้มค่าที่จะลอง


ขอบคุณสำหรับโปรแกรมนั่นคือสิ่งที่ฉันต้องการ: ไม่ใช่ patch สำหรับเกมโดยเฉพาะ แต่เป็นซอฟต์แวร์ที่จะสกัดเอาท์พุทสตรีมและแก้ไขรูปภาพ (ไม่ว่ามันจะเป็นอะไรอาจจะไม่ใช่เกม) ก่อนที่มันจะไป ไปที่หน้าจอ. DxWnd เป็นโอเพ่นซอร์สดังนั้นฉันคิดว่าฉันสามารถเพิ่ม 2xSAI ลงไปได้
JustLogin

ถ้าใช่ DxWnd อาจใกล้เคียงที่สุดที่คุณจะได้รับ แต่มันก็ยังห่างไกลจากความเป็นสากล มันจะยอดเยี่ยมจริงๆถ้าคุณจัดการกับ scaler ในนั้น!
แจ็คไวท์

แก้ไขเพื่อป้องกันความสับสนตาร์คราฟต์ "ใหม่" ฉันรู้ว่ามันช้าไปหลายปี แต่ก็จำได้ว่าคุณสามารถใช้เบ็ดเสร็จกับนักแต่งเพลงชื่อ DWM.exe ในการเข้าถึงหน้าจอทั้งหมด (การเปลี่ยนแปลงความละเอียดจะต้องถูกขัดขวางด้วยการออกนอกเส้นทางหรือบางสิ่ง) นี่น่าจะเป็นข้อพิสูจน์แนวคิดของ DWM hooking - github.com/steeve/dwmaxx2 - สาธิตที่youtube.com/watch?v=Fpvh16VjrRE
Jack White

DxWnd สนับสนุน scaler แล้วตอนนี้ HQ 2x-4x ในกลุ่มอื่น ๆ
ade.se
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.