2008년 7월 3일 목요일

PspStates 플러그인 v2 - 강제세이브/로드

게임의 강제 세이브/로드 기능을 하는 PspStates Experiment 플러그인이 v2로 업데이트되었습니다. [출처가기]

하지만 신형 PSP에서만 사용할 수 있기에 언제나 그렇듯 리드미 번역으로 때웁니다. ㅡㅡ;
v2로 업데이트 되면서 리드미 파일도 약간 수정되었는데 변경된 부분은 보라색으로 표시해두겠습니다.

PspStates Experiment v2 for PSP SLIM
---------------------------------

V2의 변경점 :
-------------
- 몇몇 경우에서 상태(state)가 완벽하게 읽어지지 않는 문제를 일으키는 인터-쓰레드 코드의 중요한 버그 수정됨. 상태 로드후에 화면이 검게 변하거나 게임이 제대로 동작하지 않는 문제가 있었음.

- 게임별 상태 저장 기능 추가. 조작법이 약간 변경됨. : 예전 조작법은 로컬 세이브/로드(게임별 저장) 기능이 되고 새롭게 셀렉트버튼을 추가로 눌러 글로벌 세이브/로드(게임 공통)를 할 수 있음.

- 보통대로 슬립모드를 했을 경우 슬립모드가 되지 않고 바로 복귀하는 버그 수정.

- UMD 삽입시와 NO-UMD 모드가 'normal'일 경우의 지원 추가됨. 하지만 이 경우 UMD캐시를 없애기 위해 하나의 파일을 추가 설치해야 함. 자세한 것은 아래 설치법을 참고.

예전 버전의 상태(state)는 모두 글로벌(게임 공통)하다는 것과 추가된 셀렉트버튼을 통해 작동한다는 것을 명심해라. 또한 이전 버전에서 저장한 상태(state)를 불러오면, 램 영역의 플러그인은
예전 버전을 불러오게 되므로 예전 버전에서 저장한 상태(state)는 그냥 사용하지 않는 것이 좋다.
--------------
이 플러그인을 사용하기 전에 이 글을 주의 깊게 읽어라. 몇 가지 변경점이 있다.

알림 : 이 소프트웨어가 일으킬 수 있는 모든 종류의 기계에 대한 손상 또는 데이터 손실(게임 데이터 손실까지 포함)의 책임은 제작자에게 없으며 각 사용자에게 있다.
나의 모든 소프트웨어가 무료인만큼 이건 당연한 것이지만, 이번에는 명확하게 밝혀두고 싶다.
이 플러그인을 사용하기 전에 가능한 데이터 손실을 피하기 위해 낸드이미지와 메모리스틱의 중요한 자료를 백업하기를 추천한다.

이 프로그램은 절대 커펌 M33의 한 부분으로 포함되지 않을 것이며, 항상 플러그인 형식으로 발표될 것이다.

이 소프트웨어는 아직까지 실험적인 것이며, 모든 경우에 있어서 오동작하거나 작동하지 않을 수 있다.

요구사항 :
-----------
- 커펌 4.01 M33이 설치된 신형 PSP (M33-1 / M33-2는 상관없음.)
- 좋은 메모리스틱을 추천함. 가짜 메모리스틱은 강제 세이브와 로드가 매우 느릴 수 있음.

설치법 :
-------------
1. 첨부파일의 'seplugins' 폴더안에 있는 'SAVESTATE' 폴더와 'pspstates.prx' 파일을 ms0:/seplugins/ 폴더로 복사.
2. ms0:/seplugins/game.txt 파일을 메모장으로 열어 ms0:/seplugins/pspstates.prx라는 문장 추가.
3. 커펌의 리커버리 모드로 들어가 'pspstates.prx [GAME]' 항목 활성화(Enabled).

이 플러그인은 현재 game 모드에서만 동작한다. pops나 vsh에서 사용하기 위해 헛고생하지 말도록 해라.

UMD를 삽입했을 때와 NO-UMD 모드가 'normal'일 경우에도 이 플러그인을 사용하려면, 첨부파일에 있는
'umdcache.prx' 파일을 flash0:/kd/ 폴더에 넣어주어야 한다. XMB에서 UMD 캐시를 사용 안함으로 설정하는 것만으로는 제대로 동작하지 않으므로 이 파일을 설치하는 것이 더 안전하다. 물론 이 경우 UMD 캐시 기능은 더 이상 사용할 수 없다. 이 파일은 저작권이 없으며, 단지 손휘 파일과 이름만 같은 더미 모듈이다.


