0. 이 픽스가 필요한 이유
- CTD를 획기적으로 줄여줍니다. 저같은 경우, 리텍을 1K로만 해도 30~1시간 마다 CTD를 경험해야만 했습니다.
이 픽스를 한 이후, 6시간 가량 CTD없이 플레이가 가능하여 ENB와 리텍을 좀 더 고사양으로 바꾸어 플레이할 수 있었습니다.
모드 설치 환경과 시스템 사양에 따라 다르겠지만, 저에게는 CTD가 99.9% 정도(사실상 없어짐) 사라지는 효과가 있었습니다.
1. 필요한 것
(메모리 패치가 제대로 적용되었는지 확인하기 위한 모드입니다)
또는, ENBBoost가 포함된 최신 버전의 ENB.
(필수는 아니지만 램 사용량을 안정화하기 위해 사용하는 것을 추천합니다. // 특히 64비트 유저)
-1기가 이상 VRAM을 가진 그래픽 카드
-4기가 이상의 시스템 메모리 (8기가 이상 권장)
-Safety Load를 사용하고 있다면 삭제
2. 사용법
1번에서 설명한 필요 파일들을 모두 받아 스카이림에 적용합니다.
SKSE : 사이트에서 파일을 받아, 스카이림이 설치된 폴더 (TESV.EXE가 있는 곳)에 넣습니다.
Memory block log : 넥서스에서 파일을 받아, 데이터 폴더에 덮습니다. (일반 모드 수동설치와 동일)
ENBBoost : 최신 바이너리를 사용하는 ENB에는 대부분 포함되어 있기에 따로 설치할 필요 없습니다. (ex:리얼비전enb)
(생략해도 되는것)
스카이림을 실행하여 아무거나 로딩해서 화면을 봤다가, 다시 종료합니다.
이후 스카이림 폴더의 Data\SKSE\Plugins 에 들어가서 MemoryBlocksLog.txt 파일이 생성되었는지 확인합니다.
제대로 생성되었다면 이런 내용일 것입니다.
logging of blocks enabled
logging max values only
Block1 Max 256MB
Block2 Max 256MB
Block1 85
Block2 8
Block2 9....등등
* 위의 블록1, 2옆에 256MB라고 쓰여진 부분이 현재 스카이림에서 사용하는 메모리블럭의 크기이며 우리는 이 크기를 늘리는 걸 목표로 합니다.
-------
필요한 것이 다 갖춰졌으면 이제 SSME를 받습니다.
안에 있는 d3dx9_42.dll 와 ssme.ini 를 스카이림 폴더 (TESV.EXE가 있는 곳 데이터폴더 아닙니다)에
집어넣습니다. 그리고 SSME.ini 파일을 열어봅시다.
그럼 다음과 같은 내용이 있을 것이며, 설명은 필요한 곳에 '//'를 넣어 하겠습니다.
[Settings]
GiveFirstBornToSheson=1
; replace movaps with movups
Location00=0x004BD832
OldValue00=0x6086290F
NewValue00=0x6086110F
; 1st block
Location01=0x00687E89
; old value = 256 MB
OldValue01=0x00000200
; new value
; 0x00000200 = 256 MB
; 0x00000280 = 384 MB
; 0x00000300 = 512 MB (recommended)
; 0x00000380 = 640 MB
; 0x00000400 = 768 MB
; 0x00000480 = 896 MB
; 0x00000500 = 1024 MB (1 GB, will probably crash)
NewValue01=0x00000300 // 이 값이 첫번째 메모리블럭에 할당할 용량을 설정하는 부분입니다.
원하는 용량을 위의 진한글씨 중에서 찾아 입력하시면 됩니다.
(예 : 768mb = 0x00000400)
기본값은 512로 되어있습니다. 그대로 놔둬도 바닐라상태보다 두배의 메모리 블럭을 가집니다.
; 2nd block
Location02=0x00A4E6BF
; old value = 256 MB
OldValue02=0x10000000
; new value
; 0x10000000 = 256 MB (recommended)
; 0x18000000 = 384 MB
; 0x20000000 = 512 MB
; 0x28000000 = 640 MB
; 0x30000000 = 768 MB
; 0x38000000 = 896 MB
; 0x40000000 = 1024 MB (1 GB, will probably crash)
NewValue02=0x10000000 //이 값은 두번째 메모리블럭의 용량입니다. 첫번째에서 했듯이 위의 목록에서 원하는 용량을 찾아 입력합니다. 기본값은 256MB로 바닐라와 같습니다.
기본값이 조금 부족하다 싶으면
768 / 512 를 사용하는걸 권장합니다.
(저는 8기가 시스템메모리 + VRAM1기가 인데 위 설정으로도 안정적임을 확인했습니다)
설정이 끝났으면 ini파일을 저장합니다.
이제 스카이림을 실행해서 아무거나 로딩을 해본 뒤, 다시 나갑니다.
아까 확인했던 DATA\SKSE\Plugins 의 MemoryBlocksLog.txt 파일을 열어봅니다.
logging of blocks enabled
logging max values only
Block1 Max 768MB (아까 설정했던 값)
Block2 Max 512MB (아까 설정했던 값)
Block1 85
Block2 8
이렇게 변해있으면 패치가 완료된 것입니다.
CTD, 이제 안녕!
--------------
안정화에 상당히 도움된다고 하니 설치하는 것을 추천하나, 몇몇 유저에게 문제제기가 들어온 걸로 봐서 선택에 맡깁니다.
전 설치를 추천합니다.
--------------
추가2 : 지금은 넥서스에서 사라지고 없는, 기존의 skse_steam_loader.dll 를 바꾸는 메모리 패치를 사용하고 계시다면
SKSE를 다시 받아 SKSE파일을 원래대로 되돌리고, 이전 메모리 패치를 지우고 이걸 설치하길 권장합니다.
물론 이걸 설치하지 않고 skse_steam_loader.dll 를 바꾸는 패치를 사용하셔도 되긴 하나, 이것과 이전 것..
둘 중 하나만 쓰시는 걸 권장합니다.
---------
출처 : 직접 작성 (엘더7카페에도 같은 글을 썼는데, 제가 쓴겁니다)