티스토리 툴바

BLOG main image
분류 전체보기 (89)
냉수한잔 (14)
NDS Inside (10)
Visual Basic (3)
Python (10)
myCortex (12)
myGyro300SPI (7)
myARS (4)
MCU 일반 (4)
토막회로 (2)
BreakingExample (1)
TED (1)
MISC. (21)
88,520 Visitors up to today!
Today 17 hit, Yesterday 103 hit
daisy rss
tistory 티스토리 가입하기!
'NDS Inside'에 해당되는 글 10건
2007/10/30 12:12

목적#

libfat를 이용해 만든 homebrew를 no$gba 에뮬레이터에서 동작시키는 방법.


참조링크#

http://forum.gbadev.org/viewtopic.php?p=114090&highlight=fcsr+dldi#114090

http://forum.gbadev.org/viewtopic.php?t=12654


Utilities#

padbin#

devkitPro/devkitARM/bin/padbin.exe



fscr.dldi#

http://gpf.dcemu.co.uk/files/pc/fcsrDLDI.zip



dlditool#

devkitPro/devkitARM/bin/dlditool.exe



작업순서#

  1. 보통 방법대로 빌드한다. *.ds.gba 파일이 만들어진다.
  2. padbin을 이용해서 이미지 파일 뒤쪽을 깔끔하게 정리한다.
  3. fcsr 이미지(FAT12)를 만든다.
  4. fcsr 이미지와 게임 이미지를 결합한다.
  5. dlditool을 이용해서 fcsr.dldi를 적용한다.


padbin 이용하기#

padbin 512 XXX.ds.gba

파일 사이즈가 512바이트의 배수가 될 때 까지 XXX.ds.gba 파일의 뒤쪽에 0xFF를 덧붙인다.


fcsr 이미지 만들기#

http://gpf.dcemu.co.uk/files/pc/fcsrimage.zip

위에서 다운로드받은 유틸리티를 이용한다.

유틸리티의 잘못된 부분을 수정한 파일 :



사용법 :

  1. FAT에 넣을 파일 및 디랙토리들을 특정 디랙토리아래에 모아둔다.
  2. build.bat fcsr.img (1의 디랙토리 이름)

위와같이 수행하면 1의 디랙토리 아래의 모든 파일 및 하위 디랙토리들이 fcsr.img 파일에 FAT12 형식으로 들어간다



fcsr 이미지와 게임 이미지 결합하기#

cat XXX.ds.gba fcsr.img > XXX_fs.ds.gba



dlditool 적용하기#

dlditool fcsr.dldi XXX_fs.ds.gba







이 글은 스프링노트에서 작성되었습니다.

크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/19 관련글 쓰기
Name
Password
Homepage
2007/10/24 10:11
devkitARM release 21 업데이트되었다.
http://www.devkitpro.org/

몇가지 기능 추가와 버그 픽스가 있고 윈도 비스타도 지원하게끔 된것 같다.

크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/18 관련글 쓰기
Name
Password
Homepage
2007/09/20 18:15


PAlib 070717 버젼의 내용을 한글화 하여 chm 파일로 만들었다.

기본적으로 PAlib의 include 폴더 아래의 파일들에 있는 주석을 한글화 하면서 doxygen과 html help workshop을 이용하여 chm으로 만든 것이다.
PAlib는 주석이 워낙 성의없이 달려있어서 번역된 이 메뉴얼 역시 버릇이 없기는 마찬가지다. 요상한 것들은 개별 테스트도 하면서 원본에는 없는 내용도 겻다리로 집어넣기도 하고 했지만 대부분은 영문을 1:1 번역한 것이라 많이 모자란 상태이다. 와중에 일부 파일은 번역을 다 못했다.

큰 도움은 안되겠지만, 막 입문하는 사람에게 조금이나마 유용하게 쓰이기를 바랄 뿐이다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/16 관련글 쓰기
Name
Password
Homepage
2007/09/20 17:58
Wi-Fi 테스트하려고 만든 간단한 샘플 프로젝트.
PC에서 동작하는 서버와 NDS에서 동작하는 클라이언트로 구성된다.
서버 테스트를 위해 PC에서 동작하는 클라이언트도 있다.

libdswifi와 이를 기반으로 한 PAlib의 wifi 모듈은 기본적으로 posix API를 따르고 있다. 사용함에 있어 크게 문제되는 점이 없고, 본 예제 또한 무척 간단한 구성이다.

PC용 서버/클라이언트 소스는 http://www.pcs.cnu.edu/~dgame/sockets/sockets.html 에서 다운로드 받은 것을 약간 손본 것이다. 이 소스는 cygwin의 gcc를 이용해서 컴파일한다. 참고로 gcc는 cygwin의 기본 설치 옵션에 포함되어있지 않으니 설치 시 별도로 선택 설치하도록 한다.


