Fose diperlukan. Meningkatkan kegagapan dan/atau kinerja.
Penghilang gagap kejatuhan
Versi 4.0.7
Oleh skyranger-1
Thread forum: http://www.bethsoft.com/bgsforums/index.php? Topik pertunjukan = 1069833
Halaman tesnexus: http://www.fallout3nexus.com/downloads/file.php? id = 8886
Ini adalah plugin fose, dan hanya akan berfungsi dengan fose 1.2 beta 1 atau lebih baru.
Ini hanya akan berfungsi dengan fallout 3 versi 1.7.
0. Isi:
====================================
0. Isi
1. Ikhtisar
2. Pemasangan
3. Menyahinstal
4. perubahan pengaturan umum
5. Semua pengaturan
6.riwayat versi
7. bagaimana cara kerjanya
8. Kredit
1. Ikhtisar:
Plugin ini membuat fallout 3 tidak terlalu "gagap", dan umumnya terasa lebih halus atau berkinerja lebih baik. Ini mencegah atau mengurangi sejumlah masalah terkait gagap dan framerate, dan dapat mengurangi frekuensi crash terkait gagap. Untuk detail lebih lanjut, lihat bagian 7: cara kerjanya.
Namun perhatikan bahwa hal ini umumnya tidak akan memperbaiki masalah apa pun pada driver, perangkat keras, atau codec Anda-jika Anda memiliki alasan mendasar untuk kinerja yang buruk, hal ini mungkin tidak akan banyak membantu.
Ini adalah port penghilang gagap (OSR) yang dilupakan untuk bekerja pada kejatuhan. Sejauh ini, ini tidak berfungsi sebaik penghilang gagap lupa asli, tapi seharusnya membantu.
Ini harus kompatibel dengan segalanya. Satu-satunya peringatan adalah mod yang memantau fps tidak akan dapat secara akurat mengukur fpses di luar rentang target yang ditetapkan oleh plugin ini (10 hingga 30 secara default). Pada kenyataannya, bahkan fpses yang hanya mendekati target fsr mungkin sulit diukur.
2. Pemasangan:
====================================
Proses instalasi adalah:
1. a. Jika versi fsr yang Anda instal datang sebagai file. zip, cukup seret folder "Data" dari zip ke folder lupaan Anda.
1. B. Jika versi fsr yang Anda instal tidak datang sebagai file. zip maka Anda perlu menempatkan file sr_fallout_stutter_remover.dll ke folder fallout\Data\fose\plugins Anda. Jika Anda tidak memiliki folder seperti itu, buat. Jika Anda telah menginstal versi fsr yang lebih lama, hapus file ini(Data\fose\plugins\sr_Fallout_Stutter_Remover.ini). Jika tidak ada file ini fsr yang ada maka fsr akan menghasilkan file ini baru dengan pengaturan yang sesuai untuk versi Anda saat berikutnya Anda menjalankan fallout.
3. Menyahinstal:
Cukup hapus file sr_fallout_stutter_remover.dll dari folder data\fose\plugins Anda.
Memindahkan file itu ke direktori lain juga sudah cukup.
4. perubahan pengaturan umum
====================================
Secara umum, fsr mencoba memiliki pengaturan default yang layak sehingga pengguna tidak diminta untuk mengikutinya. Namun, ada beberapa pengaturan di mana nilai default mungkin tidak sesuai untuk Anda, baik karena nilai default tidak sesuai dengan selera Anda atau karena fsr membuat asumsi yang salah tentang komputer Anda.
Fsr menyimpan pengaturannya di file data\fose\plugins\sr_Fallout_Stutter_Remover.ini
Jika file itu tidak ada, cukup meluncurkan fallout dengan fsr diinstal dan fsr akan menghasilkan file baru dengan pengaturan default untuk versi fsr Anda. Jika Anda telah mengacaukan sesuatu di pengaturan Anda atau ingin kembali ke pengaturan default, cukup hapus file ini ini dan meluncurkan kejatuhan.
Anda dapat menemukan informasi umum tentang pengaturan di bagian 5, serta informasi yang lebih lengkap tentang setiap pengaturan individu.
Pengaturan yang paling mungkin ingin Anda ubah adalah:
FPS_Management\MaximumFPS: (default menjadi 30, pertimbangkan untuk mengubah menjadi 0 atau nilai lainnya)
Beberapa orang tidak ingin framerate mereka dibatasi sama sekali. Anda dapat mematikan pembatasan fps dengan mengatur ini ke 0. Juga, jika kecepatan penyegaran layar Anda saat pemutaran tidak 60 hertz, Anda dapat mencoba mengubahnya ke kecepatan penyegaran layar Anda, atau setengah kecepatan penyegaran layar Anda, atau sepertiga kecepatan penyegaran layar Anda. Pengaturan ini tidak akan berpengaruh jika master\bmanagefps diubah menjadi 0.
Hashtables\bAllowDynamicResizing: (default ke 0, pertimbangkan untuk mengubah ke 1)
Menghidupkan ini dapat meningkatkan kinerja umum/fps secara signifikan pada game yang banyak dimodifikasi. Sayangnya, hal ini dapat menyebabkan kondisi balapan dan kekacauan umum, terutama ketika skrip yang menggunakan perintah fose tertentu menjalankan setiap bingkai. Saya telah mencoba mengurangi kemungkinan masalah menjadi hampir nol, tapi... Itu mungkin memerlukan lebih banyak pekerjaan. Sementara itu fitur ini secara default dinonaktifkan. Pengaturan ini tidak akan berpengaruh jika master\bhookhashtables diubah menjadi 0.
Penekanan bagian kritis: (khusus)
Secara default fsr menekan satu bagian kritis tertentu yang tampaknya berfungsi lebih baik tanpanya. Ada bagian kritis terkait lainnya yang tampaknya dapat ditekan oleh beberapa pengguna tanpa menimbulkan masalah, namun pengguna lain mengalami ctd pada transisi interior-> eksternal atau masalah lain saat ditekan. Yang hanya menghasilkan sedikit peningkatan pada kegagapan, jadi saya biasanya tidak merekomendasikan untuk menekannya, tapi Anda bisa melakukannya jika Anda mau. Untuk menekannya, temukan baris yang bertuliskan "CallerAddress=0x70172A" di file ini Anda dan tambahkan baris baru tepat di belakangnya yang bertuliskan "Mode=5". Perhatikan bahwa kasus itu penting di sana... Itu seharusnya "mode" dan bukan "mode". Pengaturan ini tidak akan berpengaruh jika master\bhookcriticalsections atau criticalsections\buseoverrides disetel ke 0.
Catatan: bagian dari readme tepat di atas ini yang disisihkan adalah untuk dilupakan, bukan akibat; Ada yang setara untuk kejatuhan, tapi saya belum mencari nilai yang tepat untuk itu. Untuk saat ini, abaikan itu.
5. Semua pengaturan
====================================
Fsr menyimpan pengaturannya di file data\fose\plugins\sr_Fallout_Stutter_Remover.ini
Jika file itu tidak ada, cukup meluncurkan fallout dengan fsr diinstal dan fsr akan menghasilkan file baru dengan pengaturan default untuk versi fsr Anda. Jika Anda telah mengacaukan sesuatu di pengaturan Anda atau ingin kembali ke pengaturan default, cukup hapus file ini ini dan meluncurkan kejatuhan.
Perhatikan bahwa format file fsr ini berubah antar versi utama fsr-Anda tidak boleh menggunakan file ini fsr versi 1 dengan fsr versi 2, dll. di fsr2, file ini diatur ke bagian seperti "SectionName {SettingName=Value}". Pengaturan tertentu dapat dirujuk sebagai sectionname\settingname untuk membedakannya dari pengaturan lain dengan nama yang sama di bagian yang berbeda. Pada umumnya pengaturan dengan nama yang dimulai dengan "i" adalah nilai bilangan bulat (yaitu angka tanpa titik desimal), pengaturan dengan nama yang dimulai dengan "b" adalah nilai boolean (yaitu 0 atau 1), dan pengaturan yang dimulai dengan "f" adalah angka yang mungkin memiliki titik desimal di dalamnya (yaitu 3.14). Beberapa pengaturan tidak dimulai dengan salah satu huruf tersebut, dalam hal ini mungkin tidak jelas jenis nilai yang tepat.
Ini adalah pengaturan dan nilai defaultnya saat ini (mungkin tidak 100% update):
Bagian: Master {}
Bagian ini berisi opsi untuk menonaktifkan setiap subsistem utama fsr, ditambah beberapa pengaturan untuk hal-hal yang bukan milik subsistem tertentu dari fsr.
Master\bManageFPS (default: 1)
Mengatur ini ke 0 akan menonaktifkan semua hal manajemen fps, membuat setiap pengaturan di bagian fps_management tidak berarti.
Master\bhookkriticalsections (default: 1)
Mengatur ini ke 0 akan menonaktifkan semua hal bagian kritis, membuat setiap pengaturan di bagian bagian kritis tidak berarti.
Master\bHookLightCriticalSections (default: 1)
Mengatur ini ke 0 akan menonaktifkan semua hal bagian kritis cahaya, membuat setiap pengaturan di bagian bagian kritis cahaya tidak berarti.
Master\bHookHashtables (default: 1)
Mengatur ini ke 0 akan menonaktifkan semua hal hashtable, membuat setiap pengaturan di bagian bagian kritis tidak berarti.
Master\bReplaceHeap (default: 0)
Mengatur ini ke 1 akan mengaktifkan penggantian tumpukan, membuat pengaturan di bagian tumpukan bermakna.
Master\bLogToConsole (default: 0)
Fsr mencatat berbagai bit informasi ke file lognya. Mengubah pengaturan ini menjadi 1 akan menyebabkan fsr juga mencetak informasi tersebut ke konsol.
File log adalah sr_fallout_stutter_remover.log di direktori fallout. Itu dibuat atau ditimpa setiap kali fallout berjalan dengan fsr diinstal.
Master\bFix64Hertz (default: 1)
Mengatur ini ke 1 memperbaiki masalah dalam kejatuhan yang menyebabkan "gagap mikro". Masalah ini kadang-kadang dikenal sebagai "masalah 64 hertz". Secara khusus masalahnya adalah pengaturan waktu logika permainan fallout biasanya terjadi pada resolusi 1/64 detik, dan kecepatan penyegaran layar biasanya memungkinkan fallout untuk menggambar 60 frame per detik ketika vsync terbatas. Kombinasi ini menciptakan semacam frekuensi ketukan ketika framerate dimaksimalkan di mana 4 frame per detik memiliki jumlah waktu permainan yang berlalu dua kali lipat dibandingkan 56 frame. Perbaikan bahwa fsr menerapkan kejatuhan paksa untuk menggunakan waktu pada resolusi 1/1000 detik alih-alih 1/64 detik.
Master\bFlushLog (default: 1)
Ini memberi tahu fsr untuk segera menulis pesan log apa pun ke filenya alih-alih menyanggunya dalam memori. Hal ini dapat mengurangi kinerja sedikit karena jumlah akses disk yang lebih besar, namun membuat kemungkinan pesan apa pun yang berkaitan dengan masalah yang terjadi sesaat sebelum kecelakaan akan berhasil ditulis ke file log.
Resolusi Master\ischeduling(default: 1)
Fsr akan meminta penjadwal windows berjalan dengan resolusi beberapa milidetik ini. Dengan set ini pada 1, fsr dan fallout umumnya bekerja lebih baik. Namun hal ini dapat sedikit mengurangi masa pakai baterai laptop.
Bagian: FPS_Management {}
Bagian ini berisi pengaturan yang menyesuaikan cara fsr mengelola framerate Anda dan aliran waktu permainan.
FPS_Management\bAllowSlowMotion (default: 1)
Mengatur ini ke 0 akan mencegah fsr mencoba mengganti aliran waktu permainan normal. Di masa lalu bug memiliki arison dari fsr yang melakukannya (yang paling terkenal, bug neary-npcs-drop-dead-on-cell-transitions), namun ini diyakini telah diperbaiki sekarang. Jika Anda curiga mungkin ada masalah, Anda dapat secara paksa menonaktifkan semua penyesuaian waktu permainan fsr dengan pengaturan ini. Meskipun namanya, mengatur ini ke 0 juga akan mencegah fsr meneruskan waktu permainan dengan cepat, meskipun fsr hanya mencoba melakukannya dalam kombinasi pengaturan dan keadaan yang sangat langka.
FPS_Management\MaximumFPS (default: 30)
Ini adalah fps maksimum yang fsr tidak akan mengizinkan kejatuhan melebihi. Saya biasanya mengatur ini ke framerate yang cukup tinggi sehingga saya tidak terlalu peduli dengan frame tambahan per detik. Perhatikan bahwa fsr tidak benar-benar berurusan dengan "bingkai per detik" di sini, ia mengubah nilai tersebut menjadi nomor milidetik per bingkai, dan mempertimbangkan setiap bingkai secara individual. Jika suatu bingkai selesai terlalu cepat maka fsr akan menyebabkan utas utama jatuh tidur sampai jumlah milidetik yang benar telah berlalu. Menempatkan utas utama fallouts ke dalam tidur dapat membebaskan sumber daya untuk digunakan oleh utas latar belakang fallouts atau untuk program lain yang mungkin berjalan di latar belakang. Jika tidak ada yang ingin menggunakan sumber daya tambahan maka cpu dan/atau gpu Anda akan berjalan lebih dingin dan menggunakan lebih sedikit listrik.
FPS_Management\MinimumFPS (default: 10)
Ini adalah fps minimum yang tidak akan diizinkan oleh fsr untuk mengalami kejatuhan. Namun, alih-alih berurusan dengan detik nyata, hal ini berurusan dengan detik waktu permainan. Jadi Anda masih dapat memiliki fps 1 jika komputer Anda benar-benar lambat, tetapi ini akan memperlambat waktu permainan menjadi 10% dari normal sehingga selalu ada setidaknya 10 bingkai per detik waktu permainan. Semua angka di sana hanya misalnya, berdasarkan fps nyata 1 dan pengaturan minimumfps 10 (nilai default). Juga dicatat bahwa seperti maximumfps, ini sebenarnya berfungsi pada basis satu bingkai yang menangani milidetik per bingkai alih-alih bingkai per detik.
Saya umumnya mengatur ini ke fps yang lebih rendah yang menurut saya dapat dimainkan dari jarak jauh. Tujuan utama dari pengaturan ini adalah untuk mencegah logika permainan kejatuhan menjadi gila ketika fps menjadi terlalu rendah. Masalah yang dicegah ini termasuk perkelahian yang tidak mungkin karena musuh dapat berputar di sekitar Anda antar bingkai, kontrol yang kacau karena fallout berpikir bahwa tombol serangan turun untuk seluruh bingkai atau tidak turun untuk seluruh bingkai yang dapat menyebabkan serangan kekuatan terjadi ketika serangan dimaksudkan, dan banyak masalah serupa lainnya.
FPS_Management\iSmoothFrames (default: 0)
Jika ini disetel ke 0, logika "penghalusan" tidak berfungsi apa-apa. Untuk mengaktifkan logika pemulusan, coba setel ini ke 2. Namun, laporan menunjukkan bahwa logika penghalusan tidak terlalu berharga. Logika smoothing dimaksudkan untuk mencegah berbagai masalah yang timbul dari kegagapan dan perubahan cepat lainnya dalam framerate. Logika pemulusan tidak akan berpengaruh jika ballowslowmotion adalah 0.
FPS_Management\iSmoothMode (default: 0)
Ini harus 0, 1, 2, atau 3. Jika itu 0 atau 1 maka itu akan mengaktifkan beberapa logika tambahan yang mencoba menyaring peristiwa gagap dari aliran waktu. Logika itu dapat berakhir dengan jumlah total waktu permainan yang berlalu tidak sama dengan jumlah waktu nyata yang berlalu jika terjadi penurunan fps yang sangat tiba-tiba. Jika itu 2 atau 3 maka sedikit logika tambahan itu dinonaktifkan. Perbedaan antara 0/2 dan 1/3 adalah masalah yang sangat halus tentang bagaimana bingkai mana yang didistribusikan ulang waktu di antara mereka.
FPS_Management\iSleepExtra (default: 2)
Fsr akan memaksa fallout untuk tidur selama beberapa milidetik setiap detik. Ini dapat membantu membebaskan sumber daya untuk utas latar belakang atau proses lainnya, atau mengurangi suhu Manfaat utamanya adalah jika beberapa utas latar belakang kesulitan mendapatkan sumber daya tertentu yang dimasukkan oleh utas utama, hal ini dapat memberinya kesempatan untuk mendapatkan sumber daya tersebut sesekali.
Jika ini disetel ke -1 maka kode manajemen fsr fps tidak akan pernah membuat kejatuhan tidur-jika fps akan melebihi maksimumfps maka fsr akan membuang-buang waktu dalam loop idle. Mode itu tidak direkomendasikan karena disediakan untuk tujuan pengujian saja.
FPS_Management\bFPSConsoleSPAM (default: 0)
Ini akan menyebabkan fsr mencatat jumlah waktu yang dibutuhkan untuk menyelesaikan setiap bingkai. Itu akan melakukannya sekali per bingkai, menciptakan sejumlah besar waktu yang dicatat.
FPS_Management\iSchedulingParanoia (default: 1)
Pengaturan ini dalam satuan milidetik. Itu menentukan seberapa paranoid kode maksimumfps tentang penjadwal. Jika nilainya tinggi, maka kode maximumfps tidak akan pernah tidur, malah membuang-buang waktu dalam loop idle. Jika nilainya adalah 0, maka kode maximumfps akan mempercayai penjadwal untuk melanjutkan eksekusi utas utama tepat pada waktu yang diminta. Umumnya saya berkompromi pada 1 untuk sedikit paranoia tentang penjadwal tetapi masih membiarkan sebagian besar waktu luang digunakan secara konstruktif.
FPS_Management\iHardMaxFrametime (default: 200)
Ini dalam satuan milidetik. Ditemukan bahwa ketika kode penyesuaian aliran waktu saya memasukkan waktu yang terlalu besar pada waktu yang salah, hal-hal aneh terjadi. Hal-hal buruk. Seperti, npc dekatnya mati secara acak. Pengaturan ini mencegah hal itu, dengan menetapkan maksimum absolut ke jumlah milidetik yang fsr memungkinkan untuk berlalu sekaligus dalam proses normal. Biasanya Anda akan mencapai minimumfps sebelum mencapai batas ini, namun minimumfps diabaikan dalam beberapa keadaan untuk mencegah efek samping seperti gerakan bibir yang tidak disinkronkan dengan suara, jadi ini bertindak sebagai minimumfps tingkat ke-2, i-real-mean-it minimum fps. Mengaturnya terlalu rendah dapat menyebabkan hal-hal seperti gerakan bibir yang tidak disinkronkan dalam percakapan, mengaturnya terlalu tinggi dapat memungkinkan bug seperti npcs-dropping-dead-random. Saya menetapkan 200 sebagai kompromi-hal ini tidak boleh menyebabkan bibir tidak disinch kecuali framerate Anda turun menjadi kurang dari 5 dalam percakapan. Dan jika Anda memainkan fallout dengan framerate kurang dari 5 maka Anda memerlukan bantuan serius.
Bagian: bagian kritis {}
Bagian ini membahas semua perubahan yang dibuat fsr pada fallouts critical_sections. Ingin tahu tentang objek kritis_section? Fallout menggunakannya untuk mencegah berbagai utasnya membunuh satu sama lain secara tidak sengaja. Microsoft menyediakan kode untuk mereka. Fallout menggunakan versinya yang sedikit berbeda tergantung pada versi window mana yang dijalankan. Anda dapat membaca lebih lanjut tentang mereka di msdn.
Bagian kritikal\profil yang dapat dilaksanakan (default: 0)
Jika disetel ke 1 maka fsr akan mencatat informasi tentang waktu/kinerja operasi bagian kritis dalam kejatuhan. Melakukan hal itu menyebabkan penalti yang kecil namun signifikan pada kinerja. Fsr akan mencatat informasi dalam file log. Ini berpotensi menghasilkan informasi yang berguna tentang mengapa kejatuhan Anda gagap atau berjalan lambat. Info itu mungkin digunakan untuk menyesuaikan bagian pengganti file fsr ini atau semacamnya.
Bagian kritikal\pesan yang bermanfaat (default: 0)
Jika disetel ke 1 maka fsr akan merekam informasi tentang beberapa peristiwa waktu/kinerja bagian kritis. Ada biaya kinerja yang sangat sedikit untuk melakukannya, namun dapat mengacaukan file log sehingga lebih sulit untuk menemukan informasi bagian non-kritis di sana.
Bagian kritikal\overrides bus(default: 1)
Jika ini disetel ke 1 maka fsr akan menggunakan pengaturan di bagian pengganti ini untuk menentukan apa yang harus dilakukan pada bagian kritis tertentu.
Bagian kritikal\iDefaultMode (default: 2)
Ini menentukan apa yang dilakukan fsr pada bagian kritis yang tidak memiliki entri mode untuknya dalam daftar pengganti.
1: meninggalkan bagian kritis itu pada perilaku yang hampir normal.
2: menyesuaikan bagian kritis tersebut untuk meningkatkan keadilan dengan biaya throughput. Hal ini dapat mencegah satu utas terlalu banyak mengganggu bagian kritis, namun dapat laju bersih di mana operasi dapat dilakukan dengan bagian kritis tersebut.
3: upaya kompromi antara keadilan dan throughput di mana biasanya dioptimalkan untuk throughput tetapi sesekali beralih perilaku untuk dioptimalkan untuk keadilan.
5: bagian kritis itu ditekan. Menekan bagian kritis umumnya menyebabkan kejatuhan, tetapi juga umumnya meningkatkan kinerja. Bagian kritis tertentu mungkin terpengaruh secara berbeda.
6: bahwa utas utama mendapat prioritas untuk bagian kritis itu.
7: utas latar belakang mendapat prioritas untuk bagian kritis itu.
Bagian kritikal\iDefaultSpin (default: 500)
Ini mempengaruhi berapa lama utas akan terus mencoba masuk ke bagian kritis sebelum meminta penjadwal untuk memasukkannya ke dalam tidur sampai bagian kritis itu tersedia. Secara teori nilai yang terlalu kecil akan mengakibatkan terlalu banyak overhead penjadwal, sedangkan nilai yang terlalu besar akan mengakibatkan sia-sia siklus CPU. 500 sebenarnya adalah nilai yang agak kecil menurut saya. Nilai ideal mungkin meningkat seiring dengan jumlah inti/utas perangkat keras yang Anda miliki.
Bagian kritikal\iStutterLevel (default: 4)
Parameter ini mempengaruhi seberapa sering mode bagian kritis 2 beralih perilaku. Lihat ideaultmode untuk lebih lanjut tentang mode bagian kritis 2. Bilangan yang lebih kecil berarti peralihan yang sering, bilangan yang lebih besar berarti peralihan yang jarang terjadi. Nilai idealnya mungkin berada di suatu tempat dalam kisaran 3 hingga 6.
Bagian: bagian kritis cahaya {}
Bagian ini membahas semua perubahan yang dibuat fsr pada kategori objek kejatuhan yang memiliki tujuan yang serupa dengan kritical_sections tetapi lebih ringan.
LightCriticalSections\bFullHooks (default: 0)
Jika disetel ke 1 maka ini akan menyalakan versi yang lebih lengkap dari kait bagian kritis cahaya. Sayangnya, versi yang lebih lengkap masih buggy, jadi ini dinonaktifkan secara default saat ini.
LightCriticalSections\bEnableProfiling (default: 0)
Jika disetel ke 1 maka fsr akan mencatat informasi tentang waktu/kinerja operasi bagian kritis ringan dalam kejatuhan. Melakukan hal itu menyebabkan penalti yang kecil namun signifikan pada kinerja. Fsr akan mencatat informasi dalam file log. Ini berpotensi menghasilkan informasi yang berguna tentang mengapa kejatuhan Anda gagap atau berjalan lambat. Info itu mungkin digunakan untuk menyesuaikan bagian pengganti file fsr ini atau semacamnya.
Bagian kritis cahaya\pesan yang bermanfaat (default: 1)
Jika disetel ke 1 maka fsr akan merekam informasi tentang beberapa peristiwa waktu/kinerja dari bagian kritis ringan. Ada biaya kinerja yang sangat sedikit untuk melakukannya, namun dapat mengacaukan file log sehingga lebih sulit untuk menemukan informasi bagian non-kritis di sana.
LightCriticalSections\bUseOverrides (default: 1)
Jika ini disetel ke 1 maka fsr akan menggunakan pengaturan di bagian pengganti ini untuk menentukan apa yang harus dilakukan pada bagian kritis tertentu. Penggantian tidak akan berpengaruh kecuali kait lcs lengkap diaktifkan (bfullhooks di atas).
LightCriticalSections\iDefaultMode (default: 2)
Ini menentukan apa yang dilakukan fsr untuk menyalakan bagian kritis yang tidak memiliki entri mode untuknya dalam daftar pengganti. Ia mencoba menggunakan skema penomoran mode yang serupa dengan hal bagian kritis-lihat mode kritikal\idefaultmode di atas untuk informasi selengkapnya. Beberapa mode mungkin berperilaku agak berbeda tergantung apakah bfullhooks diaktifkan atau tidak.
LightCriticalSections\iDefaultSpin (default: 500)
Ini menentukan apa yang dilakukan fsr untuk menyalakan bagian kritis yang tidak memiliki entri putaran untuk mereka dalam daftar pengganti. Ini mencoba memiliki arti yang mirip dengan hal-hal bagian kritis-lihat bagian kritikal\idefaultspin di atas untuk informasi lebih lanjut. Arti putaran mungkin agak berbeda tergantung apakah bfullhooks diaktifkan atau tidak.
LightCriticalSections\iStutterLevel (default: 4)
Parameter ini mempengaruhi seberapa sering mode bagian kritis cahaya 2 beralih perilaku. Lihat ideaultmode untuk lebih lanjut tentang mode bagian kritis 2. Bilangan yang lebih kecil berarti peralihan yang sering, bilangan yang lebih besar berarti peralihan yang jarang terjadi. Nilai idealnya mungkin berada di suatu tempat dalam kisaran 3 hingga 6.
Bagian: tumpukan {}
Barang ini belum benar-benar berhasil untuk kejatuhan. Jangan gunakan.
Bagian: tabel hash{}
Kejatuhan mencakup banyak hashtabel untuk mencari segala macam hal. Mereka menggunakan implementasi hashtable yang umumnya mengerikan, tetapi masalah sebenarnya adalah mereka tidak pernah mengubah ukuran hashtable mereka. Ketika hashtable menjadi berlebihan, kinerjanya turun. Jika hashtable berada di bawah maka sedikit memori mungkin terbuang, dan koherensi cache mungkin menurun. Sayangnya, sebagian besar kode hashtable terbaris di mana-mana, dan fose juga membuat berbagai asumsi tentang hashtable, dan saya sama sekali tidak jelas seperti apa model utas yang relevan, jadi mengubahnya dengan aman cukup sulit. Tetap saja, saya punya beberapa kait hashtable, dan secara bertahap menjadi lebih baik.
Tabel hash\bAllowDynamicResizing (default: 0)
Jika ini disetel ke 1 maka fsr akan meningkatkan ukuran hashtabel setelah hashtabel menjadi berlebihan. Namun tindakan mengubah ukurannya penuh dengan masalah-hal ini dapat menyebabkan kerusakan atau kesalahan, dan metode yang saya gunakan untuk mencegahnya melakukannya dapat menyebabkan kegagapan kinerja kecil atau kerusakan atau kesalahan lainnya. Tetap saja, pada titik ini saya pikir itu mungkin berfungsi dengan baik.
Hashtabels\bUseOverrides (default: 0)
Saat ini tidak ada penggantian hashtable, dan sintaks untuk menentukan mereka canggung dan berpotensi untuk gagal secara diam-diam dan melakukan hal lain jika Anda memasukkan nilai yang salah. Ini pada akhirnya akan diperbaiki untuk mengizinkan penghubung yang ditentukan file ini ke inisialisasi hashtabel terpenting agar dimulai dengan ukuran yang layak daripada perlu diubah ukurannya nanti.
Hashtable\bEnableProfiling (default: 0)
Ini akan memantau hashtabel dan mencatat informasi tentang seberapa penuh tabel tersebut dan seberapa banyak tabel tersebut diakses.
Hashtabels\bEnableMessages (default: 0)
Jika ini adalah 1 maka kode hashtable kadang-kadang dapat mencatat pesan tentang apa yang dilakukannya.
Hashtables \iHashtableResizeScale1 (default: 2)
Hashtables \iHashtableResizeScale2 (default: 4)
Jika ballowdynamicresizing adalah 1 maka ihashtableresizescale1 akan menentukan tingkat hunian minimum di mana hashtable akan diubah ukuran, dan ihashtableresizescale2 akan menentukan seberapa besar ukuran barunya. Kedua angka tersebut sebenarnya adalah eksponen yang diterapkan pada 2, jadi pengaturan 3 berarti faktor 8, dan pengaturan 5 berarti faktor 32. Secara teori mengurangi ihashtableresizescale1 menjadi 1 mungkin lebih meningkatkan kinerja, karena akan meningkatkan ukuran lebih banyak hashtabel. Ihashtableresizescale2 mungkin harus disetel ke 1 atau 2 lebih dari ihashtableresizescale1.
Tabel hash\iHashtableResizeDelay (default: 20)
Ini adalah sejumlah milidetik yang akan dihentikan oleh fsr saat mengubah ukuran hashtable. Gagasannya adalah meskipun saya tidak dapat mencegah utas lain mengakses hashtable saat saya sibuk dengannya, saya dapat, mudah-mudahan, mencegah mereka *mulai* mengakses hashtable. Jadi saya menunda cukup lama sehingga mungkin, mungkin, siapa pun yang sudah mengakses hashtable akan selesai, lalu saya melakukan urusan saya. Itu tidak berfungsi pada fose sayangnya karena fose tidak melakukan hal yang sama dengan fallout, ditambah lagi meskipun melakukannya, fose tidak menggunakan vtables untuk melakukannya. Tapi atm saya pikir fose mungkin hanya mengaksesnya dari utas utama, jadi jika resizer saya berjalan di utas utama maka tidak perlu khawatir tentang fose. Mungkin.
Bagian: mengganti {}
Bagian ini berisi informasi yang memberi tahu fsr cara menemukan instans spesifik berbagai jenis objek yang diketahui fsr, dan cara memperlakukan instans spesifik tersebut secara berbeda dari pengaturan default untuk jenis objek tersebut. Saat ini hanya hal-hal yang benar-benar tercantum di sini adalah beberapa bagian kritis spesifik dengan perilaku berbeda dari kebanyakan bagian.
6. Riwayat versi:
====================================
FPS Capper Versi 1:
Ini dikenal sebagai fps capper. Yang dilakukannya hanyalah manajemen fps. Versi ini diintegrasikan ke dalam serangkaian dll obse yang dimodifikasi.
FPS Capper Versi 2:
Ini adalah versi pertama yang memiliki dll sendiri yang terpisah dari obse. Ini dikenal sebagai fps capper. Yang dilakukannya hanyalah manajemen fps.
Penghilang gagap lupa versi 3 beta 1:
Versi pertama yang diberi nama oblivion stutter remover. Terkadang membeku selama beberapa menit di menu utama. Gerakan suara dan wajah npc dapat mengacaukan dialog.
Versi 3 beta 2: gerakan suara dan wajah npc dapat mengacaukan dialog.
Penghilang gagap lupa versi 3 beta 6:
Ada penundaan yang lama antara beta 5 dan beta 6, diisi oleh banyak rilis alfa. Ini adalah versi fsr pertama yang benar-benar melakukan pekerjaan yang layak dalam mengurangi kegagapan bagi pengguna rata-rata. Ini karena fitur baru: penyesuaian keadilan bagian kritis, penekanan bagian kritis, dan penggantian tumpukan. Sayangnya, penggantian tumpukan masih memiliki masalah besar bagi banyak pengguna. Bfix64hertz disetel ke 0 secara default di ini, seharusnya menjadi 1.
Catatan: tidak pernah ada versi 3 final. Jika ada permintaan yang cukup, saya dapat mengadanya berdasarkan kode sumber versi 3 beta 6 dengan beberapa perbaikan.
Penghilang gagap kejatuhan versi 1 beta 1:
Port awal osr untuk jatuh.
Penghilang gagap kelupaan/kejatuhan versi 4.1.0:
Perubahan besar:
1.Mendukung efek keduaTidak memberikan banyak manfaat pada kejatuhan 3, tapi itu membantu.
2.File. ini: Format file ini yang sama sekali berbeda
3.Pengukuran tabel hashtable: Fitur baru untuk meningkatkan kinerja
4.Bagian kritis & bagian kritis ringan:Menggeneralisasi banyak kasus khusus untuk bagian kritis, sekarang jauh lebih dapat disesuaikan dari file ini. "Kait penuh" dari kode bagian kritis ringan masih buggy.
5.Penggantian tumpukan: Memperbaiki beberapa bug, tapi menurut saya masih ada masalah. Masih tidak berfungsi sama sekali pada kejatuhan.
6.Penamaan versi:Versi yang dirilis ke tesnexus sekarang disebut versi rilis alih-alih versi beta. Versi yang dirilis ke server ftp saya sekarang disebut versi beta alih-alih versi alfa. Digit pertama dari nomor versi ditambahkan hanya ketika perubahan besar dilakukan pada format konfigurasi atau distribusi. Digit ke-2 dari nomor versi ditambahkan setiap versi rilis. Digit ke-3 dari nomor versi ditambahkan sekali untuk setiap versi beta. Setiap kali suatu digit ditambahkan, semua digit lebih jauh ke kanan disetel ulang ke 0.
7. cara kerjanya:
Ini adalah dll plugin fose. Pada dasarnya itu meretas kejatuhan.
7.1: manajemen fps:
Kode manajemen fps memantau framerate dan menyesuaikan aliran waktu permainan. Itu mengurangi kegagapan dengan membuat logika permainan yang tidak melewati saat gagap. Secara efektif, bingkai yang memakan waktu lama akhirnya berada dalam gerakan lambat. Ini dilakukan dengan membuat fallout bertindak seolah-olah ifpsclamp disetel ke minimumfps, tetapi hanya untuk bingkai yang lebih lambat dari minimumfps. Hal ini juga dapat meningkatkan stabilitas. Ini juga dapat memberlakukan framerate maksimum-beberapa orang menganggap kejatuhan lebih lancar ketika framerate-nya dicegah melebihi setengah kecepatan refresh, ditambah lagi hal ini membantu membebaskan sumber daya untuk utas sekunder kejatuhan.
Kode manajemen fps juga dapat menempatkan utas utama kejatuhan untuk jangka waktu singkat, yang telah diambil untuk meningkatkan kegagapan bagi beberapa orang (meskipun fungsionalitas itu mungkin telah berlebihan oleh hal-hal lain yang dilakukan plugin ini).
7.2: bagian kritis:
Bagian kritis adalah primitif sinkronisasi utas yang disediakan oleh Microsoft yang digunakan oleh fallout secara internal untuk memastikan bahwa utas tidak secara tidak sengaja merusak satu sama lain. Fsr secara default membuat sebagian besar bagian kritis mencoba bermain adil bahkan dengan mengorbankan throughput, memastikan bahwa tidak ada utas yang mengandung sumber daya yang dibutuhkan utas lain. Namun, satu bagian kritis tertentu diganti untuk menggunakan metode yang sedikit kurang adil, dan bagian kritis tertentu lainnya ditekan sehingga tidak memiliki efek sama sekali. Dan itu semua sangat dapat dikonfigurasi dari file ini. Juga spincounts akan diganti.
7.3: penggantian tumpukan:
Fitur ini belum berfungsi dengan baik pada fallout 3.
7.4: tabel hashtable:
Kejatuhan mencakup banyak hashtabel untuk mencari segala macam hal. Mereka menggunakan implementasi hashtable yang umumnya mengerikan, tetapi masalah sebenarnya adalah mereka tidak pernah mengubah ukuran hashtable mereka. Ketika hashtable menjadi berlebihan, kinerjanya turun. Jika hashtable ada di bawah maka sedikit memori mungkin terbuang. Sayangnya, sebagian besar kode hashtable terbaris di mana-mana, dan fose juga membuat berbagai asumsi tentang hashtable, dan saya sama sekali tidak jelas apa model utas yang relevan, jadi mengubahnya dengan aman cukup sulit.
Tetap saja, saya punya beberapa kait hashtable, dan secara bertahap menjadi lebih baik. Fsr dapat meningkatkan ukuran hashtabel setelah hashtabel menjadi berlebihan. Namun tindakan mengubah ukurannya penuh dengan masalah-hal ini dapat menyebabkan kerusakan atau kesalahan, dan metode yang saya gunakan untuk mencegahnya melakukannya dapat menyebabkan kegagapan kinerja kecil atau kerusakan atau kesalahan lainnya. Tetap saja, pada titik ini saya pikir itu mungkin berfungsi dengan baik. Di masa depan saya mungkin mengganti atau menambahnya dengan mengganti ukuran awal hashtabel tertentu.
====================================
8. Kredit:
====================================
Plugin ini dibuat oleh saya (Christopher Doty-Humphrey).
Hal itu tidak akan mungkin terjadi tanpa upaya besar yang dilakukan oleh tim fose. Selain itu, Ian Patterson (pria tim fose) telah membantu saya melewati banyak tempat di mana saya mengalami masalah.
Utas asli yang mendorong saya untuk memulai plugin ini dimulai oleh deviuscreed.
Banyak penguji telah memberikan umpan balik yang berguna. Khususnya informasi mashani tentang pengaturan mana yang menghasilkan hasil mana baginya membantu saya memahami mengapa versi awal ini menghasilkan manfaat yang tidak terduga, dan mengarah pada sejumlah fitur dan pengaturan di versi selanjutnya.
Saya juga ingin mengucapkan terima kasih kepada badhair karena telah menunjuk saya pada hashtabel yang terlalu penuh sebagai penyebab masalah kinerja.
Alat berikut digunakan dalam produksi plugin ini:
Kelupaan/kejatuhan, oleh bethesda
OBSE/fose dan kode sumber OBSE/fose
Microsoft Visual C 2008 edisi ekspres
Ida gratis (debugger interaktif, versi gratis, versi 4.9)
Mesin curang (versi 5.4)
Ditambah hal-hal yang jelas seperti windows xp, Notepad, dan firefox.
Kecuali oblivion/fallout dan windows xp, semuanya tersedia secara gratis.
Saya juga pernah mengadakan lokakarya hex dan ollydbg merekomendasikannya kepada saya tetapi belum mencobanya.