• สินค้า
  • คุณสมบัติ
  • Mod Master
  • ดาวน์โหลด
  • เกม
  • บล็อก
  • การกำหนดราคา

สารกำจัดการติดติดติดติดติดติดต่อ

ผู้แต่ง:skyranger-1ปรับปรุงล่าสุด :2014-05-25 00:02:071.1M258KB

Fallout 3 - Game of the Year Edition สารกำจัดการติดติดติดติดติดติดต่อ-1-ม็อดมาสเตอร์ Lagofast

การแนะนำ Mod

จำเป็น FOSE ปรับปรุงการพูดติดอ่างและ/หรือประสิทธิภาพ
สารกำจัดการติดติดติดติดติดติดติดต่อ
เวอร์ชัน 4.0.7
โดยสกายรันเจอร์-1

เธรดฟอรัม: http://www.bethsoft.com/bgsforums/index.php? โชว์ท็อป=1069833
หน้า TESnexus: http://www.fallout3nexus.com/downloads/file.php? รหัส = 8886

นี่คือปลั๊กอิน FOSE และจะทำงานกับ FOSE 1.2 เบต้า 1 หรือใหม่กว่าเท่านั้น

สิ่งนี้จะใช้งานได้กับ Fallout 3 เวอร์ชัน 1.7 เท่านั้น




0. เนื้อหา:
====================================

0. เนื้อหา
1. ภาพรวม
2. การติดตั้ง
3. ถอนการติดตั้ง
4. การเปลี่ยนแปลงการตั้งค่าทั่วไป
5. การตั้งค่าทั้งหมด
6. ประวัติเวอร์ชัน
7. วิธีการทำงานนี้
8. เครดิต



1. ภาพรวม:


ปลั๊กอินนี้ทำให้ Fallout 3 ไม่ "พูดติดอ่าง" มากนัก และโดยทั่วไปจะรู้สึกราบรื่นหรือทำงานได้ดีขึ้น ช่วยป้องกันหรือบรรเทาปัญหาจำนวนหนึ่งที่เกี่ยวข้องกับการติดอ่างและอัตราเฟรม และลดความถี่ของการขัดข้องที่เกี่ยวข้องกับการติดอ่าง สำหรับรายละเอียดเพิ่มเติม โปรดดูส่วนที่ 7: วิธีการทำงาน

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

นี่คือพอร์ตของ Oblivion Sturtter กำจัด (OSR) เพื่อทำงานสำหรับการตกตะกอน จนถึงตอนนี้ มันไม่ได้ผลเท่ากับสารกำจัดการพูดติดอ่างจากการลืมดั้งเดิม แต่ก็น่าจะช่วยได้บ้าง

สิ่งนี้ควรจะเข้ากันได้กับทุกสิ่ง คำเตือนเดียวคือ mod ที่ตรวจสอบ FPS จะไม่สามารถวัด FPSes นอกช่วงเป้าหมายที่กำหนดโดยปลั๊กอินนี้ได้อย่างแม่นยำ (10 ถึง 30 ตามค่าเริ่มต้น) ในความเป็นจริง แม้แต่ FPSes ที่ใกล้เคียงกับเป้าหมาย FSR ก็อาจจะวัดได้ยาก



2. การติดตั้ง:
====================================

กระบวนการติดตั้งคือ:

1. ก. หากเวอร์ชันของ FSR ที่คุณกำลังติดตั้งมาเป็นไฟล์ .zip เพียงลากโฟลเดอร์ "Data" จาก zip ไปยังโฟลเดอร์ Oblivion ของคุณ

1. ข. หากเวอร์ชันของ FSR ที่คุณกำลังติดตั้งไม่มาเป็นไฟล์ .zip คุณจะต้องวางไฟล์ sr_Fallout_Stutter_Remover.dll ลงในโฟลเดอร์ Fallout\Data\fose\plugins ของคุณ หากคุณไม่มีโฟลเดอร์ดังกล่าว ให้สร้างมัน หากคุณติดตั้ง FSR เวอร์ชันเก่า ให้ลบไฟล์ ini (Data\fose\plugins\sr_Fallout_Stutter_Remover.ini) หากไม่มีไฟล์ FSR ini ที่มีอยู่ FSR จะสร้างไฟล์ ini ใหม่พร้อมการตั้งค่าที่เหมาะสมกับเวอร์ชันของคุณในครั้งต่อไปที่คุณเรียกใช้ Fallout



3. ถอนการติดตั้ง:


เพียงลบไฟล์ sr_Fallout_Stutter_Remover.dll จากโฟลเดอร์ Data\fose\plugins ของคุณ
การย้ายไฟล์นั้นไปยังไดเรกทอรีอื่นก็เพียงพอเช่นกัน



4. การเปลี่ยนแปลงการตั้งค่าทั่วไป
====================================

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

FSR เก็บการตั้งค่าไว้ในไฟล์ Data\fose\plugins\sr_Fallout_Stutter_Remover.ini
หากไฟล์นั้นไม่มีอยู่ เพียงแค่เปิดไฟล์ Fallout โดยติดตั้ง FSR และ FSR จะสร้างไฟล์ใหม่ที่มีการตั้งค่าเริ่มต้นสำหรับ FSR เวอร์ชันของคุณ หากคุณทำอะไรสักอย่างผิดพลาดในการตั้งค่าของคุณหรือต้องการกลับไปที่การตั้งค่าเริ่มต้น เพียงแค่ลบไฟล์ ini นี้และเปิดใช้งานผลลัพธ์

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

การตั้งค่าที่คุณมีแนวโน้มที่จะเปลี่ยนแปลงมากที่สุดคือ:

FPS_Management\MaximumFPS: (ค่าเริ่มต้นคือ 30 พิจารณาเปลี่ยนเป็น 0 หรือค่าอื่น ๆ)
บางคนไม่ต้องการให้อัตราเฟรมของพวกเขาถูกจำกัดเลย คุณสามารถปิดการจำกัด FPS ได้โดยการตั้งค่าเป็น 0 นอกจากนี้ หากอัตราการรีเฟรชหน้าจอของคุณเมื่อเล่นฟอลเอาท์ไม่ถึง 60 เฮิรตซ์ คุณอาจลองเปลี่ยนอัตรานี้เป็นอัตราการรีเฟรชหน้าจอ หรือครึ่งหนึ่งของอัตราการรีเฟรชหน้าจอ หรือหนึ่งในสามของอัตราการรีเฟรชหน้าจอ การตั้งค่านี้จะไม่มีผลหาก Master\bManageFPS ถูกเปลี่ยนเป็น 0

Hashtables\bAllowDynamicResizing: (ค่าเริ่มต้นเป็น 0 พิจารณาเปลี่ยนเป็น 1)
การเปิดใช้งานนี้สามารถปรับปรุงประสิทธิภาพทั่วไป/FPS ได้อย่างมีนัยสำคัญในเกมที่ได้รับการดัดแปลงอย่างหนัก น่าเสียดายที่อาจทำให้เกิดเงื่อนไขการแข่งขันและความโกลาหลทั่วไป โดยเฉพาะอย่างยิ่งเมื่อสคริปต์ที่ใช้คำสั่ง fose บางตัวเรียกใช้ทุกเฟรม ฉันพยายามลดโอกาสของปัญหาให้อยู่ใกล้ศูนย์ แต่... มันอาจจะต้องทำงานมากขึ้น ในขณะเดียวกันฟีเจอร์นี้ค่าเริ่มต้นเป็นปิดใช้งาน การตั้งค่านี้จะไม่มีผลหาก Master\bhookashtables ถูกเปลี่ยนเป็น 0

