'개발'에 해당되는 글 11건

  1. 2007.10.27 Point Break - PUMP IT UP: Exceed Portable
  2. 2007.10.27 Windows Mobile 에서 assert 사용하기
  3. 2007.10.27 Data Abort 에러 발생시에 에러확인 및 중단하기 (2)
  4. 2007.10.18 Windows Mobile 5.0 기기에서 백라이트 꺼지지 않도록 하기
  5. 2007.09.18 Visual Studio 2005과 Service Pack 1을 한번에 설치하기 (2)
  6. 2006.08.15 XNA Game Studio Express!
  7. 2006.06.21 All Game Developer's Network (1)
  8. 2005.06.27 GCJ: The GNU Compiler for Java Programming Language
  9. 2004.10.15 게임업계가.. (1)
  10. 2003.11.06 Dev-Cpp (2)

Point Break - PUMP IT UP: Exceed Portable

일상 2007.10.27 13:07
사용자 삽입 이미지

PUMPIT UP: Exceed의 PSP용 버전인 PUMP IT UP: Exceed Portable 제작 초기에 찍은 사진.
 
기본적인 PSP의 그래픽 성능을 테스트하고 물리적인 한계점을 체크하기 위하여 BGA엔진을 제일 먼저 이식하였다.
결국 메모리의 부족과 과도한 프레임 드랍으로 인하여 로우레벨쪽에 대대적인 수정이 가해졌지만 PSP 제작당시 처음으로 PSP에 띄웠던 제대로 된 화면이라 그 감회는 남다르다.

뒤에 놓여 있는 회원증의 날짜로 보아 찍은 날짜도 2006년 7~8 월 사이 일듯?


Trackback 0 : Comment 0

Write a comment


Windows Mobile 에서 assert 사용하기

프로그래밍/개발/Blackjack(SPH-M6200) 2007.10.27 00:27

블랙잭으로 프로그램을 작성하며 값을 검증하기 위해 MFC 에서 제공하는 ASSERT() 매크로를 사용하였다.

하지만 수많은 시행착오 끝에 ASSERT() 매크로는 제대로 작동하지 않는다는 것을 알았고, 대신 기본으로 제공되는 assert() 매크로는 제대로 작동한다는 사실을 알게 되었다.

다음과 같이 이용하자.

C++

#include <cassert>

assert(expression);

간단히 테스트하기 원한다면

assert(false); 라고 수행하면 원하는 결과를 얻을 수 있다.

사용자 삽입 이미지


Trackback 0 : Comment 0

Write a comment


Data Abort 에러 발생시에 에러확인 및 중단하기

프로그래밍/개발/Blackjack(SPH-M6200) 2007.10.27 00:12

블랙잭을 이용하여 프로그램을 작성하던 도중 특정 구문을 수행할시에 Data Abort 에러가 발생하는 것을 확인하였다.

평소 Win32 용 프로그램만 작성해 보다가 처음 하고 있는 Windows Mobile 디바이스 작업이기 때문에 처음 보는 에러였는데, 구글을 통해 검색해 보니 대충 윈도의 잘못된 연산 수행이나, 리눅스의 Segmentation fault 와 비슷한 것이라는 얘기가 나왔다.

그런데 이상한 점이, 분명히 윈도용 프로그램을 개발할 때에는 잘못된 연산을 수행하면 즉시 그 부분에 브레이크가 걸리고 무엇이 잘못되었는지 표시가 되는데 여기서는 그렇지가 않다는 것이었다.

사용자 삽입 이미지

멈추지 않고 에러가 계속 발생한다.

나같은 초보 프로그래머들은 저 에러메시지만 보고서는 대체 무슨 에러인지도 모르겠고, 소스에도 의심가는 부분이 없게 된다면 무척이나 당황하게 된다.

결국 Trace 를 통해 문제가 되는 부분을 찾았는데, 전혀 이상이 없다.
해답을 찾아 삼만리..