SaveState (현재 상태 저장, 강제 세이브) 과정 :
--------------------
- 현재 상태를 저장하기 위해서는 게임 중 홈버튼을 누르고, 홈버튼 화면이 나오면 R트리거와 다음 버튼중 하나를 눌러라 (방향키 위, 아래, 우, 좌, 네모, 세모, 엑스, 동르라미, 스타트). 이 각각의 버튼은 세이브를 위한 슬롯으로 취급되며, 9개의 상태(state)를 가질 수 있다.

이전 버전과는 다르게 이번 버전에서는 로컬과 글로벌 상태 저장이 구별된다. 로컬 상태는 세이브한 게임에서만 로드되는 것이며, 글로벌 상태는 어떤 게임이든지 불러올 수 있다. (UMD의 경우에는 같은 UMD가 삽입된 상태, ISO의 경우에는 파일 경로가 같아야 함.)

로컬 상태 저장은 이전과 동일하다. 홈버튼 화면에서 R트리거를 누르면서 슬롯 버튼을 누르면 된다.
글로벌 상태 저장은 R트리거와 셀렉트버튼을 동시에 누른 뒤 슬롯 버튼을 누르면 된다.


- 누르는 순간 PSP가 슬립모드로 전환될 것이며, 잠시 후 자동으로 복귀할 것이다.
- 퀵 슬립모드에서 돌아온 후에, 몇 초간 검은 화면을 보게 되는데 걱정하지 말아라. 프로그램이 현재 상태를 RAM에 복사하는 과정이며, 이 시간은 게임 종류와 CPU 스피드에 따라 달라지게 된다.

- 화면이 다시 돌아오면 메모리스틱 LED가 몇 번 반짝이는 것을 볼 수 있다. 이건 파일을 쓰는 것이다. 만약 좋은 메모리스틱을 사용하고 있다면 이 과정은 매우 짧게 걸린다.

- 현재 상태가 저장되면, 같은 게임 도중이나 다른 게임에서도 불러올 수 있다. (다른 게임의 현재 상태를 불러오려면 같은 메모리스틱이 똑같은 내용을 가진 메모리스틱이 필요하다.)
현재 상태는 다음 파일중 하나로 저장된다. :

글로벌 상태 :
ms0:/seplugins/SAVESTATE/globalstate_u.bin -> 방향키 위버튼
ms0:/seplugins/SAVESTATE/globalstate_d.bin -> 방향키 아래버튼
ms0:/seplugins/SAVESTATE/globalstate_l.bin -> 방향키 좌버튼
ms0:/seplugins/SAVESTATE/globalstate_r.bin -> 방향키 우버튼
ms0:/seplugins/SAVESTATE/globalstate_q.bin -> 네모버튼
ms0:/seplugins/SAVESTATE/globalstate_t.bin -> 세모버튼
ms0:/seplugins/SAVESTATE/globalstate_x.bin -> 엑스버튼
ms0:/seplugins/SAVESTATE/globalstate_c.bin -> 동그라미버튼
ms0:/seplugins/SAVESTATE/globalstate_s.bin -> 스타트버튼

로컬 상태 :
로컬 상태에서는 만약 게임이 UMD나 ISO의 경우에는 게임코드를 사용하고, 홈브류의 경우에는 홈브류 폴더의 첫 9글자를 사용한다. 예를 들어 :
ms0:/seplugins/SAVESTATE/ULES00818_u.bin -> 방향키 위버튼
.....................................................
ms0:/seplugins/SAVESTATE/ULES00818_s.bin -> 스타트버튼


파일 크기는 게임에 따라서 달라지는데 테스트 결과 대략 10-20 MB 정도로 예상된다.
플러그인 자체는 빈 용량을 확인하지 않기 때문에 스스로 빈 용량을 확보해야 한다.

로컬 상태와 글로벌 상태 파일은 정확히 같은 포맷이다. 만약 서로 변환하려면 단지 파일명만 알맞게 변경해주면 된다.