การปราบปรามส่วนวิกฤต: (พิเศษ)
โดยค่าเริ่มต้น FSR จะระงับส่วนวิกฤตเฉพาะหนึ่งส่วนที่ดูเหมือนว่าผลลัพธ์จะทำงานได้ดีกว่าหากไม่มี มีส่วนวิกฤตที่เกี่ยวข้องอีกส่วนหนึ่งซึ่งผู้ใช้บางคนดูเหมือนจะสามารถระงับได้โดยไม่ก่อให้เกิดปัญหา แต่ผู้ใช้คนอื่น ๆ ประสบกับ ctd ในการเปลี่ยนผ่านภายใน -> ภายนอกหรือปัญหาอื่นๆ เมื่อถูกระงับ สิ่งนั้นทำให้เกิดการปรับปรุงเล็กน้อยในการพูดติดอ่าง ดังนั้นโดยปกติแล้วฉันไม่แนะนำให้ระงับมัน แต่คุณทำได้หากคุณต้องการ เพื่อระงับ ให้ค้นหาบรรทัดที่เขียนว่า "CallerAddress=0x70172A" ในไฟล์ ini ของคุณ และเพิ่มบรรทัดใหม่ที่เขียนว่า "Mode=5" ทันที โปรดทราบว่าคดีมีความสำคัญที่นั่น... มันควรจะเป็น "โหมด" ไม่ใช่ "โหมด" การตั้งค่านี้จะไม่มีผลหากตั้งค่า Master\bHookCriticalSections หรือ CriticalSections\bUseOverrides เป็น 0
หมายเหตุ: ส่วนของ readme ที่อยู่เหนือสิ่งนี้ทันทีที่ถูกตัดออกนั้นมีไว้เพื่อการลืม ไม่ใช่การตกตะกอน มีค่าเทียบเท่าสำหรับการตกตะกอน แต่ฉันยังไม่สามารถค้นหาค่าที่แม่นยำสำหรับมันได้ ในตอนนี้ เพิกเฉยต่อสิ่งนั้น



5. การตั้งค่าทั้งหมด
====================================

FSR เก็บการตั้งค่าไว้ในไฟล์ Data\fose\plugins\sr_Fallout_Stutter_Remover.ini
หากไฟล์นั้นไม่มีอยู่ เพียงแค่เปิดไฟล์ Fallout โดยติดตั้ง FSR และ FSR จะสร้างไฟล์ใหม่ที่มีการตั้งค่าเริ่มต้นสำหรับ FSR เวอร์ชันของคุณ หากคุณทำอะไรสักอย่างผิดพลาดในการตั้งค่าของคุณหรือต้องการกลับสู่การตั้งค่าเริ่มต้น เพียงแค่ลบไฟล์ ini นี้และเปิดใช้งานผลลัพธ์

โปรดทราบว่ารูปแบบของไฟล์ FSR ini เปลี่ยนแปลงระหว่างเวอร์ชันหลักของ FSR - คุณไม่ควรใช้ไฟล์ FSR เวอร์ชัน 1 ini กับ FSR เวอร์ชัน 2 ฯลฯ ใน FSR2 ไฟล์ ini จะถูกจัดระเบียบเป็นส่วนต่างๆ เช่น "SectionName {SettingName=Value}" การตั้งค่าเฉพาะอาจถูกอ้างถึงเป็น SectionName\SettingName เพื่อแยกแยะความแตกต่างจากการตั้งค่าอื่นๆ ที่มีชื่อเดียวกันในส่วนต่างๆ ในการตั้งค่าทั่วไปที่มีชื่อที่เริ่มต้นด้วย "i" คือค่าจำนวนเต็ม (เช่น ตัวเลขที่ไม่มีทศนิยม) การตั้งค่าที่มีชื่อที่เริ่มต้นด้วย "b" คือค่าบูลีน (เช่น 0 หรือ 1) และการตั้งค่าที่ เริ่มต้นด้วย "f" คือตัวเลขที่อาจมีทศนิยม (เช่น 3.14) การตั้งค่าบางอย่างไม่ได้เริ่มต้นด้วยตัวอักษรตัวใดตัวหนึ่ง ในกรณีนี้อาจไม่ชัดเจนว่าค่าประเภทที่เหมาะสมคืออะไร

เหล่านี้คือการตั้งค่าและค่าเริ่มต้นปัจจุบัน (อาจไม่อัปเดต 100%):

ส่วน: มาสเตอร์ {}
ส่วนนี้มีตัวเลือกในการปิดใช้งานระบบย่อยหลักแต่ละระบบของ FSR รวมถึงการตั้งค่าบางอย่างสำหรับสิ่งที่ไม่ได้อยู่ในระบบย่อยใด ๆ ของ FSR

Master\bManageFPS (ค่าเริ่มต้น: 1)
การตั้งค่านี้เป็น 0 จะปิดการใช้งานการจัดการ FPS ทั้งหมด ทำให้การตั้งค่าทุกอย่างในส่วน FPS_Management ไร้ความหมาย

Master\bHookCriticalSections (ค่าเริ่มต้น: 1)
การตั้งค่านี้เป็น 0 จะปิดการใช้งานส่วนวิกฤตทั้งหมด ทำให้การตั้งค่าทุกส่วนในส่วนวิกฤตไร้ความหมาย

Master\bHookLightCriticalSections (ค่าเริ่มต้น: 1)
การตั้งค่าเป็น 0 จะปิดการใช้งานส่วนที่สำคัญของแสงทั้งหมด ทำให้การตั้งค่าทุกส่วนในส่วนที่สำคัญของแสงไร้ความหมาย

Master\bHookHashtables (ค่าเริ่มต้น: 1)
การตั้งค่านี้เป็น 0 จะปิดการใช้งานแฮชตารางทั้งหมด ทำให้การตั้งค่าทุกรายการในส่วนส่วนวิกฤตไร้ความหมาย

Master\bReplaceHeap (ค่าเริ่มต้น: 0)
การตั้งค่านี้เป็น 1 จะเปิดใช้งานการเปลี่ยนฮีป ทำให้การตั้งค่าในส่วนฮีปมีความหมาย

Master\bLogToConsole (ค่าเริ่มต้น: 0)
FSR บันทึกข้อมูลบิตต่างๆ ลงในไฟล์บันทึก การเปลี่ยนการตั้งค่านี้เป็น 1 จะทำให้ FSR พิมพ์ข้อมูลนั้นไปยังคอนโซลด้วย
ไฟล์บันทึกคือ sr_Fallout_Stutter_Remover.log ในไดเรกทอรี Fallout มันถูกสร้างหรือเขียนทับทุกครั้งที่ Fallout เรียกใช้โดยติดตั้ง FSR