결국 발견한 것은 다음과 같은 방법이다.

Debug>Exceptions 메뉴를 실행한다.
다음과 같은 창이 뜬다.

사용자 삽입 이미지

Win32 Exceptions

주의해서 봐야 할 부분은 여기 Win32 Exceptions 부분이다.

여기 체크된 예외만이 디버거 실행을 멈추게 되어있다. 기본값은 위와 같고 (물론 항목은 더 많다.) 잘 보면 기본적인 Access violation 이나 Illegal Instruction, Datatype misalignment 가 체크되어 있지 않은 것을 알 수 있다.

위 항목을 체크하고 OK를 눌러주자

사용자 삽입 이미지

멈추길 바라는 항목들을 체크

다시 프로그램을 실행하면 결과가 아까와는 조금 달라진다.

사용자 삽입 이미지

뭐가 달라졌을까?

과연 어떤점이 다를까.

아까는 볼 수 없었던 줄이 하나 추가 된것을 볼 수 있다.
First-chance exception at 0x00028048 in xxxxxxxx.exe: 0x80000002: Datatype misalignment.


그리고 훌륭하게 디버거는 문제가 발생한 지점에서 실행을 중단하고 메시지 창을 띄운다.

사용자 삽입 이미지

Datatype misalignment

Data Abort 를 일으킨 장본인은 바로 Datatype misalignment 에러였다.

자! 문제가 무엇인지 좀 더 분명해 졌다.
왜 이런 Exception 들을 기본으로 체크해 놓지 않았는지 의문이 생기지만, 어쨌든 해결하게 된 것 만으로도 기쁘게 생각한다.
이제 문제가 무엇인지 알았으니 이제 문제를 해결하기만 하면 된다! (아직 해결 안됐음)

참고: datatype alignment 참고자료



Trackback 0 : Comments 2
  1. dawnsea 2007.12.17 17:14 신고 Modify/Delete Reply

    리퍼러 보고 왔어요 ㅋㅋ

    CE .NET 에서도 역시 무조건 4의 배수 얼라인을 하라는 듯?
    일단 아키텍쳐들이.. 임베디드에서 쓰는 코어들은 하드웨어 얼라인을 지원 안 하거든요..


    어.. 근데 수원멤이네요 -_-;
    저 수원멤 13기 -_-;; 애매모호한 낙오자 있습니다 ㅋㅋ -_-;

    • mahalo 2007.12.31 01:35 신고 Modify/Delete

      핫.. 방문해주셔서 감사합니다 ^^;
      수원멤 13기시면 한참 선배님이시네요~
      저는 16기랍니다.. 13기는 거의 모르는데.. OB와의 만남 오셨으면 한번쯤 뵈었을지도 모르겠습니다 ^^

Write a comment


Windows Mobile 5.0 기기에서 백라이트 꺼지지 않도록 하기

프로그래밍/개발/Blackjack(SPH-M6200) 2007.10.18 02:48

Windows Mobile 용 프로그램은 자체 전원관리에 의하여 백라이트가 꺼지고 화면이 꺼지는 작동을 하게 된다.

만약 동영상 플레이어나 기타 프로그램을 만들 경우 백라이트가 꺼지지 않는 것을 원할 수 있는데, 다음과 같은 코드를 이용하면 된다.

