2008. 7. 9. 18:06

그림책 0.95-4 Alpha 릴리즈 했습니다.
배포판 파일 형식을 tar.gz 파일이 불편하여 zip 으로 바꾸었습니다.

* 주요기능
- 한글 정상 출력 (FAT32만 지원)
- zip 으로 압축 된 그림 보기 (일반 이미지 파일은 지원하지 않습니다)
- 마지막으로 디스플레이된 위치를 기억했다가 재 실행시 저장된 위치부터 보여주기
- 파일 탐색 기능
- 다음 페이지 프리캐싱 기능 (apb.ini 파일을 직접 편집하셔야 합니다)
- 그림 이동 속도 조절 기능 (apb.ini 파일을 직접 편집하셔야 합니다)
- 사용자 버튼 설정 (apb.ini 파일을 직접 편집하셔야 합니다)
- 그림보기에서 1페이지 앞뒤로, 10페이지 앞뒤로, 100페이지 앞뒤로 이동 가능
- 파일선택에서 1파일 아래위로, 10파일 아래위로 이동 가능

* 사용키는 개인 설정에 따라 다릅니다.
************ 기본 설정 *************
* 이미지 탐색 중
SELECT : 파일 탐색으로 이동
Left / Right : 이전/다음 이동
Up / Down : 이전 10장/다음 10장 이동
[] / O : 이전/다음 이동

* 파일 탐색 중
Up / Down : 위/아래 이동
O : 파일선택
************ 기본 설정 *************

* done
- 사용자 버튼 설정 (apb.ini 파일을 직접 편집하셔야 합니다)
- 파일 탐색시 zip 파일만 리스트에 표시
- 파일시스템 또는 파일오픈 관련 에러메세지를 정확히 출력하도록 수정
- 짧은 파일이름에서 확장자가 잘리던 문제 수정
- % 문자가 출력되지 않던 문제 수정

* to do
- 그림보기에서 페이지 카운트 (ex 128/1024) (2순위)
- 그림보기에서 시계, 배터리 정보 (3순위)
- 그림을 보여주는 기능과 그림을 메모리로 로드하는 기능을 각 쓰레드로 분리 할 계획
    - 메모리스틱을 읽는 중 그림 이동이 되지 않는 불편함을 개선할 방침 (1순위)
-  mp3 플레이 지원 (솔직히 할까 말까 고민중 - IRshell로 멀티태스킹이 된다고 하던데...)



* 개발자는 실행에 대한 책임은 일체 없습니다. 신중히 판단하시고 사용하시길 바랍니다.
* 기본적으로 3.71에서 개발하고 테스트 하고 있습니다만 다른 버전도 가능하리라 봅니다.
* 소스와 바이너리가 같이 있습니다.
* 메모리스틱의 PSP/GAME/APB 디렉토리에서 실행해야합니다.
* 소스코드의 라이센스는 GPL을 따릅니다.

- 덧붙임 -
프로그램 파일을 직접 자신의 다른 블로그 또는 다른 사이트에 업로드하여 배포하시는 것은 자제 하시기 바랍니다. 링크를 이용해 주시길 바라며 파일이 아닌 현재 블로그로 링크하시기 바랍니다.

- 다시 덧 붙임 -
같은 이름으로 파일을 올리니까 자동으로 다운로드 링크가 안나오네요. 거참 ... 번번히 실수하고 있습니다.
Posted by ryu2811
2008. 7. 9. 18:05

그림책 0.95-1 Alpha 릴리즈 했습니다. 변화된 기능은 버튼을 각자 정의하여 쓸 수 있다는 겁니다. 꼴랑 버튼 몇개 안되지만 개인마다 취향이 다르므로 넣어봤습니다. 참고로 0.95 대 버전에서 간단한 기능을 몇개 구현하고 0.96으로 넘어가려고 합니다.