PC에서 서버 프로그램을 띄우면 서버 프로그램은 0x1234 포트에 listen하면서 대기한다.
클라이언트는 입력된 키패드 값을 서버로 전송한다.
서버는 ack를 반환한다.



확인해 봐야 할 사항들 :
  • gethostbyname이 잘 동작하는것일까?
    • DNS에 등록된 이름은 아니지만 PC 클라이언트 쪽에서는 AP의 DHCP 서버에서 이름을 찾아 접속할 수 있다. 하지만 NDS는 이름을 찾지 못한다.
  • non-blocking IO를 위한 깔끔한 구조는 어떤 것이 좋을까?
    • 우선 ioctl과 select 부터 테스트 해 봐야함.

크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/15 관련글 쓰기
잘안되요-_ㅠ | 2008/08/08 01:46 | PERMALINK | EDIT/DEL | REPLY
07년 7월 안정 버젼으로 해도 wifi connection이 실패라고 뜨고,, 08년 2월 beta 버젼으로 해도 동일한 현상이 발생하네요 ㅜ_ㅜ

밑에 Connector를 SoftAP로 하는 거 잘 따라하고, 다른 wifi 라이브러리 예제로 했을 땐 AP에 접속이 잘 되었는데..
이 예제나 원래 palib 예제에 있는 wifi 예제가 전 잘 안되요.. 혹시 잘 되시나요??
Favicon of http://irmus.tistory.com BlogIcon irmus | 2008/08/08 07:59 | PERMALINK | EDIT/DEL
소스코드에서 서버의 IP주소를 설정해보셨습니까?
DHCP와 DNS가 NDS쪽에서 잘 안되는것 같았습니다. 계속 안되신다면 서버 IP를 NDS쪽 소스에다 직접 입력해서 한번 해 보시길 바랍니다.
그리고, 서버쪽 PC에서 방화벽이 0x1234 포트를 막고있는건 아닌지 한번 확인해 보시구요...
또 서버랑 NDS가 다른 서브넷에 있으면 gateway가 이 포트를 차단하는 수도 있습니다. 우선은 같은 AP 아래에 서버와 NDS를 물려서 실험해 보시길 바랍니다.
뭐좀 여쭤볼게요.. | 2008/09/12 00:58 | PERMALINK | EDIT/DEL | REPLY
위에 글 올렸던 사람인데요.. 해도해도 안되서 다시 여쭤볼게요..
졸업작품이 진도가 안나가서요.. 어디 물어볼 곳이 없어서요.. ^^;

소스 코드 중에
if (PA_ConnectWifiWFC())
PA_Print(1, " =>WIFI connected\n";);
else{
PA_Print(1, " =>WIFI connection failed\n";);
while(1) PA_WaitForVBL();
}
이 부분에서 부터 아예 WIFI connection failed로 넘어 갑니다.

그런데 이전 포스팅 올려주신것보고서 커넥터 연결 설정하고, 다른 라이브러리 테스트 파일로 하면 커넥터에 연결이 됩니다.
이말은 ndsl 커넥터 같에 wifi이 연결이 가능하다는 것 아닌가요?

너무 답답해서.. 여쭤볼게요 혹시 시간 되시면 답변해주시면 감사하겠습니다...^^
Favicon of http://irmus.tistory.com BlogIcon irmus | 2008/09/16 07:37 | PERMALINK | EDIT/DEL
글쎄요...좀 더 해보시란 이야기 밖엔;;; 그냥 안된다가 증상인데 제가 도움 드릴 방법이 막막하네요.
우선 위의 소스는 제가 동작확인한 것임은 분명합니다. 뭔가 환경의 문제겠지요.
테트리스DS로 AP 접속 해서 잘 되는지 확인하시고 처음부터 차근차근 확인해보세요
해결봤습니다. | 2008/09/20 21:09 | PERMALINK | EDIT/DEL | REPLY
문제는.. 무턱대고 닌텐도ds를 해본적 없이 컴퓨터와 통신 하려고 했던 무지때문이였습니다.

커넥터는 함께 딸려오는 소프트웨어로 실행하고, 테트리스ds로 wifi를 설정한 후에는 동일한 소스로 컴퓨터와 통신이 가능했네요..

하여튼 블로그 잘 보고 있습니다 ^^ 감사해요~
Name
Password
Homepage
2007/09/15 18:49
1.0 버젼에서 업그레이드 및 기능 추가된 1.1.0 버젼이다.

doxygen을 이용해 reference manual도 만들었다.

주요 변경 사항은 다음과 같다.
  • 8bit Bitmap mode에서 구현하던 것을 16color mode로 전환.
  • WNText_ClearScr() 함수 추가.
  • WNText_GetVersionString() 함수 추가.