//  IN BOOL fBacklightOn - TRUE to keep the backlight on.
void SetBacklightRequirement(BOOL fBacklightOn)
{
    // The name of the backlight device.
    TCHAR tszBacklightName[] = TEXT("BKL1:");

    static HANDLE s_hBacklightReq = NULL;
   
    if (fBacklightOn)
    {
        if (NULL == s_hBacklightReq)
        {
            // Turn the backlight on by setting the requirement that the backlight device
            // must remain in device state D0 (full power). Replace D0 with D4 (zero power) to
            // turn the backlight off.
            s_hBacklightReq = SetPowerRequirement(tszBacklightName, D0, POWER_NAME, NULL, 0);

            if (!s_hBacklightReq)
                RETAILMSG(1, (L"SetPowerRequirement failed: %X\n", GetLastError()));
        }
    }
    else
    {
        if (s_hBacklightReq)
        {
            if (ERROR_SUCCESS != ReleasePowerRequirement(s_hBacklightReq))
                RETAILMSG(1, (L"ReleasePowerRequirement failed: %X\n", GetLastError()));

            s_hBacklightReq = NULL;
        }
    }
}

출처: Program Applications to Turn the Smartphone Backlight Off and On (MSDN)


Trackback 0 : Comment 0

Write a comment


Visual Studio 2005과 Service Pack 1을 한번에 설치하기

프로그래밍/개발 2007.09.18 17:43


Visual Studio 2005의 SP1을 설치해 보신 분들은 프로그레스 바도 없이 30분 ~ 1시간 이상을 잡아먹고 있는 무성의한 설치창을 알고 계실 것입니다.

사용자 삽입 이미지

대략 정신을 우주로 날려줍니다.



무슨 이유인지는 알 수 없지만 비정상적으로 설치시간도 길고 지루하기 짝이 없지요.
이쯤되면 SP1서비스팩을 개선하던지 SP1 이 통합된 설치 디스크가 공급될만도 한데 그런 기미는 보이지 않습니다. (곧 발매될 Visual Studio 2008 덕분인지도 모르겠지만요.)

저만 그런 답답함을 느낀게 아니었는지 Microsoft 의 한 개발자가 MSDN Blog 를 통해서 Visual Studio 2005와 Service Pack 1 통합 설치본을 만드는 방법을 공개하였습니다.

Slipstreaming Visual Studio 2005 Service Pack 1

사이버 포뮬러라는 만화를 보셨거나.. 아니면 자동차 경주에 관심이 있으신 분들이 들어보셨을만한 Slipstream이라는 용어를 쓰고 있는게 재미있네요. 영어가 짧아서 저 문장 자체가 어떻게 해석되는지 잘 모르겠지만, Visual Studio 2005 를 설치할때 자동으로 Service Pack1 을 끼어들게 한다는 의미로 쓴것 같기도 하고.. 영어는 참 어렵네요?? (이게 결론??)

별로 그럴일은 없겠지만, 이렇게 설치한 SP1 은 따로 삭제할 수 없다고 합니다.
저는 이 글을 쓰기 전에 시키는대로 따라 해 보았는데, 이렇게 설치한 VS2005가 지금 잘 돌아가고 있습니다. Service Pack1 을 까는 악몽같은 시간이 없으니 정말 상쾌합니다.



Trackback 0 : Comments 2
  1. yhpdoit 2007.09.24 12:38 신고 Modify/Delete Reply

    그냥 설치 눌러놓고 키고 잤다는...

  2. mahalo 2007.09.24 14:38 신고 Modify/Delete Reply

    저도 통합본 만들기 전에 부득이하게 한 세번정도 연속으로 (한글판 영문판 번갈아가며) 깔아야 했었는데, 잠을 잘 수도 없고... 완전 스트레스더군요. ㅎㅎ
    그때 저런걸 알았다면 좀 더 쾌적했을텐데 말이죠

Write a comment


XNA Game Studio Express!

프로그래밍/개발 2006.08.15 03:00

지난번 열렸던 GDC 에서 Microsoft 는 VIsual Studio 2005 에 기반한 XNA 플랫폼을 대대적으로 홍보했었습니다.

(XNA 개발플랫폼은 Windows XP 에 기반한 게임과 Xbox 360 에 기반한 게임을 같은 코드 베이스에서 개발할 수 있게합니다.)

그것에 이어 Microsoft 의 XNA Team 은 또 하나의 놀라운 소식을 알려왔습니다.