Master\bFix64Hertz (ค่าเริ่มต้น: 1)
การตั้งค่าเป็น 1 จะแก้ไขปัญหาในการตกตะกอนที่ทำให้เกิด "ไมโครพูดติดอ่าง" ปัญหานี้บางครั้งเรียกว่า "ปัญหา 64 เฮิร์ตซ์" โดยเฉพาะอย่างยิ่งปัญหาคือการกำหนดเวลาตรรกะของเกม Fallout มักจะเกิดขึ้นที่ความละเอียด 1/64 ของวินาที และอัตราการรีเฟรชหน้าจอมักจะอนุญาตให้ Fallout วาด 60 เฟรมต่อวินาทีเมื่อ vsync จำกัด การผสมผสานนี้สร้างความถี่ของจังหวะเมื่ออัตราเฟรมสูงสุด โดย 4 เฟรมต่อวินาทีมีเวลาเกมผ่านสองเท่าของ 56 เฟรม การแก้ไขที่ FSR ใช้บังคับการตกตะกอนเพื่อใช้เวลาที่ความละเอียด 1/1000 ของวินาทีแทนที่จะเป็น 1/64 ของวินาที

Master\bFlushLog (ค่าเริ่มต้น: 1)
สิ่งนี้บอกให้ FSR เขียนข้อความบันทึกใดๆ ลงในไฟล์ทันที แทนที่จะบัฟเฟอร์ในหน่วยความจำ มันสามารถลดประสิทธิภาพได้เล็กน้อยเนื่องจากการเข้าถึงดิสก์จำนวนมากขึ้น แต่ทำให้มีโอกาสมากขึ้นที่ข้อความใดๆ ที่เกี่ยวข้องกับปัญหาที่เกิดขึ้นไม่นานก่อนเกิดความผิดพลาดจะถูกเขียนลงในไฟล์บันทึกได้สำเร็จ

Master\iSchedulingResolution (ค่าเริ่มต้น: 1)
FSR จะขอให้ตัวกำหนดตารางเวลา Windows ทำงานด้วยความละเอียดหลายมิลลิวินาที เมื่อชุดนี้อยู่ที่ 1 โดยทั่วไป FSR และ Fallout จะทำงานได้ดีขึ้น สิ่งนี้สามารถลดอายุการใช้งานแบตเตอรี่ของแล็ปท็อปได้เล็กน้อย

ส่วน: FPS_Management{}
ส่วนนี้ประกอบด้วยการตั้งค่าที่ปรับวิธีที่ FSR จัดการอัตราเฟรมของคุณและการไหลของเวลาเกม

FPS_Management\bAllowSlowMotion (ค่าเริ่มต้น: 1)
การตั้งค่าเป็น 0 จะป้องกันไม่ให้ FSR พยายามแทนที่การไหลปกติของเวลาเกม ในอดีตข้อบกพร่องมี arison จาก FSR ที่ทำเช่นนั้น (ที่น่าอับอายที่สุดคือข้อบกพร่อง -NPCs-drop-dead-on-cell-transitions ที่ใกล้เคียง) แต่เชื่อว่าสิ่งเหล่านี้ได้รับการแก้ไขแล้วในขณะนี้ ในกรณีที่คุณสงสัยว่าอาจมีปัญหา คุณสามารถบังคับปิดการใช้งานการปรับเวลาเกม FSR ทั้งหมดด้วยการตั้งค่านี้ แม้จะมีชื่อ แต่การตั้งค่านี้เป็น 0 จะป้องกันไม่ให้ FSR ส่งต่อเวลาเกมอย่างรวดเร็ว แม้ว่า FSR จะพยายามทำเช่นนั้นภายใต้การตั้งค่าและสถานการณ์ที่หายากมากเท่านั้น

FPS_Management\MaximumFPS (ค่าเริ่มต้น: 30)
นี่คือ FPS สูงสุดที่ FSR จะไม่อนุญาตให้เกิดผลกระทบเกิน โดยทั่วไปฉันตั้งค่าสิ่งนี้เป็นเฟรมเรตสูงพอที่จะไม่สนใจเฟรมพิเศษต่อวินาทีมากนัก โปรดทราบว่า FSR ไม่ได้จัดการกับ "เฟรมต่อวินาที" จริงๆ ที่นี่ แต่แปลงค่านั้นเป็นหมายเลขมิลลิวินาทีต่อเฟรมแทน และพิจารณาแต่ละเฟรมเป็นรายบุคคล หากเฟรมเสร็จสิ้นเร็วเกินไป FSR จะทำให้เธรดหลักหลุดออกมาจนกว่าจำนวนมิลลิวินาทีที่ถูกต้องจะผ่านไป การใส่เธรดหลักของ Fallouts เข้าสู่สลีปสามารถปลดปล่อยทรัพยากรสำหรับการใช้งานโดยเธรดพื้นหลังของ Fallouts หรือสำหรับโปรแกรมอื่นๆ ที่อาจทำงานอยู่ในพื้นหลัง หากไม่มีอะไรต้องการใช้ทรัพยากรเพิ่มเติม CPU และ/หรือ GPU ของคุณจะทำงานเย็นลงและใช้ไฟฟ้าน้อยลง

FPS_Management\MinimumFPS (ค่าเริ่มต้น: 10)
นี่คือ FPS ขั้นต่ำที่ FSR จะไม่อนุญาตให้เกิดผลกระทบต่ำกว่า อย่างไรก็ตาม แทนที่จะจัดการกับวินาทีจริง สิ่งนี้เกี่ยวข้องกับเวลาเกมเป็นวินาที ดังนั้นคุณยังคงสามารถมี FPS ที่ 1 ได้หากคอมพิวเตอร์ของคุณช้าจริงๆ แต่สิ่งนี้จะทำให้เวลาเกมช้าลงเหลือ 10% ของเวลาปกติ เพื่อให้มีเวลาเกมอย่างน้อย 10 เฟรมต่อวินาทีเสมอ ตัวเลขทั้งหมดมีเพียงตัวอย่างเช่น ขึ้นอยู่กับ FPS จริงที่ 1 และการตั้งค่า MinimumFPS ที่ 10 (ค่าเริ่มต้น) โปรดทราบด้วยว่าเช่นเดียวกับ MaximumFPS สิ่งนี้ใช้งานได้จริงบนพื้นฐานเฟรมเดียวที่จัดการกับมิลลิวินาทีต่อเฟรมแทนที่จะเป็นเฟรมต่อวินาที
โดยทั่วไปฉันตั้งค่าสิ่งนี้เป็น FPS ที่ต่ำกว่าที่ฉันพบว่าสามารถเล่นได้จากระยะไกล จุดประสงค์หลักของการตั้งค่านี้คือเพื่อป้องกันไม่ให้ตรรกะของเกมหลุดออกมาบ้าคลั่งเมื่อ FPS ต่ำเกินไป ปัญหาที่ขัดขวางโดยวิธีนี้ ได้แก่ การต่อสู้ที่เป็นไปไม่ได้เพราะศัตรูสามารถวิ่งรอบๆ คุณระหว่างเฟรมได้ การควบคุมที่ยุ่งเหยิง เนื่องจาก Fallout คิดว่าปุ่มโจมตีลงตลอดเฟรมหรือไม่ลงตลอดเฟรม ซึ่งอาจทำให้เกิดการโจมตีด้วยพลัง เกิดขึ้นเมื่อมีวัตถุประสงค์เพื่อโจมตี และปัญหาอื่นๆ ที่คล้ายกันมากมาย