라이브러리 테스트를 위한 app도 다시 정리해서 만들었다. 이 프로젝트에서는 libWNText가 devkitPro 디랙토리에 있을 때 build 되도록 작성되었다. 폴더 구조는 아래 그림과 같다.
사용자 삽입 이미지

libWNText 설치 폴더 구성



크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/14 관련글 쓰기
Favicon of http://fineapple.info BlogIcon 파인애플 | 2008/01/31 23:16 | PERMALINK | EDIT/DEL | REPLY
VS 2005에서 작업중입니다.
빌드할 때 어떻게 해야 할지 잘 모르겠습니다 ㅠㅠ
Favicon of http://irmus.tistory.com BlogIcon irmus | 2008/01/31 16:06 | PERMALINK | EDIT/DEL
여기 올라온 소스는 콘솔창에서 make 돌리는 방법으로 빌드하게끔 만들어져있습니다. 또한 make 돌리기 위한 batch 파일 역시 같이 있습니다. 도스창으로 소스 디랙토리에서 build.bat 파일을 실행하시면 됩니다.
물론 cygwin이랑 devkitARM, PAlib등의 기본적인 개발환경이 구축된 상황일때 이야기입니다.

VS2005에서 작업하시려면 프로젝트 파일을 직접 만들어주셔야 합니다. 복잡한건 아니고, 소스 내의 makefile을 조금만 들여다보고 연구하시면 됩니다.
Favicon of http://fineapple.info BlogIcon 파인애플 | 2008/02/01 13:06 | PERMALINK | EDIT/DEL
음.. 제가 아직 초보라서
어떻게 프로젝트를 생성해야할지 모르겠네요 ;ㅁ;
Favicon of http://www.hizstory.net BlogIcon 마로 | 2008/02/23 17:36 | PERMALINK | EDIT/DEL | REPLY
와.. 정말 멋지십니다 +ㅅ+)/
잘 쓸게요ㅠ_ㅠ)
이케카오리 | 2009/01/17 05:38 | PERMALINK | EDIT/DEL | REPLY
몇일째 설치할려다가 못하고있네요..
일단 라이브러리 설치는다 했고요, 샘플 돌려서 확인해본 결과 컴파일도잘되네요.
그런데 이상하게 제가 만들고있는 프로그램에 링크만하면 컴파일이 안되네요..ㅠㅠ
메이크파일을 아무리 뜯어봐도 도저히 안되서 몇일째 해매고있습니다.ㅠㅠ
제 프로그램에서 컴파일만했다하면 undefined reference to ~~~ 라면서
라이브러리 파일이 링크안된것것처럼나오네요..
도스창에서 make해보면 링크됬다고다나오는데 뭐가 문제인지ㅠㅠ
비쥬얼c++2005에서 작업중인데, 제가모르고있던부분이있거나.
비쥬얼에선 메이크파일따로 중요하게 손봐야될부분이 있다던지한다면
메이크파일 대략 어디어디 손보면되는지 아니면 다른곳에 문제가 있는지 혹시 아신다면 답변좀 부탁드리겠습니다^-^;

글을올리신지 오래되서 보실지는 잘모르겠지만.
꼭보시면 좋겠네요~좋은하루되세요~
Favicon of http://irmus.tistory.com BlogIcon irmus | 2009/01/17 11:38 | PERMALINK | EDIT/DEL
makefile에서는 libWNText/lib/libWNText.a 파일을 같이 링크합니다. 89,90 라인이 그 내용입니다. 링커 옵션 중 -l 이 같이 링크할 라이브러리 명을 지정하는 것입니다. -l뒤에 라이브러리 이름을 적으면 됩니다만, 이름앞의 lib는 빼고 적어야 하고 확장자 .a도 빼고 적는 것입니다.
예를들어 86라인에 있는 -lfat 를 풀어보면 libfat.a 파일을 같이 링크하라는 뜻입니다.

VS2005로 옮기면서 libWNText.a 파일이 같이 링크되고 있는지 한번 확인해 보세요. 여전히 안된다면 링크 순서도 한번 바꿔보시구요. VS2005가 라이브러리 링크 순서를 따졌었는지 잘 기억은 안납니다만;;
이케카오리 | 2009/01/17 14:43 | PERMALINK | EDIT/DEL | REPLY
아^-^; 빠르고 자세하게 답변해주셨네요.
정말 감사합니다~