* 주요기능
- 한글 정상 출력 (FAT32만 지원)
- zip 으로 압축 된 그림 보기 (일반 이미지 파일은 지원하지 않습니다)
- 마지막으로 디스플레이된 위치를 기억했다가 재 실행시 저장된 위치부터 보여주기
- 파일 탐색 기능
- 다음 페이지 프리캐싱 기능 (apb.ini 파일을 직접 편집하셔야 합니다)
- 그림 이동 속도 조절 기능 (apb.ini 파일을 직접 편집하셔야 합니다)
- 그림보기에서 1페이지 앞뒤로, 10페이지 앞뒤로, 100페이지 앞뒤로 이동 가능
- 파일선택에서 1파일 아래위로, 10파일 아래위로 이동 가능

* 사용키는 개인 설정에 따라 다릅니다.

* done
- 사용자 버튼 설정 (apb.ini 파일을 직접 편집하셔야 합니다)

* to do
- 그림보기에서 페이지 카운트 (ex 128/1024) (2순위)
- 그림보기에서 시계, 배터리 정보 (3순위)
- 그림을 보여주는 기능과 그림을 메모리로 로드하는 기능을 각 쓰레드로 분리 할 계획
    - 메모리스틱을 읽는 중 그림 이동이 되지 않는 불편함을 개선할 방침 (1순위)
-  mp3 플레이 지원 (솔직히 할까 말까 고민중 - IRshell로 멀티태스킹이 된다고 하던데...)


* 개발자는 실행에 대한 책임은 일체 없습니다. 신중히 판단하시고 사용하시길 바랍니다.
* 기본적으로 3.71에서 개발하고 테스트 하고 있습니다만 다른 버전도 가능하리라 봅니다.
* 소스와 바이너리가 같이 있습니다.
* 메모리스틱의 PSP/GAME/APB 디렉토리에서 실행해야합니다.
* 소스코드의 라이센스는 GPL을 따릅니다.
Posted by ryu2811
2008. 7. 7. 00:11

그림책 0.94a 가 나왔습니다. 이전 버전과 달라진 점은 한글을 정상적으로 출력한다는 것입니다. 그 외 파일탐색에서 X 버튼을 제거한것 하나 있습니다. 많은 버그가 있을거라 생각됩니다만... 사용해보신분은 버그 리포팅 부탁합니다. 한글은 FAT32에서만 지원 됩니다. 요즘은 FAT12나 FAT16은 찾아보기도 힘든 추세라서 과감히 제거해버렸습니다.

* 주요기능
- 한글이름 정상 출력 (FAT32만 지원)
- zip 으로 압축 된 그림보기
- 마지막 위치 기억. 재 실행시 저장된 위치부터 보여주기
- 파일 탐색기능
- 다음 페이지 프리캐싱 기능 (apb.ini 파일을 직접 편집하셔야 합니다.)
- 그림 이동 속도 조절 기능 (apb.ini 파일을 직접 편집하셔야 합니다.)
- 1페이지 앞뒤로, 10페이지 앞뒤로, 100페이지 앞뒤로 이동 가능

* 주의 사항
아시는 분은 아시겠지만 한글 파일이름의 출력은 정상적으로 합니다만 같은 길이의 한글 파일들이 여럿 있을 경우 각각 파일을 구분해내지는 못 합니다.

예를 들어 "홍길동.zip", "성춘향.zip" 두개의 파일 중에서 하나를 선택할 경우 실제로 어느 파일이 선택 될지는 알 수 없습니다. 중간에 스페이스를 붙이거나 뒤에 숫자를 붙여서 반드시 구분할 수 있는 영문 문자를 삽입해주어야만 합니다.

이것은 PSPSDK의 근본적인 문제로 단순 TXT 파일이라면 FAT을 통해서 직접 읽어 낼 수 있으나 Zip 파일의 경우 zlib 라는 라이브러리로 컨트롤 하게 되는데 이놈이 파일 이름을 파라메타로 받도록 되어있어 도저히 손 댈 수가 없습니다.