FPS_Management\iSmoothFrames (ค่าเริ่มต้น: 0)
หากตั้งค่าเป็น 0 ตรรกะ "การปรับให้เรียบ" จะไม่ทำอะไรเลย เพื่อเปิดตรรกะการปรับให้เรียบ ลองตั้งค่าสิ่งนี้เป็น 2 อย่างไรก็ตาม รายงานชี้ให้เห็นว่าตรรกะการปรับให้เรียบนั้นไม่คุ้มอะไรมากนัก ตรรกะการปรับให้เรียบมีวัตถุประสงค์เพื่อป้องกันปัญหาต่างๆ ที่เกิดขึ้นจากการพูดติดอ่างและการเปลี่ยนแปลงอย่างรวดเร็วอื่นๆ ในอัตราเฟรม ตรรกะการปรับให้เรียบจะไม่มีผลหาก bAllowSlowMotion เท่ากับ 0

FPS_Management\iSmoothMode (ค่าเริ่มต้น: 0)
นี่ควรจะเป็น 0, 1, 2 หรือ 3 หากเป็น 0 หรือ 1 มันจะเปิดใช้งานตรรกะเพิ่มเติมที่พยายามกรองเหตุการณ์การพูดติดอ่างออกจากการไหลของเวลา ตรรกะนั้นอาจจบลงด้วยปริมาณเกมทั้งหมดที่ผ่านไปไม่เท่ากับปริมาณเวลาจริงที่ผ่านไปหากมี FPS ลดลงอย่างกะทันหัน หากเป็น 2 หรือ 3 ตรรกะเพิ่มเติมนั้นจะถูกปิดใช้งาน ความแตกต่างระหว่าง 0/2 และ 1/3 เป็นปัญหาที่ละเอียดอ่อนมากว่าเฟรมใดจะกระจายเวลาซ้ำระหว่างเฟรมเหล่านั้นอย่างไร

FPS_Management\iSleepExtra (ค่าเริ่มต้น: 2)
FSR จะบังคับให้ Fallout นอนหลับเป็นเวลาหลายมิลลิวินาทีทุกวินาที สิ่งนี้สามารถช่วยปลดปล่อยทรัพยากรสำหรับเธรดพื้นหลังหรือกระบวนการอื่น ๆ หรือลดอุณหภูมิ ประโยชน์หลักคือหากเธรดพื้นหลังบางเธรดกำลังดิ้นรนเพื่อรับทรัพยากรเฉพาะที่เธรดหลักกำลังหมุนอยู่ สิ่งนี้สามารถให้โอกาสในการรับทรัพยากรนั้นเป็นครั้งคราว
หากตั้งค่าเป็น -1 รหัสการจัดการ FSR FPS จะไม่มีวันทำให้ผลลัพธ์ตกต่ำลง - หาก FPS จะเกิน MaximumFPS แล้ว FSR จะเสียเวลาในวงที่ไม่ได้ใช้งาน ไม่แนะนำโหมดนั้นเนื่องจากมีไว้เพื่อวัตถุประสงค์ในการทดสอบเท่านั้น

FPS_Management\bFPSConsoleSPAM (ค่าเริ่มต้น: 0)
สิ่งนี้จะทำให้ FSR บันทึกเวลาที่ต้องใช้ในการทำให้แต่ละเฟรมเสร็จสมบูรณ์ มันจะทำเช่นนั้นหนึ่งครั้งต่อเฟรม สร้างเวลาที่บันทึกไว้จำนวนมาก

FPS_Management\iSchedulingParanoia (ค่าเริ่มต้น: 1)
การตั้งค่านี้เป็นหน่วยมิลลิวินาที มันกำหนดว่าโค้ด MaximumFPS นั้นหวาดระแวงแค่ไหนเกี่ยวกับตัวกำหนดเวลา หากค่าสูง โค้ด MaximumFPS จะไม่มีวันหลับ แต่เสียเวลาในลูปที่ไม่ได้ใช้งานแทน หากค่าคือ 0 รหัส MaximumFPS จะไว้วางใจตัวกำหนดตารางเวลาในการดำเนินการเธรดหลักต่อตามเวลาที่ร้องขอ โดยทั่วไปฉันประนีประนอมที่ 1 เพื่อความหวาดระแวงเล็กน้อยเกี่ยวกับตัวจัดตารางเวลา แต่ยังคงปล่อยให้เวลาว่างส่วนใหญ่ใช้ประโยชน์อย่างสร้างสรรค์

FPS_Management\iHardMaxFrametime (ค่าเริ่มต้น: 200)
นี่เป็นหน่วยมิลลิวินาที พบว่าเมื่อรหัสปรับการไหลของเวลาของฉันใส่เวลาที่ใหญ่เกินไปในเวลาที่ผิด สิ่งแปลกๆ ก็เกิดขึ้น สิ่งเลวร้าย. เช่น NPCs ใกล้เคียงสุ่มตาย การตั้งค่านี้ป้องกันไม่ให้โดยการตั้งค่าสูงสุดสัมบูรณ์เป็นจำนวนมิลลิวินาทีที่ FSR อนุญาตให้ผ่านได้ทันทีในระหว่างกระบวนการปกติของสิ่งต่างๆ โดยปกติแล้วคุณจะกด MinimumFPS ก่อนที่คุณจะถึงขีด จำกัด นี้ แต่ MinimumFPS จะถูกยกเว้นภายใต้บางสถานการณ์เพื่อป้องกันผลข้างเคียง เช่น การเคลื่อนไหวของริมฝีปากที่ไม่ซิงค์กับเสียง ดังนั้นสิ่งนี้จึงทำหน้าที่เป็นระดับ MinimumFPS ระดับที่ 2 ซึ่งเป็น i-real-mean-it ขั้นต่ำ FPS . การตั้งค่าต่ำเกินไปอาจทำให้สิ่งต่างๆ เช่น การเคลื่อนไหวของริมฝีปากไม่ซิงค์ในการสนทนา การตั้งค่าสูงเกินไปอาจอนุญาตให้มีข้อผิดพลาดเช่น npcs-dropping-dead-random ฉันตั้งค่า 200 เป็นการประนีประนอม - ไม่ควรทำให้ริมฝีปากไม่ซิงค์เว้นแต่อัตราเฟรมของคุณจะลดลงเหลือน้อยกว่า 5 ในการสนทนา และหากคุณกำลังเล่นฟอลเอาท์ที่อัตราเฟรมน้อยกว่า 5 คุณต้องการความช่วยเหลืออย่างจริงจัง

