-----------------------------------------------------------------------------------------------------------------
*본문에 들어가기 전 주의사항*
1. 해당 게시물은 emuNAND에서 사용이 가능한 방법입니다.
2. 해당 게시물은 emuNAND상에서 BootNTR이 설치가 되어있다는 전제하에 만들어진 가이드입니다.
3. 해당 방법을 이용하여 발생한 불이익은 사용자 자신의 책임이며 Aka's Atelier에는 책임이 없음을 알립니다.
4. 본 블로그에서는 해당 게시물에 한정하여 자료의 일부를 공유하며 자료의 이용으로 인한 피해는 사용자 자신의 책임임을 알립니다.
5. 위 사항에 동의하시는분만 게시글을 열람하여 주시기 바랍니다.
-----------------------------------------------------------------------------------------------------------------
준비물 : Python 2.7, devkitPro, BootNTR-master
1. 다운받으신 python-2.7.x.x.msi를 실행합니다.
2. 실행을 하게되면 PC에 있는 모든 계정에서 사용할것인지 아니면 현재의 계정에서만 사용할것인지 묻는 부분이 나옵니다.
여기서 가급적이면 Install for all users를 선택합니다.
*해당 가이드에서 시행되는 작업은 관리자 권한을 필요로 합니다.*
3. Python2.7을 설치를 할 경로를 지정하는 부분입니다.
환경 변수 수정을 할줄 모르는 경우 설치 경로는 C:\Python27\ 에 설치하시기 바랍니다.
3-2. 이미 설치가 되어있거나 구버전의 Python 2.7을 사용하게 되는경우 다음과 같은 창이 출력될수 있습니다.
가볍게 Yes를 눌러주시기 바랍니다.
4. Python 2.7의 주요 기능 및 소스관련 문서들을 다운할것인지 결정하는 창입니다.
아무것도 건들지 마시고 Next를 눌러주시기 바랍니다.
5. 다음 화면과 같이 설치가 진행이 됩니다.
6. Python 2.7의 설치가 완료되었습니다.
Finish버튼을 눌러서 설치창을 종료해 줍니다.
1. 다운받으신 devkitProUpdater-1.x.x.exe를 실행합니다.
2. 가볍게 Next를 눌러줍니다.
3. devkitPro는 설치하기전에 해당 파일들을 다운받아서 그 후에 설치를 진행합니다.
여기서는 Download and install/ install from downloaded files를 선택한뒤 Next를 눌러주시기 바랍니다.
4. 다운받은 파일을 유지할것인지 지울것인지 물어보는 창입니다.
여기서는 원하시는대로 선택해주시면 됩니다.
(1) Keep downloaded files = 다운받은 파일을 유지
(2) Remove downloaded files = 다운받은 파일을 삭제
5.devkitPro에서 사용할 컴포넌트를 선택하는 창입니다.
여기서 저희가 필요한것은 다음과 같습니다.
Minimal System, devkitARM, Programmer's Notepad, Insight(선택사항)
만약 아무것도 모르겟다 싶으시면 전부 체크하신뒤에 Next를 눌러주시면 됩니다.
6. 설치될 경로를 지정합니다.
Python 2.7 설치때와 마찬가지로 환경 변수의 수정을 할수 없으신분은 경로를 C:\devkitPro\ 지정을 해주신뒤 Next버튼을 눌러주시기 바랍니다.
7. 다운로드 및 설치가 시작되며 약간의 시간이 소요됩니다.
인터넷 사정에 따라 최소 1분에서 최대 30분까지 걸리수 있으니 잠시 기다려 주시기 바랍니다.
8. 다운로드 및 설치가 완료되었습니다.
1. emuNAND상에서 BootNTR을 실행해줍니다.
2. BootNTR을 실행하면 아래처럼 뜨다가 갑자기 코드들이 뜨면서 Fail이라고 뜹니다.
BootNTR x.x
tmpBuffer: xxxxxxxx
IsNew3DS: x
firmVersion: xxxxxxxx
testing svc_backDoor
testSvcBackdoor OK
patching svc check
svc check patched
InterProcessDmaFinishState: xxxxxxxx
SM patched
FS patched
bnPatchAccessCheck OK
copyRemoteMemory/controlProcessMemory OK
3. N3DS를 종료시킨뒤 메모리카드를 뺀뒤 PC에 연결합니다.
4. 다운받은 BootNTR-master.zip의 압축을 풀어줍니다.
5. N3DS 메모리카드를 열어보면 최상위 폴더에 생성된 pidf.dmp 파일을 BootNTR-master\tools에 넣어줍니다.
6. tools폴더의 process_homemenu.bat 파일을 실행하면 잠시뒤에 tools폴더에 result.txt 파일이 생성됩니다.
7. result.txt 파일을 실행하면 아래의 사진같은 텍스트 내용들이 나옵니다.
여기서 우리가 필요한 부분들은 5번째줄의 if (t == 부터 마지막의 }까지입니다.
8. devkitPro를 설치하면서 같이 설치된 Programmer's Notepad(이하 "ProNote")를 실행합니다.
9. ProNote가 실행되면 BootNTR-master\source에 있는 main.c 파일을 열어줍니다.
10. Ctrl+F를 눌러서 검색창을 연뒤에 Result bnInitParamsByHomeMenu를 입력해준뒤 검색하시면 아래의 화면처럼 해당 부분에 선택이 됩니다.
11. 여기서 조금만 내리시면 아래의 사진같은 return 0;부분이 포함된 코드를 볼수 있습니다.
12. 11에서 찾은 부분을 아래의 사진처럼 하나 더 만들어 줍니다.
13. 이제 result.txt로 다시 돌아와서 7에서 언급한 [5번째줄의 if (t == 부터 마지막의 }까지]부분을 봅시다.
if (t == 0xe3a08001 ) {
ntrConfig->HomeMenuVersion = SYSTEM_VERSION(INSERT_YOUR_VERSION_HERE);
ntrConfig->HomeMenuInjectAddr = 0x12ded0;
ntrConfig->HomeFSReadAddr = 0x12c19c;
ntrConfig->HomeCardUpdateInitAddr = 0x118d78;
ntrConfig->HomeFSUHandleAddr = 0x32dfa4;
ntrConfig->HomeAptStartAppletAddr = 0x12ea08;
}
이런식으로 되어있는것을 확인할수 있습니다.
아마 눈치가 빠르신분이라면 뭔가 익숙할겁니다.
12의 사진에 나온 코드 부분과 매우 일치한것을 볼수 있습니다.
이제 result.txt에서 뽑은 코드들을 12에서 만든 새로운 코드에 붙여넣습니다.
12의 사진에 있던 부분을 13의 사진처럼 바꾸신뒤
ntrConfig->HomeMenuVersion = SYSTEM_VERSION(INSERT_YOUR_VERSION_HERE);
부분을 수정해야합니다.
이 부분은 N3DS의 펌웨어 버전이 들어가야 하는곳이며 버전의 기재방식은 다음과 같습니다.
example) emuNAND 버전이 10.4.0일경우
ntrConfig->HomeMenuVersion = SYSTEM_VERSION(10,4,0);
example) emuNAND 버전이 9.9일경우
ntrConfig->HomeMenuVersion = SYSTEM_VERSION(9,9,0);
여기서 중요한것은 펌웨어 버전에 들어가는 문자는 . 이 아닌 , 입니다.
이제 변경을 다 하셧다면 Ctrl+S 혹은 좌측 상단의 디스켓모양을 클릭하여 저장을 한뒤 ProNote를 종료합니다.
14. BootNTR-master로 돌아오신뒤 build-mode0.bat 파일을 실행합니다.
15. cmd창이 뜨면서 뭔가 좌르륵 올라가다가 마지막에 [계속하려면 아무 키나 누르십시오 . . .]라고 뜨면 종료해줍니다.
16. 작업이 끝나면 BootNTR-master에 output 폴더가 생기게 됩니다.
들어가시면 BootNTR의 cia, elf, smdh파일이 생성된것을 확인할수 있습니다.
여기서 BootNTR.cia파일을 N3DS에 넣고 Devmenu나 BigBlueMenu를 이용하여 설치해주시면 NTR을 정상적으로 이용하실수 있게 됩니다.
-----------------------------------------------------------------------------------------------------------------
*Issue*
Q1) NTR 구동이 완료된 상태에서 다시 한번 더 NTR을 구동하니까 검은화면에 에러스크린이 나옵니다.
혹시 벽돌된것은 아닌가요?
A1) 벽돌이 된것은 아닙니다.
해당 문제는 전원버튼을 계속 누르고 계셔서 N3DS를 종료하신뒤에 다시 켜시면 정상적으로 돌아옵니다.
원인: NTR은 자체적인 Kernelhax를 가지고 있습니다.
해당 Kernelhax는 이름 그대로 커널부분에 개입을 해서 프로그램을 실행시키는건데요.
이미 hax가 적용된 상태에서 적용된 hax를 뚫을려고 시도하다가 에러가 일어난겁니다.
-----------------------------------------------------------------------------------------------------------------
*주의사항*
1. 해당 게시물은 emuNAND에서 사용이 가능한 방법입니다.
2. 해당 게시물은 emuNAND상에서 BootNTR이 설치가 되어있다는 전제하에 만들어진 가이드입니다.
3. 해당 방법을 이용하여 발생한 불이익은 사용자 자신의 책임이며 Aka's Atelier에는 책임이 없음을 알립니다.
4. 본 블로그에서는 해당 게시물에 한정하여 자료의 일부를 공유하며 자료의 이용으로 인한 피해는 사용자 자신의 책임임을 알립니다.
5. 위 사항에 동의하시는분만 게시글을 열람하여 주시기 바랍니다.
-----------------------------------------------------------------------------------------------------------------
*CCL*
저작자와 출처 등을 표시하면 자유이용을 허락합니다.
단, 영리적 이용과 2차적 저작물의 작성은 동일설정내에서 허용됩니다.
Copyrightⓒ Aka's Atelier All Rights Reserved.
-----------------------------------------------------------------------------------------------------------------