그런데 여전히 똑같은 오류가 나면서 안되네요;;
arm-eabi-g++ -g -mthumb-interwork -mno-fpu -L/c/devkitPro/PAlib/lib -specs=ds_arm9.specs A.o Click.o logo.o logo_wifi.o main.o tiles.o -L/c/devkitPro/libnds/lib -L/c/devkitPro/libWNText/lib -lWNText -Lc:/devkitPro/PAlib//lib -lpa9 -lfat -lnds9 -o build.elf
undefined reference to `WNText_Init(unsigned char, unsigned char)'
컴파일하면서 이렇게 나오는데 "-L/c/devkitPro/libWNText/lib -lWNText" 요부분이 라이브러리 파일을 추가했다고
확인해주는 부분 아닌가요?? 이거보면 라이브러리가 추가된것같은데 이상하게 자꾸 똑같은에러가나네요.;
vs2005에서 혹시 라이브러리를 링크못하나해서 환경변수랑, 옵션에서 디렉토리까지 다잡아줬는데도,
똑같이 나오고. 위에 컴파일했을때 나오는 말이 링크가 된거라면 다른 요인이겠죠?;ㅠㅠ
친절한 답변 감사드리고요, 잘찾아보고 해결보면 글또올리겠습니다~

항상 여기서 많이 배워가고있습니다^-^
Favicon of http://irmus.tistory.com BlogIcon irmus | 2009/01/19 10:20 | PERMALINK | EDIT/DEL
-L/c/devkitPro/libWNText/lib 요 부분을...
-Lc:/devkitPro/libWNText/lib 처럼 바꿔 보세요.
PC 환경에 따라 문제가 될수도 있습니다.
나머지는 제대로 된것 같습니다. 조만간 성공하실듯 ^^
지니아르 | 2009/07/29 17:46 | PERMALINK | EDIT/DEL | REPLY
저도 윗분과 똑같이 나오는데요. 그래서 경로부분을 고쳤더니
arm-eabi-g++ -g -mthumb-interwork -mno-fpu -L/c/devkitPro/PAlib/lib -specs=ds_arm9.specs logo.o logo_wifi.o main.o -L/c/devkitPro/libnds/lib -Lc:/devkitPro/libWNText/lib -Lc:/devkitPro/PAlib//lib -lpa9 -lfat -lnds9 -ldswifi9 -lWNText -o build.elf
와 같이 했는데도 언디파인 리퍼런스가 나오네요.
이상하게 C언어에서는 irmus님의 라이브러리가 적용이 잘되는데 C++에서는 잘안되는거 같은데요??
Duke | 2010/04/06 22:07 | PERMALINK | EDIT/DEL | REPLY
안녕하세요 irmus님께서 만드신 WNText를 PAlib 말고 그냥 NDS라이브러리로 바꾸려고 하는데
PA_16cPutPixel 함수에 대응 하는 NDS 함수는 없나요?
도와주시면 감사하겠습니다.

kkh132@naver.com로 메일 보내주시거나,
코멘트 달아주시면 확인하겠습니다.
Favicon of http://irmus.tistory.com BlogIcon irmus | 2010/04/07 11:55 | PERMALINK | EDIT/DEL
후아~
손놓은지 백만년이라.. ^^;
이미 제 노트북에서는 PAlib가 통채로 사라졌습니다. 소스 뒤져보려고 해도 방법이 없네요. PAlib 소스 받아다 내부를 한번 뒤져 보시는 방법밖에 없을것 같습니다.
함수 이름 봐서는 간단한 기능이니 분명 대응방법이 있을 것 같습니다.
좋은 결과 얻으시길 기원할께요~
Duke | 2010/04/07 21:56 | PERMALINK | EDIT/DEL
PA_16cPutPixel 대신에
버퍼를 이용해서 폰트 출력하는데에는 성공했습니다.
근데 폰트 뒤쪽으로 배경을 뿌리니 이상한 노이즈 같은게 생기네요 BG_BMP_BASE(base) 정확히 이해를 못해 그런가 봅니다.
폰트를 쓴다음에 어떻게 지우죠 ㅋㅋ 큰일이네요
Duke | 2010/04/08 00:15 | PERMALINK | EDIT/DEL
배경 없이 버퍼를 만들어서 폰트를 뿌리면
전혀 문제 없이 나옵니다.
근데 배경만 뿌리면 노이즈가 발생하거나
폰트가 이상하게 나옵니다.
도와주실수 있나요 ㅜㅜ
Duke | 2010/04/08 04:11 | PERMALINK | EDIT/DEL
테스트 해본 결과 제 생각에는 폰트가 메모리를 많이 먹어서 다른 이미지를 집어 넣을 공간이 없는거 같아요 ㅜㅜ
폰트가 지금 BG_BMP16_256x256 으로 쓰고 있는데
BG_BMP8_256x256으로 하니까 또 안되더라구요
방법이 없을까요.
Favicon of http://irmus.tistory.com BlogIcon irmus | 2010/04/08 08:41 | PERMALINK | EDIT/DEL
증상을 봐서는 메모리가 부족해서가 아니라 메모리를 깨먹는듯 한데요
배경이 사용하는 메모리 영역과 폰트가 사용하는 메모리 영역이 중첩되면서 서로 침범하는것 같습니다. 한번 잘 살펴보세요.
Duke | 2010/04/08 18:05 | PERMALINK | EDIT/DEL
그렇군요 그럼 어떻게 하면 좋을까요
지금 폰트와 배경 이미지가

u16* buffer = BG_BMP_RAM_SUB(0);
REG_BG2CNT_SUB = BG_BMP16_256x256 | BG_BMP_BASE(0) | BG_PRIORITY(0);
REG_BG3CNT_SUB = BG_BMP8_256x256 | BG_BMP_BASE(6) | BG_PRIORITY(1);
이렇게 세팅 되있는데요.
이게 맞나요? 256*192*2 = 96Kbyte 이렇게 계산하는게...
Duke | 2010/04/08 19:49 | PERMALINK | EDIT/DEL
폰트랑 그림은 노이즈 없이 잘 출력되는데요

문제는 배경 이미지가 아래쪽 256*64만큼이 잘려서 안보이네요
Duke | 2010/04/08 23:32 | PERMALINK | EDIT/DEL
에뮬레이터에서 보니까 잘나오는줄 알았는데

NDS에 직접 넣어 보니까 또 다르네요.
위쪽에 노이즈가 있네요.
근데 혹시 직접 연결 가능한 메신져 라던가.
연락처를좀 알수 있을까요..?
kkh132@naver.com 제 메일입니다.
Duke | 2010/04/09 18:44 | PERMALINK | EDIT/DEL
지금 보니 메모리가 부족 했던 모양입니다.
vramSetMainBanks(VRAM_A_MAIN_BG_0x06000000, VRAM_B_MAIN_SPRITE_0x06420000, VRAM_C_SUB_BG_0x06200000, VRAM_D_SUB_SPRITE);
에서 VRAM_B를 MAIN_BG_0x06020000 으로 바꿔주니까
잘나오네요
Duke | 2010/04/09 19:12 | PERMALINK | EDIT/DEL
음 근데 SUB화면에는 VRAM_C 말고는 BG메모리를 쓸수 있는곳이 없네요 BG 2개랑 SPRITE랑 동시에 SUB화면에 뿌려야되는데 메모리 때문에 난감하네요 이거..
Name
Password
Homepage
2007/09/14 18:59
오늘 만든 한글 출력 라이브러리이다.

PAlib를 기반으로 만들었으며, PAlib와 비슷한 모양의 API를 가지도록 꾸몄다.현재 버젼에는 PAlib의 PA_OutputSimpleText() 함수에 해당하는 기능만 가지고 있다. 즉 variable argument를 이용해서 printf처럼 다양한 출력은 제공하지 않는다. 다음 버젼에서 해야할 일이다.
사용자 삽입 이미지

WNText 라이브러리를 사용한 예제 프로그램



  • 영문 알파벳, 숫자, 기호는 8*16 픽셀 크기의 고정폭 폰트(FixedSys)
  • 한글은 16*16 픽셀 크기의 고정폭 폰트(MS 윈도의 굴림)
  • KSC-5601 완성형 폰트셋
  • 글자 출력 위치는 픽셀 단위로 지정(x:0~255, y:0~191)
  • 10개의 폰트 색상 지원.
  • screen 0/1 선택 가능.
  • background 0~3 선택 가능.
  • 8bit Bitmap mode 사용.
우선은 폰트 크기가 고정된 구성이다. 폰트의 크기를 자유롭게 바꾸려면 ttf 폰트 파일에서 bitmap이나 binary 등으로 코드셋 데이터를 추출해 내는 유틸리티가 있어야 한다. 현재 보유중인 유틸리티는 16*16 크기의 추출만 제공하기 때문에 관련 유틸리티를 만들거나 구해야만 가능하다.
현재 폰트 크기를 유지하면서 폰트를 변경하는 것은 쉽게 할 수 있다. 위의 첨부 파일 중 source 를 받아 data 폴더 내에 있는 폰트 추출 유틸리티를 활용하면 된다. 이 유틸리티는 롬 한글화 프로젝트 팀의 자료실에서 구한 것이다.

8bit Bitmap mode를 사용하기 때문에 VRAM의 낭비가 심한 편이고 bitmap mode를 사용하는 app을 작성할 때에는 신경써서 작업해야 한다. 처음에는 tile만 가지고 어떻게 해볼까 하고 여기저기 찔러봤지만 도저히 방법이 없어서 일단 생각만 남겨두고 bitmap mode로 구현하게 되었다. 참고로 NDS에는 2D 모드에서 sprite를 128개 밖에 만들지 못한다. 그러니 sprite로 한글 출력을 구현하면 한 화면에 128글자밖에 찍지 못하는 사태가 발생한다.

이 라이브러리를 사용하려면 libWNText-1.0.zip 파일 내의 header file을 적당한 위치로 복사해서 include하고, libWNText.a 파일 역시 적당한 위치로 복사해서 자신의 app에 link 시켜야 한다. Makefile을 직접 손보면 간단하게 처리할 수 있다. 예제로 첨부한 testlibWNText.zip 내의 Makefile을 참고하면 쉽게 자신의 프로젝트에 적용할 수 있을 것이다.

다음 버젼에서 해야할 일 :
  • printf 스타일의 argument 지원
  • 폰트 크기 변경가능한 구조로 작성
  • 폰트 변환 유틸리티 작성
  • 가변폭 폰트 지원에 대한 고려
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/13 관련글 쓰기
Favicon of http://buzzler.tistory.com BlogIcon BZːR™ StandAlone | 2007/09/18 18:58 | PERMALINK | EDIT/DEL | REPLY
NDS한글 라이브러리가 있는지 찾던중에 검색으로 들어왔습니다.

먼저 구현하셨네요 대단 '-'b

Tile이었으면 더 좋았을뻔했어요.

만드려는게 좀 텍스트가 많이 필요하고 sprite도 사용하는편이라..

: ) 배워갑니다
Favicon of http://irmus.tistory.com BlogIcon irmus | 2007/09/20 17:21 | PERMALINK | EDIT/DEL
감사합니다.
1.1버젼에서는 16컬러 모드로 변경되었습니다. 한글때문에 VRAM이 모자라는 경우는 어느정도 피해갈 수 있을거라 생각됩니다.
Name
Password
Homepage
2007/09/07 11:52
사용자 삽입 이미지

사진 출처 : Nintendo Korea


방금전에 닌텐도 Wi-Fi USB 커넥터를 배송받았다. 이미 무선 공유기를 이용해서 NDS에서 wifi를 사용하고 있지만 wifi 기능을 테스트 하기 위한 일종의 reference로 사용하기 위해 구매한 것인데, 받아서 설치하고 접속테스트를 하니 못찾는 것이 아닌가!!
레퍼런스로 쓸려고 구입했는데 안된다라...
에러는 52103.

여기저기 뒤져보니 몇가지 해결책을 제시하고 있으며, 이것저것 해보다 보니 결국 잘 해결되기는 했지만 정확한 원인과 정확한 해결책은 모르는 상태다. 언인스톨 후에 다시 해 봐도 문제 재현도 안되고, 뭔가 많이 불안한 장치인듯 하기도 하다.


내가 해본 52103 에러 대처법.
  1. 노트북에 무선랜과 유선랜이 같이 있으며 무선랜을 사용중이었다. 그래서 우선 무선랜을 끄고 유선 연결 한 다음 접속시도. 이때 무선랜 쪽의 인터넷 공유를 끄고 유선랜쪽의 인터넷 공유를 활성화 해야 한다.
  2. 닌텐도 Wi-Fi USB 커넥터에 Windows 방화벽을 사용하지 않음.
  3. 닌텐도 Wi-Fi USB 커넥터의 TCP-IP 등록정보에서 DNS 서버 직접 입력. 디폴트로는 아무것도 입력되어 있지않다. 여기에 아무 DNS서버 IP를 넣어봤다.
  4. 유선랜의 인터넷 공유를 끄고, 유선랜과 닌텐도 Wi-Fi USB 커넥터를 네트워크 브릿지로 연결.
여기까지 해 보니 잘 되는 것이다. 그래서 다시 원상복구 시킨 다음에 정확한 해결책을 찾아야지 했지만, 원상복구 시켜도 여전히 잘 되고 있다.
사용자 삽입 이미지

현재 네트워크 환경

1 - 노트북의 유선 랜
2 - 닌텐도 Wi-Fi USB 커넥터
3 - 노트북의 무선 랜
노트북은 무선 랜으로 인터넷에 연결되어 있으며, 닌텐도 Wi-Fi USB 커넥터는 무선랜의 연결을 공유해서 연결되고 있는 것을 볼 수 있다.

사용자 삽입 이미지

네트워크 공유 설정

네트워크 속성에서 고급 탭에 가면 [인터넷 연결 공유]라는 녀석이 있다. 이것저것 건드리며 무선랜의 속성에서 인터넷 연결 공유를 껐을 때 캡쳐한 화면이다. 닌텐도 Wi-Fi USB 커넥터의 소프트웨어를 PC에 설치하면 자동으로 연결 공유가 설정된다.

사용자 삽입 이미지

네트워크 브리지 설정하기

무선랜을 꺼버리고 유선랜을 연결한 다음 무선랜/유선랜의 인터넷 연결 공유는 모두 끈 상태에서 유선랜과 닌텐도 Wi-Fi USB 커넥터를 모두 선택해서 마우스 우클릭하면 [연결 브리지]라는 녀석이 나타난다. 이것을 선택하고 테스트 해 봤을 때 처음으로 연결이 잘 되었었다. 나중에 이 브리지를 제거한 후에도 잘 된다는 것이 문제아닌 문제일 뿐.




우여곡절을 겪었지만 기본적인 테스트를 마무리 했다.
닌텐도 Wi-Fi USB 커넥터에는 동시에 다수의 NDS가 접속하는 것이 가능하다. 그들 사이에 Wi-Fi 게임을 하는 것 역시 가능하다.
그치만 dswifi를 이용한 접속이 안된다. dswifi를 이용해서 USB 커넥터에 접속하는 방법을 몰라서 일 수도 있을것 같다. 좀 더 방법을 찾아본 다음에 결론을 내려야 할듯...
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/11 관련글 쓰기
Favicon of http://irmus.tistory.com BlogIcon irmus | 2007/09/07 12:10 | PERMALINK | EDIT/DEL | REPLY
우선 dswifi에서 USB 커넥터를 지원하지 않는다고 한다. 따라서 일반적인 방법으로는 사용할 수 없지만, PC에 설치된 닌텐도 Wi-Fi USB 커넥터의 드라이버를 해킹하는 방법으로 사용할 수 있다고는 한다.
http://forums.afterdawn.com/thread_view.cfm/390312 이곳에서 해킹된 드라이버를 받을 수 있다.
아직 직접 테스트 해보지는 못했다.
Favicon of http://irmus.tistory.com BlogIcon irmus | 2007/09/12 16:29 | PERMALINK | EDIT/DEL | REPLY
위의 댓글에서 언급한 "해킹된 드라이버" SoftAP를 사용하는 방법에 대한 포스팅 -> http://irmus.tistory.com/12
Favicon of http://marr.tistory.com BlogIcon milly marr | 2008/05/27 11:32 | PERMALINK | EDIT/DEL | REPLY
연결 공유 해제하고 네트워크 브릿지를 하니까
바로 되네요 우왕 감격+ㅂ+ 감사합니다~
Favicon of http://ㅅㅂㄷㄱ BlogIcon 오베리베리해피 | 2010/05/17 18:11 | PERMALINK | EDIT/DEL | REPLY
님짱임 덕분에 와이파이 잘하고갑니다 ^^..
님아사랑함 | 2011/10/08 11:18 | PERMALINK | EDIT/DEL | REPLY
님사랑함 쩐다 감사
Name
Password
Homepage
2007/08/24 11:56
DSerial2에 관한 문서가 그리 잘 되어 있지 않은 편이기 때문에 남아있던 몇가지 궁금증들은 natrium42의 demo 프로그램을 돌려보면서 얼추 해소되었다. 그래서 간단한 데모 프로그램을 작성해 보기로 하였고, 첫 번째 데모 프로그램으로 "평면위의 공"을 만들기로 하였다.

NDS 본체 위에 공이 하나 있다고 생각하고, 본체를 이리 저리 기울여서 공의 위치를 옮겨보는 그런 간단한 프로그램이다. 정확하게 하려면 물리엔진을 올려야겠지만, 가속도 센서 테스트라는 이번 데모의 목적에만 충실하기로 하고 생략해 버렸다.
사용자 삽입 이미지

데모 스크린 샷


위 사진은 에뮬레이터에서 캡쳐한 스크린샷이다. 물론 에뮬레이터에는 DSerial2가 없기 때문에 공을 움직일 수는 없다. DSerial2를 이용해서 프로그램을 띄울려면 NoPass카트와 DSerial2카트를 갈아끼우는 번거로움이 있기 때문에 대부분의 개발을 에뮬레이터상에서 하고 마지막 테스트만 NDS에 올려보았다. 에뮬레이터에서는 가속도 센서 대신 키패드를 이용해서 공을 움직이는 방식으로 간이 테스트를 진행했다.

이 예제가 포함하고 있는 내용은 다음과 같다.
  • 화면에 텍스트 출력. PA_OutputText()
  • 배경 로딩. PA_EasyBgLoad()
  • Sprite 생성과 움직이기. PA_CreateSprite(), PA_SetSpriteXY()
  • DSerial의 ADC 관련. dseAdcRead()
다음은 동작하는 모습을 찍은 동영상이다.
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/8 관련글 쓰기
Favicon of http://withrobot.tistory.com BlogIcon getcome | 2007/08/24 12:05 | PERMALINK | EDIT/DEL | REPLY
동영상도 훌륭하고, 정리도 인상적입니다.
Favicon of http://findingmyself.net/wp/ BlogIcon 폐인희동이 | 2007/08/28 00:34 | PERMALINK | EDIT/DEL | REPLY
상당히 흥미로운 기기네요 ^^
Name
Password
Homepage
2007/08/22 12:49
DSerial2는 8051 프로세서를 내장하고 있으며, 이 프로세서에 어떤 펌웨어를 올리느냐에 따라 다양한 기능을 하도록 설정할 수 있다. 펌웨어를 직접 작성하면 좋겠지만 우선 간단히 동작여부를 테스트 해 보기 위해 Natrium42가 공개한 데모 코드를 다운로드 받아 돌려보기로 한다.

데모 코드는 natrium42의 wiki에 가면 다운로드 받을 수 있다. 우선 가장 최신 버젼인 1.1 beta 2를 다운로드 받아 컴파일 해 보았다.
참고로 현재 개발환경은 devkitARM R20 버젼이다.
압축을 풀면 mcu, nds, tools 3개의 폴더가 나온다. mcu는 앞에서 말한 8051용 펌웨어이고, nds는 NDS용 코드, tools는 hex2bin 유틸리티를 포함하고 있다.
nds 폴더에서 make 하면 다음과 같은 에러가 나온다.
d:/MyDocuments/NDS/DSerial/dserial-1.1-beta2/nds/arm9/source/card_spi.c:58: error: 'REG_EXEMEMCNT' undeclared (first use in this function)
찾아보면 REG_EXEMEMCNT 라는 레지스터는 없고, 대신 REG_EXMEMCNT 라는 녀석이 있다. devkitPro 최신 버젼에서 오자가 수정된 것이 아닐까 싶다. 일단 오류 수정하고 빌드하면 잘 수행된다.

빌드 결과물은 dserial.ds.gba, dserial.nds 파일이 만들어진다. SuperCard에서는 dserial.ds.gba 파일을 dserial.sc.nds로 이름을 바꿔서 사용하면 된다.
이 데모를 수행하려면 다음의 절차를 거쳐야 한다.
  1. 이 바이너리를 micro SD에 저장한다. micro SD는 FAT-16으로 포맷되어 있어야 하며 저장하는 폴더 위치는 어느 곳이어도 무관하다.
  2. micro SD를 SuperCard에 삽입하고, NDS에 SuperKey, SuperCard를 끼운 상태로 부팅한다.
  3. 화면에 SuperCard 메뉴가 나타나면 SuperKey를 뽑아내고 DSerial2 카트를 끼운다.
  4. SuperCard 메뉴에서 dserial.sc.nds 파일을 선택하고 수행한다.
사용자 삽입 이미지

초기화면. 초기화가 잘 되었슴을 보여준다.

사용자 삽입 이미지

가속도 센서 값을 읽은 모습. Y 버튼을 누르면 한번씩 읽는다.




크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/7 관련글 쓰기
Name
Password
Homepage
2007/08/22 12:15
NDS용 다용도 카트리지를 만들려는 목적으로 여러가지 자료를 뒤지다가 부족한 부분이 있어 DSerial을 구매하기로 하였다. 이 제품은 slot-1용 확장 카트리지로 다양한 외부 인터페이스를 제공하고 덤으로 2축 가속도 센서도 내장하고 있다. 자세한 내용은 DSerial 공식 페이지에서 참조할것.

Slot-1용 제품이다 보니 사용하려면 slot-2용 메모리 어뎁터도 있어야 한다. 현재 R4만 사용하고 있기 때문에 slot-2용 어뎁터 역시 같이 구입하였다. 구입은 natrium42(DSerial 만든 개발자)가 운영하고 있는 Electro Bee에서 진행하였다.
  1. DSerial2 - $45
  2. SuperCard Lite + SuperKey - $50
배송비는 Canada Post의 Small Packets Air, International 이용. $8.19

8월 10일 주문하고 PayPal로 결재하였다. 당일 배송 시작하여 그저께 8월 20일에 배송 완료 되었다. 배송비를 절약하기 위해 가장 저렴한 것을 골랐던 탓에 배송 추적이 안되어 조금 답답한 열흘이었지만 생각외로 빨리 도착한것 같다.

사용자 삽입 이미지

뽁뽁이 봉투에 담겨져서 배송되었다


사용자 삽입 이미지

박스 포장된 SuperCard와 대비되는 DSerial2


사용자 삽입 이미지

내용물들...


사용자 삽입 이미지

DSerial2의 USB와 GPIO 커넥터


SuperCard는 CF, SD, mini SD, micro SD등 다양한 버젼이 있지만, R4에서 사용하는 micro SD 버젼을 구입했다. 테스트 결과 FAT-16으로 포맷하면 양쪽에서 같이 사용할 수 있다.

SuperKey는 NoPass device이다. 부팅할 때에만 필요하고, SuperCard의 메뉴 화면에 들어간 다음에는 뽑아버려도 무관하다. 사실 DSerial2를 끼울려면 SuperCard의 메뉴 화면 상태에서 SuperKey를 뽑고 DSerial2를 삽입해야 한다. 조금 번거롭기는 하지만, FlashMe를 하지 않는 이상 다른 방법은 없다.


크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback Address :: http://irmus.tistory.com/trackback/6 관련글 쓰기
Name
Password
Homepage
prev"" #1 next