ส่วน:ส่วนวิกฤต {}
ส่วนนี้เกี่ยวข้องกับการเปลี่ยนแปลงทั้งหมดที่ FSR ทำกับ Fallouts CRITICAL_SECTIONs ต้องการทราบเกี่ยวกับวัตถุ CRITICAL_SECTION หรือไม่? Fallout ใช้มันเพื่อป้องกันไม่ให้เธรดต่างๆ ฆ่ากันโดยไม่ได้ตั้งใจ ไมโครซอฟต์ให้รหัสสำหรับพวกเขา Fallout ใช้เวอร์ชันที่แตกต่างกันเล็กน้อย ขึ้นอยู่กับเวอร์ชันของ Windows ที่ใช้งานอยู่ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับพวกเขาได้ที่ MSDN

ส่วนวิพากษ์วิจารณ์\bEnableProfiling (ค่าเริ่มต้น: 0)
หากตั้งค่าเป็น 1 fsr จะบันทึกข้อมูลเกี่ยวกับเวลา/ประสิทธิภาพของการดำเนินการส่วนวิกฤตในการตกตะกอน การทำเช่นนั้นทำให้เกิดบทลงโทษเล็กน้อยแต่สำคัญต่อประสิทธิภาพ FSR จะบันทึกข้อมูลในไฟล์บันทึก สิ่งนี้อาจสร้างข้อมูลที่เป็นประโยชน์ว่าทำไมผลกระทบของคุณถึงติดอ่างหรือทำงานช้า ข้อมูลนั้นอาจใช้เพื่อปรับส่วนการแทนที่ของไฟล์ FSR ini หรืออะไรสักอย่าง

ส่วนวิพากษ์วิจารณ์\ข้อความที่เป็นประโยชน์ (ค่าเริ่มต้น: 0)
หากตั้งค่าเป็น 1 fsr จะบันทึกข้อมูลเกี่ยวกับเหตุการณ์เวลา/ประสิทธิภาพบางอย่างของส่วนที่สำคัญ มีค่าใช้จ่ายด้านประสิทธิภาพน้อยมากในการทำเช่นนั้น แต่อาจทำให้ไฟล์บันทึกยุ่งเหยิง ทำให้ยากต่อการค้นหาข้อมูลส่วนที่ไม่สำคัญในนั้น

ส่วนวิพากษ์วิจารณ์\bUseOverrides (ค่าเริ่มต้น: 1)
หากตั้งค่าเป็น 1 fsr จะใช้การตั้งค่าในส่วนการแทนที่ของ ini เพื่อพิจารณาว่าควรทำอะไรกับส่วนวิกฤตเฉพาะ

ส่วนวิพากษ์วิจารณ์\iDefaultMode (ค่าเริ่มต้น: 2)
สิ่งนี้จะกำหนดว่า FSR ทำอะไรกับส่วนสำคัญที่ไม่มีรายการโหมดสำหรับส่วนเหล่านั้นในรายการการแทนที่
1: มันทิ้งส่วนวิกฤตนั้นไว้ในพฤติกรรมปกติใกล้เคียง
2: ปรับส่วนที่สำคัญนั้นเพื่อปรับปรุงความเป็นธรรมด้วยค่าใช้จ่ายของปริมาณงาน สิ่งนี้สามารถป้องกันไม่ให้เธรดหนึ่งหักส่วนวิกฤตมากเกินไป แต่สามารถอัตราสุทธิที่สามารถดำเนินการได้กับส่วนวิกฤตนั้น
3: ความพยายามในการประนีประนอมระหว่างความเป็นธรรมและปริมาณงาน ซึ่งมักจะปรับให้เหมาะสมสำหรับปริมาณงาน แต่เป็นครั้งคราวเปลี่ยนพฤติกรรมเพื่อเพิ่มประสิทธิภาพเพื่อความเป็นธรรม
5: ส่วนวิกฤตนั้นถูกระงับ การปราบปรามส่วนที่สำคัญโดยทั่วไปจะทำให้เกิดการล่มสลาย แต่โดยทั่วไปแล้วจะปรับปรุงประสิทธิภาพ ส่วนที่สำคัญบางส่วนอาจได้รับผลกระทบแตกต่างกัน
6: เธรดหลักได้รับลำดับความสำคัญสำหรับส่วนที่สำคัญนั้น
7: เธรดพื้นหลังนั้นได้รับลำดับความสำคัญสำหรับส่วนที่สำคัญนั้น

ส่วนวิพากษ์วิจารณ์\iDefaultSpin (ค่าเริ่มต้น: 500)
สิ่งนี้ส่งผลให้เธรดจะพยายามเข้าสู่ส่วนที่สำคัญต่อไปนานแค่ไหนก่อนที่จะขอให้ตัวกำหนดตารางเวลานำไปนอนจนกว่าส่วนที่สำคัญนั้นจะพร้อมใช้งาน ในทางทฤษฎีแล้วค่าที่เล็กเกินไปจะส่งผลให้ค่าใช้จ่ายของตัวกำหนดเวลามากเกินไป ในขณะที่ค่าที่ใหญ่เกินไปจะส่งผลให้รอบ CPU สิ้นเปลือง จริงๆ แล้ว 500 เป็นมูลค่าเล็กน้อยที่ฉันคิดว่า ค่าในอุดมคติอาจเพิ่มขึ้นตามจำนวนแกน/เธรดฮาร์ดแวร์ที่คุณมี

ส่วนวิพากษ์วิจารณ์\iStutterLevel (ค่าเริ่มต้น: 4)
พารามิเตอร์นี้ส่งผลให้โหมดส่วนวิกฤต 2 เปลี่ยนพฤติกรรมบ่อยแค่ไหน ดู iDefaultMode สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโหมดส่วนวิกฤต 2 จำนวนที่เล็กกว่าหมายถึงสวิตช์บ่อยครั้ง จำนวนที่ใหญ่กว่าหมายถึงสวิตช์ที่ไม่บ่อย ค่าในอุดมคติน่าจะอยู่ที่ไหนสักแห่งในช่วง 3 ถึง 6

ส่วน: ส่วนวิพากษ์วิจารณ์แสง{}
ส่วนนี้เกี่ยวข้องกับการเปลี่ยนแปลงทั้งหมดที่ FSR ทำกับหมวดหมู่ของวัตถุหลุดออกมาที่มีวัตถุประสงค์คล้ายกับ CRITICAL_SECTIONs แต่มีน้ำหนักเบากว่า

LightCriticalSections\bFullHooks (ค่าเริ่มต้น: 0)
หากตั้งค่าเป็น 1 จะเปิดเบ็ดส่วนวิกฤตแสงเวอร์ชันที่สมบูรณ์ยิ่งขึ้น น่าเสียดายที่เวอร์ชันที่สมบูรณ์กว่ายังคงมีข้อบกพร่อง ดังนั้นเวอร์ชันนี้จึงปิดใช้งานเป็นค่าเริ่มต้นในขณะนี้