XNA Then and Now Part One
XNA Then and Now Part Two

XNA Game Studio Express 라는 XNA 개발환경을 일반에게 공개하기로 한 것입니다.
이 플랫폼은 Visual C# Express 2005 와 XNA Framework (DirectX + Managed Code) 를 기본으로 하는데, 중요한점은 무료라는 것이지요.

이를 통해 집에서 Xbox 360 을 겨냥한 게임을 개발할 수 있게 됩니다. (물론 C# 으로 해야 하지만)
지난 GDC 에서 Managed Code 로 개발한 바이너리가 Xbox 360 에서 돌아가는 것을 시연한 예도 있기 때문에 실제로 실현 가능한 예라고 볼 수 있습니다.

게다가 약간의 돈을 더하면 자신이 가지고 있는 (혹은 남의) Xbox 360 에서 돌아가는 게임을 만들 수 있게 됩니다.
XNA Creator's Club 이라는 것을 가입하면 되는데, 이것은 Xbox Live 가입의 일종으로 볼 수 있으며 이것을 통해 비상업적인 게임을 (XNA Framework에 기반한) 개발하기 위한 추가적인 도구들을 지원 받을수 있다고 합니다.
가입 비용은 1년에 $99, 혹은 4개월에 $49 가 될 것이라고 하네요.

아직은 Xbox 360 의 해킹이 제대로 이루어지지 않은 상황에서 Microsoft 는 이 옵션을 통해 수 많은 homebrew 개발자들을 음지에서 양지로 끌어낼 수 있을것이라고 생각됩니다.
게다가 XNA Game Studio Express 를 통해 Xbox 360의 개발에 익숙해진 개발자가 실제 상업용 게임을 내 놓을 상황도 충분히 가정할 수 있을 것입니다.

이른 예측이긴 하지만 Microsoft 가 이렇게 Xbox 360 의 개발환경을 퍼트리는데 노력을 기울인다면 Sony 의 PlayStation 3는 좀 더 많은 노력을 기울이지 않으면 PS2 때와는 달리 많은 고충을 겪지 않을까 합니다.

XNA Game Studio 의 베타 버전은 2006년 8월 30일에 공개되며 http://connect.microsoft.com 을 통해 정보를 접할 수 있습니다.


추가정보
http://msdn.microsoft.com/directx/xna/gamestudio/



Trackback 0 : Comment 0

Write a comment


All Game Developer's Network

프로그래밍/개발 2006.06.21 22:34
http://allgamedev.net 라는 사이트가 문을 연지가 한달쯤 되어가는것 같습니다.

게임 개발자들(우리 나라의) 의 블로그들만 모아서 최신글 목록을 보여주는 사이트 인데, 개발자인 성세일(ssi10)님의 노력으로 계속 버그픽스와 기능추가가 되고 있어서 추후 발전이 기대되는 곳입니다.

본인도 몇달전까지는 게임 개발사에서 일을 했던 게임 개발자였던터라 (하지만 과거형 ;;) 다른 게임 개발자들의 일상이나 생각들에 관심이 많았는데 마침 allgamedev 가 생겨서 편하게 여기저기 둘러보고 있습니다.

몇가지 더 바라자면 이곳에서 중계되는 사이트들의 통합 RSS라던가, 최신글을 본문까지 보여줄 수 있게 된다면 메타 블로그로서 아주 괜찮을것 같습니다. (개발 예정 목록에도 있음)

근데, 저는 게임회사를 그만 두었기 때문에 등록하지 않았습니다. 하하;;


Trackback 0 : Comment 1
  1. 보리차 2006.06.23 14:40 신고 Modify/Delete Reply

    호오... 이런 식으로 색깔이 비슷한 블로그들끼리 묶어서 교류를 촉진할 수 있군!

Write a comment


GCJ: The GNU Compiler for Java Programming Language

프로그래밍/개발 2005.06.27 21:18
Java 소스나 바이트 코드를 CPU-OS Native Code로 컴파일 해준다는 GCJ 를 최근 알게 되었다.
GCC 컴파일러의 확장 기능인 셈인데, 이거 생각보다 꽤 재미있는 녀석인것 같다.

본인이 Linux 나 기타 *nix 계열을 안쓰는 고로 MinGW (Win32) 에서 테스트 해 보았다.
평소에 Java Language 를 전혀 안쓰는고로 JRE 등은 전혀 안깔려있어서, 그냥 무작정 MinGW 패키지만 집어다 설치했다.

쓰기는 생각보다 간단했다.

Hello, World! 를 출력하는 코드만 컴파일 해 봤다.

Hello.java
class HelloWorldApp
{
  public static void main(String[] args)
  {
       System.out.println("Hello, World!"); // display the string.
  }
}

gcj --main=HelloWorldApp -o hello.exe hello.java

이 정도면 hello.java 가 컴파일 되어 Win32 PE 실행파일로 떡. 하니 떨어진다. (하지만 무려 3.4MB, UPX 로 압축하니까 1.9MB 나온다. --strip-debug 도 안먹는다. OTL)
들리는 말로는 Eclipse 의 byte code 를 gcj 로 컴파일해서 쓸 수 있다고 하는데, 본인이 Eclipse 도 안쓰는 고로... 모르겠다 ;

개발자로써 (특히 게임 개발자로써) 느끼는 바는, 언어의 취지에는 심히 맞지 않겠지만 (high-portable 에 관해서는) java 언어의 장점을 살려서 native 코드를 생성하는 용도로도 충분히 괜찮지 않을까 하는 생각이 든다. (왜냐면.. byte 코드보다는 당연히 빠르니까!)

흔히 게임 본체를 생성하는 용도 외에, 개발툴을 만드는 용도로 C/C++ with MFC 가 많이 이용되고, 커맨드라인 툴에는 역시 C/C++/Python 등등이 많이 이용되는데, Java언어가 손에 익숙하다면 Java 언어도 충분히 괜찮지 않을까 ; (Swing 같은 GUI 툴킷도 컴파일된다면 금상첨화!)


tags : gcc, GCJ, Java, 개발
Trackback 0 : Comment 0

Write a comment


게임업계가..

일상 2004.10.15 02:55

.......



tags : 개발, 유머
Trackback 0 : Comment 1
  1. 박광 2004.10.20 14:26 신고 Modify/Delete Reply

    간간히 글이 올라오는걸보니 살아있긴 한거군...

Write a comment


Dev-Cpp

프로그래밍/개발 2003.11.06 00:14
 


이건 3.x 버전 나올때 잠깐 써보다가 안써봤었는데 버전업이 되면서 꽤 좋아졌다.
언어팩도 들어가서 한글환경으로 꾸며놓을수도 있고, 에디터도 한글이 깨지지않고 잘 나와서 아주 마음에 든다. 거기다 공짜. 덩치도 꽤 작아서 요즘에 재미삼아 툴만들때 가볍게 써보고 있다.

예전에는 에디터에서 편집하고 커맨드라인에서 'gcc ~' 하는 식으로 했었는데, Dev-Cpp 를 쓰는게 훨씬 편하고 좋은듯 하다.

돈없어서 컴파일러를 못사는 사람이나 간단한 예제같은것을 만들때 VC 가 너무 덩치가 커서 귀찮은 사람에게 강추!


tags : C++, DevCpp, 개발
Trackback 0 : Comments 2
  1. daybreak 2003.11.07 20:47 신고 Modify/Delete Reply

    Dev-Pascal 도 쓸만하다! :)

  2. daybreak 2003.11.10 10:07 신고 Modify/Delete Reply

    -ㅇ- 말 그대로 C++ 만 키우나보다 -.-

Write a comment