2017년 5월 23일 화요일

CTD 방지 !!! Crash Fixes 설치 방법(V11 베타 사용방법 추가)



Crash Fixes 설치 방법(V11 베타 사용방법 추가)
2016.05.22. 02:43
Crash Fixes의 동적 메모리 할당기능을 사용하려는 분들만 따라하세요.
원래는 CTD를 방지하는 모드이며 메모리 할당기능은 기본값이 비활성화되어 있습니다. 따라서 메모리 할당기능을 사용하지 않는 분들은 굳이 따라하실 필요 없습니다.




설치방법

0. SSME, Safety load, SKSE 메모리 패치 삭제
skse.ini 삭제방법은 아래처럼 앞에 ;를 붙이면 됩니다. 

;[Memory]
;DefaultHeapInitialAllocMB=설정값
;ScrapHeapSizeMB=설정값



1. Crash Fixes v10 버전 설치
http://www.nexusmods.com/skyrim/mods/72725/에서 v10버전을 다운받아 Data\SKSE\Plugins폴더에 압축을 풉니다.
압축을 풀면 CrashFixPlugin.dll, CrashFixPlugin.ini, CrashFixPlugin_preload.txt 3개의 파일이 있어야 합니다.




2. CrashFixPlugin.ini 수정
아래와 같이 수정하시면 됩니다.

UseOSAllocators=1
AlignHeapAllocate=1
WarnSKSEMemoryPatch=0




3. SKSE Plugin Preloader v3버전 설치
http://www.nexusmods.com/skyrim/mods/75795/에서 v3버전을 다운받아 스카이림 폴더(TESV.exe이 있는 폴더)에 압축풀면 d3dx9_42.dll, d3dx9_42_readme.txt 2개의 파일이 생깁니다.




4. Enblocal.ini 설정
아래와 같이 설정하시기 바랍니다.

[MEMORY]
ExpandSystemMemoryX64=false
ReduceSystemMemoryUsage=true



5. d3dx9_42.log 만들기
스카이림 폴더에 메모장으로 d3dx9_42.log 파일을 만듭니다. d3dx9_42.log.txt가 아니고 d3dx9_42.log입니다.
게임을 일정시간 플레이했다가 종료하고 로그파일을 확인하시면 아래와 같은 내용이 나옵니다.

Searching for SKSE plugins that wish to preload.
Checking "CrashFixPlugin_preload.txt".
Found plugin "CrashFixPlugin" for preloading.
Checking "DoubleJumpPlugin.txt".
Checking "ToggleWalkRunFix.txt".
Checking "hdtSittingHeightFix_AnimationList.txt".
Checked 4 files total.
Attempting to load "F:\The Elder Scrolls V Skyrim\Data\SKSE\Plugins\CrashFixPlugin.dll".
Successfully loaded "F:\The Elder Scrolls V Skyrim\Data\SKSE\Plugins\CrashFixPlugin.dll".

맨 마지막에 Successfully loaded.......\CrashFixPlugin.dll".라고 되어있으면 설치에 성공한 것입니다. 



V11 베타버전이 나왔습니다.

변경점 

1. 잘못 만들어진 NIF(메쉬 파일) 때문에 CTD가 발생했을 경우 이를 추적할 수 있도록 마지막에 열었던 파일을 보여줍니다.(그런데 꼭 NIF파일이 아닌 다른 파일에 의해서 CTD가 발생할 수도 있습니다)

2. 문제가 발생했을 때 크래시 픽스가 메시지창을 띄우는 방식을 변경했습니다. 아마 크래시 픽스가 오류에 관한 메시지창을 띄울때 게임화면 뒤에 숨겨져 안 보이던 문제를 고친 듯 합니다.

3. Null 포인터를 체크해서 CTD를 방지하는 기능이 더 많이 추가되었습니다(오브젝트, 액터 등의 값이 비어있는 데이터)

4. VRAM(그래픽카드 메모리) 부족으로 인해 메모리 할당이 실패하는 경우 메시지 창을 띄워서 알려줍니다.

5. 메모리 블럭의 할당을 ini 파일에서 수동으로 설정할 수 있습니다. 메모리 단편화를 줄이는데 도움이 되겠지만, 단편화를 완전히 해결할 수는 없습니다. 기본값은 Disable입니다.


6. CrashFixPlugin.ini에서 메모리 블록을 수동으로 설정하는 방법

CustomMemoryBlock=1로 변경하고 그 아래에 있는 CustomMemoryBlockTotalSizeMb 값을 설정해야 합니다.

기본값은 64로 되어있지만 이 값도 조금 많으므로 24, 32, 48, 64 이렇게 값을 높여가면서 테스트하는 것이 좋습니다.

일단 위와 같이 ini파일을 수정한 후 게임상에서 콘솔을 열면 메모리 블럭당 사용량 퍼센트가 표시됩니다.

퍼센트가 너무 낮게 나온다면 입력한 값이 너무 커서 쓸 수 있는 메모리 공간을 다 못쓰고 낭비된다는 겁니다. 이른바 메모리 단편화 현상입니다.

반대로 항상 100%가 나온다면 입력한 값이 너무 적어 메모리가 부족하다고 볼 수 있으니 값을 높여주는게 좋습니다.

이 퍼센트값은 게임상 오브젝트 및 NPC 숫자에 따라 달라지겠죠. 예를 들면 실내보단 야외에서 메모리 사용량이 많을 것이므로 야외에서 콘솔을 열어 퍼센트값을 확인하는게 좋습니다.

7. v10 사용자가 v11 베타로 업그레이드했다면 당연한 얘기겠지만, 아래 값으로 수정하는걸 잊지 마세요. 간혹 성격급하신 분들은 잊어버릴수 있습니다.

UseOSAllocators=1
AlignHeapAllocate=1
WarnSKSEMemoryPatch=0

댓글 4개:

  1. Enblocal.ini 이 파일은 어디위치해 있는건가요?

    답글삭제
    답글
    1. enb 파일을 설치한 경우에만 해당되는 것으로 보입니다.

      삭제
    2. 작성자가 댓글을 삭제했습니다.

      삭제
  2. CustomMemoryBlockTotalSizeMb 수치에서 48랑 64 사이 값도 있을가요??

    답글삭제