LightCriticalSections\bEnableProfiling (ค่าเริ่มต้น: 0)
หากตั้งค่าเป็น 1 fsr จะบันทึกข้อมูลเกี่ยวกับเวลา/ประสิทธิภาพของการดำเนินการส่วนวิกฤตแสงในการตกตะกอน การทำเช่นนั้นทำให้เกิดบทลงโทษเล็กน้อยแต่สำคัญต่อประสิทธิภาพ FSR จะบันทึกข้อมูลในไฟล์บันทึก สิ่งนี้อาจสร้างข้อมูลที่เป็นประโยชน์ว่าทำไมผลกระทบของคุณถึงติดอ่างหรือทำงานช้า ข้อมูลนั้นอาจใช้เพื่อปรับส่วนการแทนที่ของไฟล์ FSR ini หรืออะไรสักอย่าง

LightCriticalSections\bEnableMessages (ค่าเริ่มต้น: 1)
หากตั้งค่าเป็น 1 fsr จะบันทึกข้อมูลเกี่ยวกับเหตุการณ์เวลา/ประสิทธิภาพบางอย่างของส่วนวิกฤตแสง มีค่าใช้จ่ายด้านประสิทธิภาพน้อยมากในการทำเช่นนั้น แต่อาจทำให้ไฟล์บันทึกยุ่งเหยิง ทำให้ยากต่อการค้นหาข้อมูลส่วนที่ไม่สำคัญในนั้น

LightCriticalSections\bUseOverrides (ค่าเริ่มต้น: 1)
หากตั้งค่าเป็น 1 fsr จะใช้การตั้งค่าในส่วนการแทนที่ของ ini เพื่อพิจารณาว่าควรทำอะไรกับส่วนวิกฤตเฉพาะ การแทนที่จะไม่มีผลเว้นแต่จะเปิดใช้งานตะขอ LCS เต็มรูปแบบ (bFullHooks ด้านบน)

LightCriticalSections\iDefaultMode (ค่าเริ่มต้น: 2)
สิ่งนี้กำหนดว่า FSR จะทำอะไรกับส่วนที่สำคัญที่ไม่มีรายการโหมดสำหรับส่วนเหล่านั้นในรายการการแทนที่ มันพยายามใช้รูปแบบการตั้งหมายเลขโหมดที่คล้ายกันกับส่วนที่สำคัญ - ดู CriticalSections\iDefaultMode ด้านบนสำหรับข้อมูลเพิ่มเติม บางโหมดอาจมีพฤติกรรมค่อนข้างแตกต่างกัน ขึ้นอยู่กับว่าเปิดใช้งาน bFullHooks หรือไม่

LightCriticalSections\iDefaultSpin (ค่าเริ่มต้น: 500)
สิ่งนี้กำหนดว่า FSR จะทำอะไรกับส่วนวิกฤตที่สว่างซึ่งไม่มีรายการหมุนสำหรับส่วนเหล่านั้นในรายการการแทนที่ มันพยายามที่จะมีความหมายคล้ายกับส่วนวิกฤต - ดู CriticalSections\iDefaultSpin ด้านบนสำหรับข้อมูลเพิ่มเติม ความหมายของการหมุนอาจแตกต่างกันเล็กน้อยขึ้นอยู่กับว่าเปิดใช้งาน bFullHooks หรือไม่

LightCriticalSections\iStutterLevel (ค่าเริ่มต้น: 4)
พารามิเตอร์นี้ส่งผลต่อความถี่ที่โหมดส่วนวิกฤตแสง 2 เปลี่ยนพฤติกรรม ดู iDefaultMode สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโหมดส่วนวิกฤต 2 จำนวนที่เล็กกว่าหมายถึงสวิตช์บ่อยครั้ง จำนวนที่ใหญ่กว่าหมายถึงสวิตช์ที่ไม่บ่อย ค่าในอุดมคติน่าจะอยู่ที่ไหนสักแห่งในช่วง 3 ถึง 6


ส่วน: กอง {}
สิ่งนี้ยังไม่ได้ผลจริงๆสำหรับการตกตะกอน อย่าใช้.

ส่วน: แฮชตาราง {}
ผลลัพธ์ประกอบด้วยแฮชตารางมากมายสำหรับค้นหาสิ่งต่างๆ พวกเขาใช้การใช้งานแฮชตารางที่แย่มากโดยทั่วไป แต่ปัญหาที่แท้จริงคือพวกเขาไม่เคยปรับขนาดแฮชตารางของตน เมื่อแฮชตารางมากเกินไป ประสิทธิภาพจะลดลง หากแฮชตารางอยู่ใต้ หน่วยความจำเล็กน้อยอาจสูญเปล่า และความสอดคล้องของแคชอาจลดลง น่าเสียดายที่รหัสแฮชตารางส่วนใหญ่มีแนวเรียงอยู่ทั่ว และ FOSE ก็ทำสมมติฐานต่างๆ เกี่ยวกับแฮชตารางเช่นกัน และฉันก็ไม่ชัดเจนเลยว่าโมเดลเธรดที่เกี่ยวข้องควรจะเป็นอย่างไร ดังนั้นการเปลี่ยนแปลงอย่างปลอดภัยจึงค่อนข้างยาก ถึงกระนั้น ฉันมีตะขอแฮชโต๊ะ และพวกมันก็ค่อยๆ ดีขึ้น

Hashtables\bAllowDynamicResizing (ค่าเริ่มต้น: 0)
หากตั้งค่าเป็น 1 fsr จะเพิ่มขนาดของแฮชตารางเมื่อมีขนาดมากเกินไป อย่างไรก็ตาม การกระทำในการปรับขนาดนั้นเต็มไปด้วยปัญหา - มันอาจทำให้เกิดความผิดพลาดหรือความผิดพลาด และวิธีการที่ฉันใช้เพื่อป้องกันไม่ให้ทำเช่นนั้นอาจทำให้เกิดการติดอ่างเล็กน้อยในประสิทธิภาพหรือความผิดพลาดหรือความผิดพลาดอื่นๆ ถึงกระนั้น ณ จุดนี้ ฉันคิดว่ามันอาจจะทำงานได้ดี

Hashtables\bUseOverrides (ค่าเริ่มต้น: 0)
ปัจจุบันไม่มีการแทนที่แฮชตาราง และไวยากรณ์สำหรับการระบุนั้นน่าอึดอัดใจและมีศักยภาพที่จะล้มเหลวอย่างเงียบๆ และทำอย่างอื่นแทนหากคุณป้อนค่าผิด สิ่งนี้จะได้รับการแก้ไขในที่สุด แม้ว่าจะอนุญาตให้ฮูกที่ระบุโดยไฟล์ ini เข้ากับการเริ่มต้นของแฮชตารางที่สำคัญที่สุด เพื่อให้เริ่มต้นด้วยขนาดที่เหมาะสม แทนที่จะต้องปรับขนาดในภายหลัง

Hashtables\bEnableProfiling (ค่าเริ่มต้น: 0)
สิ่งนี้จะตรวจสอบแฮชตารางและบันทึกข้อมูลเกี่ยวกับปริมาณที่เต็มและจำนวนที่เข้าถึงได้

Hashtables\bEnableMessages (ค่าเริ่มต้น: 0)
หากนี่คือ 1 รหัสแฮชตารางอาจบันทึกข้อความเกี่ยวกับสิ่งที่กำลังทำอยู่เป็นครั้งคราว