한글 파일이라도 숫자나 공백등을 넣어주어 구분할 수 있도록 하시기 바랍니다.

* 파일 선택화면에서 사용키
Up/Down : 위/아래로
O : 파일 선택
X(종료) 버튼은 제거하였습니다. Home 버튼을 이용하시기 바랍니다.

* 그림보기 화면에서 사용키
<- 또는 [] / -> 또는 O : 이전 / 다음 그림
Up/Down : 10개 이전/다음 그림
LT/RT : 100개 이전/다음 그림
X : 파일 선택으로 돌아가기
아나로그 패드 : 그림 이동

* done
- 한글 파일명 정상 출력 (FAT32만 지원)
- 2기가 이상 디스크 위치이동시 종료되는 버그 수정
- 파일 탐색시 X 버튼을 누르면 프로그램이 멈추는 버그 수정
- 그림책 사용중 슬립 모드로 들어갔다가 나와서 파일 탐색을 할 경우 종료되는 버그 수정

* to do
- 버튼 사용자 정의 (1순위)
- 그림보기에서 페이지 카운트 (ex 128/1024) (3순위)
- 그림보기에서 시계, 배터리 정보 (4순위)
- 그림을 보여주는 기능과 그림을 메모리로 로드하는 기능을 각 쓰레드로 분리 할 계획
    - 메모리스틱을 읽는 중 그림 이동이 되지 않는 불편함을 개선할 방침 (2순위)
-  mp3 플레이 지원 (솔직히 할까 말까 고민중 - IRshell로 멀티태스킹이 된다고 하던데...)


* 개발자는 실행에 대한 책임은 일체 없습니다. 신중히 판단하시고 사용하시길 바랍니다.
* 기본적으로 3.71에서 개발하고 테스트 하고 있습니다만 다른 버전도 가능하리라 봅니다.
* 소스와 바이너리가 같이 있습니다.
* 메모리스틱의 PSP/GAME/APB 디렉토리에서 실행해야합니다.
* 소스코드의 라이센스는 GPL을 따릅니다.

Posted by ryu2811
FAT 접근 라이브러리 구현은 완료 되었으나 이것을 그림책에 붙이는 작업을 해야합니다.

음... 여기서 또 다른 문제에 봉착하게 되었는데요. 받아온 한글 파일이름으로 파일 열기를

시도하게 되면 파일이 안열린다는 것입니다.

문자셋의 문제인지 이 역시 PSPSDK의 문제인지 아직 모르겠습니다.

아~ 정말 그냥 되는 기능일거 같은데 막상 되는게 하나 없군요.

큰?? 작업은 끝났으니 조만간 그림책 새버전을 배포 할 수 있을거라 생각합니다.

그럼... 모두들 즐거운 하루 보내세요.

- 덧붙임 -

이전에 PSP에서 개발했던 분들과 이런 경험들을 공유 할 수 있는 공간이 있다면

작업 효율도 올라가고 정보공유도 되고 좋을텐데요. 저 나름대로 소스공개 정도는

하고 있지만 항상 뭔가 부족한 듯 아쉽습니다.
Posted by ryu2811
2008. 6. 27. 12:12

평소하던대로 중간중간에 디버그용 printf 를 넣어놓고 감으로 디버깅을 해왔었다.
맨날 하던 짓이지 왠만한 버그는 잡을 수 있었지만 그래도 가끔은 속썩이는 것들이 있다.
결국 PSPLink 를 깔고 GUI 디버그 툴을 설치하고 말았다.

원래 툴이 좋다는 것이야 잘 알지만 이것을 사용하는 것을 별로 안좋아하는데다가
평소 밥벌이로 죽자사자 하다보니 그리 필요로 하지도 않게 되었지만 생소한
크로스컴파일러의 불편함 때문에 결국 사용한다.

이 글은 PSP 프로그래밍에서 디버깅 때문에 고생하는 사람들이 있으면 도움이 될 것이다.


Posted by ryu2811
2008. 6. 23. 16:28