LoadState (현재 상태 로드, 강제 로드) 과정 :
--------------------
- 현재 상태를 불러오기 위해서는 게임중 홈버튼을 누르고, 로컬 상태를 불러오려면 홈버튼 화면에서 L트리거와 위에서 말한 슬롯 버튼중의 하나를 같이 누르고, 글로벌 상태를 불러오려면 L트리거 + 셀렉트버튼 + 슬롯 버튼을 동시에 눌러라.

- 그와 동시에 메모리스틱 LED가 반짝이게 된다. 이 과정은 좋은 메모리스틱일수록 빠르다.
- 그 후, PSP는 자동으로 슬립모드로 전환되고, 잠시 후 자동으로 복귀할 것이다.
- 잠시 화면이 검게 변하는데, 현재 상태를 저장할때보다는 훨신 더 짧게 걸린다.
- 다시 화면이 돌아오고, 제대로 작동했다면 이전에 저장한 상태가 불러져있을 것이다.
코멘트
--------
- 현재 버전은 커펌 4.01 M33에 특화된 플러그인이다. 이 후의 펌웨어가 4.01과 아주 유사하지 않는 한 이 플러그인의 업데이트 없이는 이후에 나올 커펌 버전에서 동작하지 않을 것이다.

- 더 빠른 작동을 위해서 vshmenu나 리커버리 모드에서 게임의 CPU 스피드를 333으로 설정하기를 추천한다.

- 글로벌 상태를 사용하면 어떠한 UMD나 ISO, 홈브류에서도 이전에 저장한 상태를 불러올 수 있다. 단, ISO의 경우 같은 메모리스틱에 같은 경로, UMD의 경우 같은 UMD가 들어있어야 한다. 상태 저장 후 ISO나 홈브류의 경로를 변경하지 말아라.

- 상태(state) 로드는 모든 결과를 가진 '진정한 상태(state) 로드'이다.
  만약 X 플러그인은 활성화, Y 플러그인은 비활성화한 상태로 M33 모드에서 ISO 게임을 즐기고 있다고 가정하자. 그 후 X 플러그인을 비활성화하고 Y 플러그인을 활성화한 상태로 NP9660 모드에서 게임을 하다가 이전에 저장한 상태(state)를 불러오면 pspstates 플러그인 자체까지 복구하므로, 나중에 언급할 "plugin self-downgrading" 문제를 일으킬 수 있다.

- 이 플러그인은 신형 PSP의 늘어난 메모리를 사용하는 다른 홈브류나 플러그인과 호환되지 않는다. 그것들을 사용하는 도중에 플러그인이 활성화는 되지만 실제로 동작하지는 않는다.
상호 호환성
----------------
- 다른 소니 펌웨어 버전 사이에서의 상호 호환은 기술적으로 지원되지 않는다. 만약 커펌 4.01 M33을 예로 들자면, 네가 4.01 M33에서 저장한 상태(state)를 커펌 4.10 M33에서 불러오고자 한다면 불러오는 도중 충돌이 일어날 것이다. (이 플러그인이 커펌 4.10 M33용으로 업데이트 되더라도 불가능.)
- 다른 커펌 M33 버전(4.01 M33, 4.01 M33-2, 4.01 M33-3 등)에서의 상호호환은 아마 문제가 없을 것이다. vsh로 나갈때까지 시스템은 일시적으로 램 영역에서 다운그레이드될 것이다.
- 추후 나올 버전사이의 상호호환. 이 플러그인은 아직까지 실험용이므로, 추후 나올 버전에서는 상태(state)의 포맷이 변경될지도 모른다. 변경되지 않더라도 "plugin self downgrading" 문제는 여전히 존재한다. : 버전 1에서 현재 상태를 저장하고 버전 2에서 로드하면, 램 영역의 플러그인은 로드가 끝난 뒤 버전 1으로 될 것이다.
- 다른 PSP사이에서의 상호호환. 아마도 현재 상태를 다른 PSP끼리 공유하는 건 좋은 생각이 아닌 것 같다. 이 경우 하드웨어 문제와 데이터 손실이 발생할 수 있다. PSP1: TA-085, PSP2: TA-085 v2를 이용해서 PSP1에서 저장하고 PSP2에서 불러오는 테스트를 했는데, 불러오기는 되지만 아날로그스틱을 사용하는 게임은 제대로 조작할 수가 없었다. 기판 차이가 원인인지 다른 이유가 있는지 알려지지 않았다.
어쨌든 더 많은 테스트를 하고 싶다면 자기 책임으로 실행하고 다음 내용을 명심해라. : (생략함.)
FAQ
----
Q: 왜 신형 PSP 전용입니까?
A: 현재 이 플러그인은 신형 PSP의 추가 메모리를 사용하고 있기 때문입니다. (이후로 기술적인 얘기가 나오는데 그냥 생략합니다. 메모리스틱의 DMA 코드가 나올때까지 구형 PSP에서는 사용불가능이랍니다. ㅡㅡ;)
Q: 현재 상태 저장 후 사운드가 안 들립니다.
A: 방금 저장한 상태(state)를 다시 로드해보세요. 이 문제는 몇몇 게임에서 가끔씩 일어날 수 있습니다. 100% 확신할 수는 없지만, 테스트에서 드러난 원인은 파일 쓰기때문입니다. (이하 생략, 요약하자면 이 플러그인은 원래의 슬립모드 코드가 아닌 약간 변형된 코드를 쓰는데 이 과정에서 문제가 생기는 것 같답니다. 추후에 메모리스틱 DMA 코드가 나오면 이 문제가 해결될 거라네요.)