Hashtables\iHashtableResizeScale1 (ค่าเริ่มต้น: 2)
Hashtables\iHashtableResizeScale2 (ค่าเริ่มต้น: 4)
หาก ballowdynamicrezing คือ 1 ihashtableresizescale1 จะกำหนดระดับการเข้าพักขั้นต่ำที่แฮชตารางจะถูกปรับขนาด และiHashtableResizeScale2 จะกำหนดว่าขนาดใหม่จะใหญ่กว่าเท่าใด ตัวเลขทั้งสองเป็นดัชนีที่นำไปใช้กับ 2 จริง ๆ ดังนั้นการตั้งค่า 3 หมายถึงปัจจัย 8 และการตั้งค่า 5 หมายถึงปัจจัย 32 ในทางทฤษฎีการลด iHashtableResizeScale1 ลงเป็น 1 อาจปรับปรุงประสิทธิภาพได้มากขึ้น เนื่องจากจะเพิ่มขนาดของแฮชตารางมากขึ้น iHashtableResizeScale2 น่าจะถูกตั้งค่าเป็น 1 หรือ 2 มากกว่า iHashtableResizeScale1

Hashtables\iHashtableResizeDelay (ค่าเริ่มต้น: 20)
นี่คือจำนวนมิลลิวินาทีที่ FSR จะหยุดชะงักเมื่อปรับขนาดแฮชตาราง แนวคิดคือแม้ว่าฉันจะไม่สามารถป้องกันเธรดอื่นจากการเข้าถึงแฮชตารางได้ในขณะที่ฉันยุ่งกับมัน แต่ฉันก็หวังว่าจะป้องกันไม่ให้พวกเขา *เริ่ม* เข้าถึงแฮชตารางได้ ดังนั้นฉันจึงล่าช้าไปนานพอที่จะบางทีใครก็ตามที่เข้าถึงแฮชตารางแล้วจะเสร็จสิ้น จากนั้นฉันก็ทำสิ่งของฉัน น่าเสียดายที่ FOSE ไม่ทำงานกับ FOSE เพราะ FOSE ไม่ได้ทำสิ่งเดียวกับที่ Fallout ทำ นอกจากนี้ แม้ว่าจะทำก็ตาม ก็ไม่ได้ใช้ vtables เพื่อทำเช่นนั้น แต่ atm ฉันคิดว่า FOSE อาจเข้าถึงได้จากเธรดหลักเท่านั้น ดังนั้นหากตัวปรับขนาดของฉันทำงานในเธรดหลัก ก็ไม่ต้องกังวลเกี่ยวกับ FOSE อาจจะ.

ส่วน: แทนที่ {}
ส่วนนี้ประกอบด้วยข้อมูลที่บอก FSR ถึงวิธีค้นหาอินสแตนซ์เฉพาะของวัตถุประเภทต่างๆ ที่ FSR รู้จัก และวิธีปฏิบัติต่ออินสแตนซ์เฉพาะเหล่านั้นแตกต่างจากการตั้งค่าเริ่มต้นสำหรับวัตถุประเภทนั้น ปัจจุบันมีเพียงสิ่งที่ระบุไว้ที่นี่เท่านั้นที่เป็นส่วนวิกฤตเฉพาะบางส่วนที่มีพฤติกรรมแตกต่างจากส่วนส่วนใหญ่



6. ประวัติเวอร์ชัน:
====================================

FPS Capper เวอร์ชัน 1:
นี่เป็นที่รู้จักในชื่อ FPS Capper สิ่งที่มันทำคือการจัดการ FPS เวอร์ชันนี้ถูกรวมเข้ากับชุด obse dll ที่แก้ไขแล้ว

FPS Capper เวอร์ชัน 2:
นี่เป็นเวอร์ชันแรกที่มี dll ของตัวเองแยกออกจาก OBSE นี่เป็นที่รู้จักในชื่อ FPS Capper สิ่งที่มันทำคือการจัดการ FPS

เครื่องกำจัดการติดอ่างลืมเวอร์ชัน 3 เบต้า 1:
เวอร์ชันแรกที่มีชื่อว่า Oblivion Stutter Remover บางครั้งก็แช่แข็งเป็นเวลาไม่กี่นาทีที่เมนูหลัก การเคลื่อนไหวของเสียงและใบหน้าของ NPC อาจทำให้เสียงดังในการสนทนาได้
เวอร์ชัน 3 เบต้า 2: การเคลื่อนไหวของเสียงและใบหน้าของ NPC อาจทำให้เสียงดังในการสนทนาได้

สารกำจัดการติดอ่างลืมเวอร์ชัน 3 เบต้า 6:
มีความล่าช้าเป็นเวลานานระหว่างเบต้า 5 และเบต้า 6 ซึ่งเต็มไปด้วยการเปิดตัวอัลฟ่าจำนวนมาก นี่เป็น FSR เวอร์ชันแรกที่ทำงานได้ดีในการลดการพูดติดอ่างสำหรับผู้ใช้ทั่วไป นี่เป็นเพราะคุณสมบัติใหม่: การปรับความยุติธรรมของส่วนที่สำคัญ การปราบปรามส่วนที่สำคัญ และการเปลี่ยนฮีป น่าเสียดายที่การเปลี่ยนฮีปยังคงมีปัญหาสำคัญสำหรับผู้ใช้จำนวนมาก bFix64Hertz ถูกตั้งค่าเป็น 0 ตามค่าเริ่มต้นใน ini ควรเป็น 1 แทน

หมายเหตุ: ไม่เคยมีเวอร์ชันสุดท้ายที่ 3 หากมีความต้องการเพียงพอ ฉันสามารถสร้างซอร์สโค้ดเวอร์ชัน 3 เบต้า 6 โดยมีการแก้ไขบางอย่างได้

สารกำจัดการติดอ่าง Fallout เวอร์ชัน 1 เบต้า 1:
พอร์ตเริ่มต้นของ OSR สู่การตกตะกอน

การลืม/การล่มสลายของการติดอ่าง เวอร์ชัน 4.1.0:
การเปลี่ยนแปลงที่สำคัญ:
1.รองรับทั้งสองผลลัพธ์ไม่ได้ให้ประโยชน์มากนักกับ Fallout 3 แต่ก็ช่วยได้
2.ไฟล์ .ini: รูปแบบไฟล์ ini ที่แตกต่างกันโดยสิ้นเชิง
3.การปรับขนาดตารางแฮช: คุณสมบัติใหม่สำหรับการปรับปรุงประสิทธิภาพ
4.ส่วนวิกฤตและส่วนวิกฤตแสง:สรุปกรณีพิเศษมากมายสำหรับส่วนที่สำคัญ ตอนนี้ปรับได้มากขึ้นจากไฟล์ ini "เบ็ดเต็ม" ของรหัสส่วนวิกฤตแสงยังคงมีข้อผิดพลาด
5.การเปลี่ยนกอง: แก้ไขข้อบกพร่องบางอย่าง แต่ฉันคิดว่ามันยังคงมีปัญหา ยังคงไม่ได้ผลกับการตกตะกอนเลย
6.ชื่อเวอร์ชัน:เวอร์ชันที่เผยแพร่ไปยัง tesnexus ตอนนี้เรียกว่าเวอร์ชันเผยแพร่แทนเวอร์ชันเบต้า เวอร์ชันที่เผยแพร่ไปยังเซิร์ฟเวอร์ ftp ของฉันตอนนี้เรียกว่าเวอร์ชันเบต้าแทนเวอร์ชันอัลฟ่า หลักแรกของหมายเลขเวอร์ชันจะเพิ่มขึ้นเฉพาะเมื่อมีการเปลี่ยนแปลงครั้งใหญ่ในการกำหนดค่าหรือรูปแบบการแจกจ่ายเท่านั้น ตัวเลขหลักที่ 2 ของหมายเลขเวอร์ชันจะเพิ่มขึ้นในแต่ละเวอร์ชันรุ่น ตัวเลขหลักที่ 3 ของหมายเลขเวอร์ชันจะเพิ่มขึ้นครั้งเดียวสำหรับแต่ละเวอร์ชันเบต้า เมื่อใดก็ตามที่มีการเพิ่มตัวเลข ตัวเลขทั้งหมดทางขวาจะถูกรีเซ็ตเป็น 0