* 주요기능
- zip 으로 압축 된 그림보기
- 마지막 위치 기억. 재 실행시 기억된 위치부터 보여주기
- 파일 탐색기능 (디렉토리와 사이즈가 0 byte 보다 큰 zip파일만 보여줌)
- 다음 페이지 프리캐싱 기능 (apb.ini 파일을 직접 편집하셔야 합니다.)
- 그림 이동 속도 조절 기능 (apb.ini 파일을 직접 편집하셔야 합니다.)
- 1페이지 앞뒤로, 10페이지 앞뒤로, 100페이지 앞뒤로 이동 가능


* 파일 선택화면에서 사용키
Up/Down : 위/아래로
O : 파일 선택

* 그림보기 화면에서 사용키
<- 또는 [] / -> 또는 O : 이전 / 다음 그림
Up/Down : 10개 이전/다음 그림
LT/RT : 100개 이전/다음 그림
X : 파일 선택으로 돌아가기
아나로그 패드 : 그림 이동

* done
- 북마크 기능 추가 (관련 버그 패치)

* to do
- 버튼 사용자 정의
- 그림보기에서 페이지 카운트 (ex 128/1024)
- 그림보기에서 시계, 배터리 정보 (현재 고려 중)
- 한글 파일명 (작업 중)
- 그림을 보여주는 기능과 그림을 메모리로 로드하는 기능을 각 쓰레드로 분리 할 계획
    - 메모리스틱을 읽는 중 그림 이동이 되지 않는 불편함을 개선할 방침
    - 한글 파일명을 완료한 후에 우선 작업 할 계획



* 개발자는 실행에 대한 책임은 일체 없습니다. 신중히 판단하시고 사용하시길 바랍니다.
* 3.71 에서 저 혼자 테스트 하고 있습니다. ㅋㅋ
* 소스와 바이너리가 같이 있습니다.
* 메모리스틱의 PSP/GAME/APB 디렉토리에서 실행해야합니다.
* 소스는 라이센스는 GPL을 따릅니다.

Posted by ryu2811
2008. 6. 18. 18:35
0.91a 와 기능상 별달리 달라진 것은 없습니다.
단지 한글파일명 때문에 문자셋 문제인가 하여 SDL_ttf 로 만들었던 것을
다시 bitmap 폰트로 원복하였을 뿐입니다. 루리웹 파란산타님 소스를 가져다가
제 스타일대로 손 좀 보고 사용하고 있습니다.

* sleep mode 에서 복귀후 다음 이미지로 넘어가지 못하던 버그 픽스
* 현재 디렉토리보다 파일 수가 적은 디렉토리로 이동할때 이전 디렉토리의 파일 내용이
화면에 남아 있는 버그 픽스
* ZIP 파일과 디렉토리 내부의 파일 리스트를 저장하는 메모리 릭 버그 픽스


* 실행에 대한 책임은 실행자 각자에게 있습니다.
* 소스코드의 라이센스는 GPL을 따릅니다.


* To do list
한글파일명 처리, 북마크, 시계, 배터리 정보, 환경설정 UI, 음... 더는 생각이 -_-;;

Posted by ryu2811
2008. 6. 17. 22:10

일단 한글 파일명에 대한 문제는 잠시 접어두었다. PSPSDK 자체의 버그니 다른 방법으로 차후 구현하기로 하고 자잘한 기능들을 추가하여 다시 릴리즈한다.

* 한권 다 보고 다음권 선택시 마지막 디렉토리 유지 추가
* 디버그용 코드를 삽입한 체로 올려놨었다. 디버그용 코드 제거.
* X 키에 대한 동작 변경
* 파일 선택 -> 그림보기 -> 파일 선택 시 디렉토리와 커서위치 유지
자잘한 기능들을 추가하다보니 점점 버그의 소지가 늘어만 가고 있다. ㅋㅋ

프로그램의 사용상 책임은 실행하시는 분 각자에게 있습니다.