Q: 만약 존재하지 않는 상태(state)를 불러오면 어떻게 되나요?
A: 만약 파일이 없는 상태를 로드하면 마지막으로 로드된 상태나 최근에 저장한 상태가 램에 남아 있기 때문에 대신 로드될 것이다. 만약 이전에 불러오거나 저장한 상태(state)가 전혀 없다면 검은 화면만 나오게 된다.


써드 파티 라이센스
--------------------
This program uses the FastLZ library, which is relased under MIT license. A copy of the license can be found at fastlz_license directory.
번역 : 포포츠 (popotz)


# Dark_AleX가 말하길, 구형 PSP는 150 커널을 사용할 수 있는 장점을 가지고 있으니 불공평하다고 생각하지 말라네요. 그리고 이 플러그인이 추후 구형 PSP에서 사용할 수 있게 되더라도 세이브 하는데 약 2분 정도 걸릴거라고 합니다.

* 관련글 보기 *
2008/07/03 - [커펌용 플러그인] - PspStates 플러그인 - 강제 세이브/로드

댓글 27개:

  1. 1빠~ 수고하시네요..

    전역시 구형이라 PASS

    낼이시험인데 이러고있네요

    답글삭제
  2. 2등 ^^

    항상 따끈따끈한 정보 감사합니다.

    답글삭제
  3. ^^



    좋은 정보 감사합니다.



    오늘 설치 해봐야겠네요...

    답글삭제
  4. 4등 -ㅁ-... 항상 좋은 정보 감사합니다-

    답글삭제
  5. 전 시험중에 이러고 있네요 (나도 구형..쩝)

    답글삭제
  6. 글로벌이라는건..

    테트리스 하다가 위닝불러오고

    위닝하다가 실황야구 불러오고 그런기야긴가요?

    한번 해봐야지 ㅋㅋ

    답글삭제
  7. 아... 뚱뚱한 피습이용은 안나올 분위기군요... 안습...

    답글삭제
  8. 허거덩 신기하네요 ㅋㅋ 테트리스 하다가 위닝으로 바로 가다니 ㅡ.ㅡ

    겁나 빠름 ㅎㅎ

    그런데 문제가 있네요

    iso 파일을 추가했더니 안돼요..테트리스가 원래 노멀로 저장이 되어있었는데 안되는군요..

    흠..

    홈누르고 L을 루느면 밖으로 튕겨버리는군요 흠..

    답글삭제
  9. 그러니까 구형은 1.5커널 신형은 강제세이브 두가지의 장단점을 지니게 됬군요...

    움냐 요즘 1.5커널 홈브류 쓰지 않는데....

    답글삭제
  10. 3.90m33 버전인데 4.01m33으로 가도 지금쓰는 홈브류는 그대로 문제없이쓸수잇을까요?

    지금 괜히업데이트해서 후회하지않으려나...

    답글삭제
  11. @복지털 - 2008/07/03 23:10
    지금까지 안되는거 한개도 없었습니다



    아마 거의다될겁니다



    플러그인도 마찬가지고요

    답글삭제
  12. 강제 세이브고 머고 다 좋은데...여러분들은 psp로 무슨 게임하세요?...



    요즘 게임 불감증인지 진짜 피습으로 할 만한게임이 너무 없네요.

    슈로대도 이제 20화진행인데..좀 지겹고..몬헌도 200시간 넘으니..좀..;;



    그냥 시간날때마다 간간히 해도 안질리는 게임 없나요?..

    답글삭제
  13. 디맥 포터블이나 태고의 달인 해보심이 .ㅁ.

    답글삭제
  14. @복지털 - 2008/07/03 23:10
    390보다 한글지원이 더안된다는거뿐 알아내진못했음

    다른건 390과 같고 기능만 401기능임

    답글삭제
  15. 위닝과 실황풀야구3 ㅋㅋㅋ

    그래도 할만한건 위닝뿐..ㅎㅎ

    답글삭제
  16. 현재 3.90m33-2인데여 4.01m33-2에서도 타임머신 사용가능한가여??

    답글삭제
  17. 와 이거 정말 좋군요...

    상당히 빠르네요...

    답글삭제
  18. @질문남 - 2008/07/04 12:54
    네 가능합니다 ^^

    답글삭제
  19. @LovelyXP - 2008/07/04 02:57
    ㅋㅋ 태고의달인2 재밌쬬 요즘 하는중 ;;

    답글삭제
  20. 구형이 안된다면.





    역시 신형 64MB 내장메모리의 힘이겠군요.

    답글삭제
  21. 이 플러그인 쓸만합니다



    일단 활용을 해본바로는...



    몬스터헌터를 글로벌 저장

    철권을 글로벌 저장 ...으로 해놨었습니다





    이후, 몬헌을 하다가 바로 철권을 로드해서 XMB로 갈 필요없이 바로 철권플레이 가능!

    철권을 하다가 저장하고, 다시 몬스터헌터를 로드후 계속 플레이가 가능했습니다.



    XMB를 자주 가지 않고 게임과 게임사이를 전환할때 이보다 빠른 방법은 없을듯 하고요



    아쉬운점이라면 XMB에서도 글로벌로드가 가능해진다면 정말 빠른 방법으로 게임을

    실행할 수 있겠다 싶었습니다.



    추천~

    답글삭제
  22. 흠,, 구형이라지만 이런걸만든 DARK_ALEX님도 대단하지만 이런게 돌아가는 기계를 만들어 내놓은

    소니도 참대단하다는...

    답글삭제
  23. 이거 지나 물건이네요 ㅡ;;;

    여우비님이 말씀하신대로 글로벌 저장은 정말 대단합니다.

    바로바로 게임과 게임의 전환이 가능할 뿐더러

    강제세이브기능까지 갖췄으니..





    1.5홈브류는 좀 불편하지만 타임머신을 써서 1.5로 불러와 구동이 가능..



    신형이 짱이네요 ㅎㅎ

    답글삭제
  24. 대체왜 나는 안되는 거지?? 세이브할때 버튼 누르면 아무반응이 안일어나는 거죠??

    하라는 대로 다 했는데?? 혹시 다른 플러그인을 다 지워야하나요??

    정말 모르겠네요.. 혹시 아시는분 가르처주세요..

    4.01 M33-2인데 문제가 몬가요?

    답글삭제
  25. UMD캐시를 제거하고 부팅후 여유메모리를 확인했을땐 50mb였는데 부팅후 다시 확인해보니 초기화가됐는지 20mb만 남더군요...도대체 왜이런가요?캐시관련기능을 완전히 껐는데 이러네요..원래 이런건가요?

    답글삭제
  26. 저또한 아무반응이 없습니다. home 키 누르고 종료할꺼냐 라는 메세지에서 R키 누른채로 이것저것 눌러봐도 아무 반응이 없네요. 4.01 M33-2 입니다.



    현재 올린 플러그인은 hold.prx (베터리 절약) , pspstates.prx 두개뿐입니다.

    답글삭제
  27. 해결했습니다 ㅎㅎ 제가 UMD 구동모드를 sony NP뭐시기를 쓰는데 (파타퐁땡시 ㅡ.,ㅡ)



    umdcache.prx 이파일을 ms0:/kd/umdcache.prx 에다가 넣어주고는 잘되네요

    답글삭제

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.