7. วิธีการทำงานนี้:


นี่คือปลั๊กอิน fose dll โดยพื้นฐานแล้วมันสับผลกระทบ

7.1: การจัดการ FPS:
รหัสการจัดการ FPS จะตรวจสอบอัตราเฟรมและปรับการไหลของเวลาเกม มันช่วยลดการพูดติดอ่างโดยทำให้ตรรกะของเกมที่ตกตะลึงไม่ข้ามไปข้างหน้าเมื่อมันพูดติดอ่าง อย่างมีประสิทธิภาพ เฟรมที่ใช้เวลานานจะจบลงด้วยการเคลื่อนไหวช้า สิ่งนี้ทำได้โดยการทำให้ Fallout ทำหน้าที่ราวกับว่า iFPSClamp ถูกตั้งค่าเป็น MinimumFPS แต่เฉพาะสำหรับเฟรมที่ช้ากว่า MinimumFPS เท่านั้น ซึ่งอาจปรับปรุงเสถียรภาพได้เช่นกัน นอกจากนี้ยังสามารถกำหนดอัตราเฟรมสูงสุดได้ - บางคนมองว่าผลลัพธ์จะราบรื่นกว่าเมื่อความเร็วเฟรมถูกป้องกันไม่ให้เกินครึ่งหนึ่งของอัตราการรีเฟรช นอกจากนี้ สิ่งนี้ยังช่วยปลดปล่อยทรัพยากรสำหรับเธรดรองที่ตกต่ำ

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

7.2: ส่วนวิกฤต:
ส่วนที่สำคัญคือไพรไทม์การซิงโครไนซ์เธรดที่ microsoft จัดเตรียมไว้ซึ่ง Fallout ใช้ภายในเพื่อให้แน่ใจว่าเธรดไม่เสียหายซึ่งกันและกันโดยบังเอิญ FSR โดยค่าเริ่มต้นทำให้ส่วนที่สำคัญที่สุดพยายามเล่นอย่างยุติธรรมแม้จะต้องเสียค่าใช้จ่ายของปริมาณงาน ทำให้แน่ใจว่าไม่มีเธรดใดที่มีทรัพยากรที่เธรดอื่นๆ ต้องการ อย่างไรก็ตาม ส่วนวิกฤตเฉพาะหนึ่งส่วนจะถูกแทนที่เพื่อใช้วิธีการที่ยุติธรรมน้อยกว่าเล็กน้อย และส่วนวิกฤตเฉพาะอีกส่วนหนึ่งจะถูกระงับเพื่อให้ไม่มีผลเลย และทั้งหมดนี้สามารถกำหนดค่าได้มากจากไฟล์ ini นอกจากนี้หมุนยังถูกแทนที่อีกด้วย

7.3: การเปลี่ยนฮีป:
คุณสมบัตินี้ยังไม่ทำงานอย่างถูกต้องกับ Fallout 3

7.4: แฮชตาราง:
ผลลัพธ์ประกอบด้วยแฮชตารางจำนวนมากสำหรับค้นหาสิ่งต่างๆ พวกเขาใช้การใช้งานแฮชตารางที่แย่มากโดยทั่วไป แต่ปัญหาที่แท้จริงคือพวกเขาไม่เคยปรับขนาดแฮชตารางของตน เมื่อแฮชตารางมากเกินไป ประสิทธิภาพจะลดลง หากแฮชตารางอยู่ใต้น้ำ หน่วยความจำเล็กน้อยอาจสูญเปล่า น่าเสียดายที่รหัสแฮชตารางส่วนใหญ่มีแนวเรียงอยู่ทั่ว และ FOSE ก็ทำสมมติฐานต่างๆ เกี่ยวกับแฮชตารางเช่นกัน และฉันก็ไม่ชัดเจนเลยว่าโมเดลเธรดที่เกี่ยวข้องควรจะเป็นอย่างไร ดังนั้นการเปลี่ยนแปลงอย่างปลอดภัยจึงค่อนข้างยาก

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


====================================
8. เครดิต:
====================================

ปลั๊กอินนี้สร้างโดยฉัน (Christopher Doty-Humphrey)

มันคงเป็นไปไม่ได้หากปราศจากความพยายามมหาศาลของทีม FOSE นอกจากนี้ เอียน แพลตฟอร์มสัน (ผู้ชายทีมโฟส) ยังช่วยฉันผ่านจุดต่างๆ ที่ฉันมีปัญหามากมาย

เธรดดั้งเดิมที่กระตุ้นให้ฉันเริ่มปลั๊กอินนี้เริ่มต้นโดย DeviusCreed

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

ฉันอยากจะขอบคุณ badhair ที่ชี้ฉันไปที่แฮชตารางที่เต็มเกินไปซึ่งเป็นสาเหตุของปัญหาด้านประสิทธิภาพ

เครื่องมือต่อไปนี้ถูกใช้ในการผลิตปลั๊กอินนี้:
การลืม/การตกตะลึง โดย Bethesda
OBSE/FOSE และซอร์สโค้ด OBSE/FOSE
microsoft visual c 2008 ฉบับด่วน
IDA ฟรี (ดีบักเกอร์แบบโต้ตอบ, เวอร์ชันฟรี, เวอร์ชัน 4.9)
เครื่องมือโกง (เวอร์ชัน 5.4)
บวกกับสิ่งที่ชัดเจนเช่น Windows XP, Notepad และ Firefox

ยกเว้น Oblivion/Fallout และ Windows XP ทั้งหมดนี้มีให้บริการฟรี

ฉันยังมีเวิร์กช็อป Hex และ ollydbg แนะนำให้ฉัน แต่ยังไม่ได้ลองเลย
เครื่องมือนี้จัดทำโดยบุคคลที่สาม [bufftool]ความสนใจระดับปกติ

ดาวน์โหลด Mods ทันที

ติดตั้ง LagoFast เริ่มต้น Fallout 3 - Game of the Year Edition และเล่นกับ mod ที่คุณชื่นชอบ