그림 보기 중에 사용하는 키
Left : 이전 장으로
Right : 다음 장으로
아날로그패드 : 그림 이동
LTrigger : 10장 이전으로
RTrigger : 10장 다음으로
X : 프로그램 종료 --> 파일 선택으로 변겅

마지막 장에서 Right나 RTrigger를 누르면 파일 선택으로 감.

파일 선택 화면에서
O : 파일 선택
Up : 위로
Down : 아래로
Home : 종료
X : 프로그램 종료 --> 키 추가

아직 북마크 기능이 없다. 이것도 차후 구현해야겠다. 버튼의 기능을 사용자 정으로 하도록 차후 구현 예정...




- 덧 붙임 -
개발 과정에 따른 소스 코드를 공개하였습니다. 추석도 충실히 달아 놓았으니 공부하실분은 받아보셔도 좋을 듯 합니다. 소스코드 저작권은 GPL을 따릅니다.

- 다시 덧 붙임 -
트루타입 폰트 파일은 소스코드에서 제거하였습니다. 저작권 문제가 있을지도 몰라서 뺐습니다. 각자 구하셔서 파일이름을 font.ttf 로 바꾸고 사용하시면 됩니다. 500K 내외의 크기면 무난합니다. 인터넷에 떠도는 폰트중에 으뜸9 폰트가 괜찮습니다. 사이즈도 208K로 작고...

- 마지막 덧 붙임 -
혹시 이글을 보시는 PSP 개발 경험자 중에서 한글 파일 이름을 얻어오기 위해 FAT 에 접근하는 소스코드나 라이브러리 가지신 분은 공유 부탁드립니다.

Posted by ryu2811
피곤하다~ 간단한거 같았는데 잘 안되네... 한글 파일이 단순히 출력의 문제라고 생각했었는데 그게 아니었다.

SceUID dirfd;
SceIoDirent entry;

    // open directory
    dirfd = sceIoDopen (dirinfo -> pathname);
    if (dirfd < 0)
    {
        pprintf ("sceIoOpen () failed. [%s]\n", dirinfo -> pathname);
        return (FAILURE);
    }

    // read file entry
    memset (&entry, 0x00, sizeof (entry));
    ret = sceIoDread (dirfd, &entry);
    // no more file exist
    if (ret == 0)
    {
        break;
    }
    // error occur
    if (ret < 0)
    {
        pprintf ("sceIoDread () failed. [%s]\n", dirinfo -> pathname);
        return (FAILURE);
    }

로 이루어진 콤보가 ㅋㅋ 오동작? 을 한다는 것이다. 왜 그런지 모르겠다.

sceIoDread 한 후 entry 에서 파일 이름 부분인 d_name 을 보면 한글 부분은 모두 0x81A1이 들어간다는 것이다. 디렉토리내의 엔트리를 잘못 얻어온다는 얘기인데...
Posted by ryu2811

제목 그대로. 속도 조절은 ini 파일에서 설정한다. 총 다섯 단계로 SLOWEST / SLOW / MEDIUM / FAST / FASTEST 로 설정한다. 그 외에 화면보다 작은 이미지가 아나로그 패드에 의해 움직이는 버그를 찾아서 해결했다. 이미지가 4장이 들어가 있는 테스트용 zip 파일을 제거하고 인터넷에서 만화를 한권 다운 받아서 해보았다. 생각보다 깔끔하게 잘 돌아간다. 추가적으로 프리캐싱 기능을 구현했다. ini 파일안에 ON / OFF 로 설정하며 ON일 경우 현재 페이지의 다음 페이지를 미리 메모리로 로딩해 놓는다.

그런데 이미지가 작아서 그런가 프리캐싱을 한것과 안한것의 속도차를 별로 못 느끼겠다. ㅋㅋ

앞으로 파일 선택화면 UI구성등의 해결할 문제가 남아있다.

아래에 해당 소스파일이 있다.

Posted by ryu2811
이전버튼 1 2 3 이전버튼