이 글에서는, 미라지(M480, M4800) 320x320 해상도에서 맵피Go를 사용할 수 있는 패치정보를 제공 해 드립니다.

갱신내역
  [2011-01-29] MappyGo v1.0.13A 용 패치 파일 등록




맵피 Go! - 새로운 버전인 맵피가 나온지도 꾀 되었습니다.

저도 개인적으로는 차량용 전용 내비게이션을 사용하고 있는 관계로 M480, M4800용 맵피고가 나옴에도 불구하고 신경을 쓰지 못했습니다.

참고로 차량용 내비로는 파인디지탈 IQ 3D 1000 을 사용 중입니다. 이전에 IQ Blue를 사용하다 한번 더 갈아 탓는데요. Blue도 경품 당첨!, 3D 1000은 물건 구입에 대한 할인개념으로 받은 것이라~ ㅎㅎ
잡설이 길었습니다.


이제는 iPhone, Android phone이 '스마트 폰'의 기본이 되어버린 시대에 미라지(M480, M4800)사용자도 급감하고 있는 것 같더군요.
저 역시 차에서는 전용 내비를 사용중이긴 하나, 휴대폰은 아직도(!) M4800 미라지를 사용 중입니다. 여러 벌레도 많고, 불편한것이 많으나 갤럭시S 사기에는 너무 늦은 시점이라... 갤럭시S 2 나오기 전 까지는 이용 중입니다.
역시나 잘설(2)도 길었네요 ㅎㅎ.


그리하여~ 맵피Go 에 대해서도 미라지에서 사용하기 위해 약간의 연구, 분석을 했습니다.

이전과 완전히 달라진 프로그램인 맵피Go 답게, 이전과는 완전히 다른 방식으로 code가 구성이 되어, 약간의 삽질이 필요 했습니다.
처음에는 너무 급하게, 쉽게 패치 하려다가 엉뚱한데서 돌고 돌았습니다.

하지만 이번에도 2가지 패치를 거쳐서 미라지에서도 맵피Go를 어정쩡 하지만, 답답한 대로 사용 할 수 있게 되었습니다.


이번 맵피Go는 해상도를 96 DPI(강제호환 설정) / 128 DPI(미라지 기본) 설정함에 관계없이 동작은 합니다.
다만 기본 상태에서는 메뉴바가 화면 한가운데를 가로 질러가 버리는 문제가 있고, 이 때 화면 터치시에 가로는 맞으나, 세로가 보는 것과 터치가 다른 문제가 있습니다.
가장 큰 문제는 메뉴바가 사라져 버리고, 이후로 메뉴를 접근할 수 없는 아주 심각한 문제가 발생 합니다.

이 문제의 메뉴바를 아래에 내려 놓으면 좋겠지만....
불행하게도 이전과 같이 GetDeviceCaps 함수는 눈 닦고 봐도 보이지 않습니다.
대신에 화면 해상도에 따른, 화면 구성파일 2개 중 하나를 이용해서 화면을 구성하는 형식이더군요.
파일로는 mappysl240.art 파일 혹은 mappysl320.art 파일이 화면을 구성하는 파일이고, 이 둘중 하나 선택 하는 정도는 프로그램적으로 접근이 가능하나, 이 파일을 분석하는 것은 현재로서는 제 능력 밖인 듯 합니다.

그래서, 쉽고도 간단하게 문제가 되는 320 X 240 인식이 아닌(미라지에서 이렇게 인식 됨), 240 X 320으로 강제 인식하도록 수정하는게 이번 패치의 주된 일입니다.
다만 이로 인해 우측의 남는 부분 (320-240) 80 pixel 만큼의 영역은 최초 배경이 보이는 문제가 있습니다. 이런 현상을 감안 하고 사용 하실 분은 아래 제공 해 드리는 패치 파일로 꺼져가는 미라지에 대한 사랑을 조금이라도 살려 보시길 바랍니다.


관련 힌트 디스어셈블리 코드
.text:0001B4E0                 ADD     R12, SP, #0x420+var_220
.text:0001B4E4                 STRH    R3, [R12,#8]
.text:0001B4E8                 BL      memset
.text:0001B4EC                 LDR     R4, =unk_14DC5C
.text:0001B4F0                 LDR     R1, =aSSMappysl320_a
.text:0001B4F4                 LDR     R3, =aImage
.text:0001B4F8                 LDR     R2, [R4]
.text:0001B4FC                 ADD     R0, SP, #0x420+var_420
.text:0001B500                 ADD     R2, R2, #0x218
.text:0001B504                 BL      swprintf
.text:0001B508                 LDR     R2, [R4]
.text:0001B50C                 LDR     R1, =aSSMappysl240_a
.text:0001B510                 LDR     R3, =aImage
.text:0001B514                 ADD     R2, R2, #0x218
.text:0001B518                 ADD     R0, SP, #0x420+var_218
.text:0001B51C                 BL      swprintf
.text:0001B520                 LDR     R0, [R5,#0x5C]

다만 code를 직접 건드리는 것은 여러 귀찮은 문제가 있으므로, 위 파일명이 저장된 위치에서 "mappySl320.art" 부분을 찾아서 "mappySl240.art" 로 수정 합니다.
아래 위치입니다.

즉 Sl320 으로 된 부분을 걍 Sl240 으로 32 대신 24로 수정 하는 작업 입니다.
이것 만으로, 미라지에서 강제로 240 X 320 해상도로 고정을 해 버리고, 화면이 보기 좋지 않으나, 적어도 실행 중에 메뉴가 사라지는 문제는 없앨 수 있었습니다.

000fe2b0h: 76 00 00 00 25 00 73 00 5C 00 25 00 73 00 5C 00 ; v...%.s.\.%.s.\.
000fe2c0h: 6D 00 61 00 70 00 70 00 79 00 53 00 6C 00 32 00 ; m.a.p.p.y.S.l.2.
000fe2d0h: 34 00 30 00 2E 00 61 00 72 00 74 00 00 00 00 00 ; 4.0...a.r.t.....
000fe2e0h: 49 00 6D 00 61 00 67 00 65 00 00 00 25 00 73 00 ; I.m.a.g.e...%.s.
000fe2f0h: 5C 00 25 00 73 00 5C 00 6D 00 61 00 70 00 70 00 ; \.%.s.\.m.a.p.p.
000fe300h: 79 00 53 00 6C 00 32 00 34 00 30 00 2E 00 61 00 ; y.S.l.2.4.0...a.

위 내용 보시고 직접 patch 하셔도 되구,
아래 파일을 이용해서 패치 하셔도 됩니다.

[안내]
아래 제공되는 파일은 맵피 PDA 라이센스를 소유 하고 있으나 M&Soft 에서 이해할 수 없는 정책을 주장하여M480, M4800 에서는 사용 할 수 없는 호환성을 해결하고자 개인적으로 만든 파일 입니다.
관련 법을 준수하시기 바랍니다.
컴퓨터프로그램 보호법 - 역분석 관련 법

제12조의2 (프로그램코드역분석)
①정당한 권원에 의하여 프로그램을 사용하는 자 또는 그의 허락을 받은 자가 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우 당해 프로그램의 호환에 필요한 부분에 한하여 프로그램저작권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다.
②제1항의 규정에 의한 프로그램코드역분석을 통하여 얻은 정보는 다음 각호의 1에 해당하는 경우에는 이를 사용할 수 없다.
   1. 호환 목적외의 다른 목적을 위하여 이용하거나 제3자에게 제공하는 경우
   2. 프로그램코드역분석의 대상이 되는 프로그램과 표현이 실질적으로 유사한 프로그램을 개발·제작·판매하거나 기타의 프로그램저작권을 침해하는 행위에 이용하는 경우
      [본조신설 2001·1·16][[시행일 2001·7·17]]

이 파일을 이용해서 맵피를 사용 하기 위해서는 
반드시 맵피 PDA 라이센스를 소유 하고 있으며, 또한 Mappy 전체 이미지를 정상적으로 download하신 분 만이 사용이 가능 합니다.

여기서 안내드리는 내용은 직접 patch를 할 수 있는 정보와 patch용 요약자료만 공유 합니다.
패치 프로그램과 Mappy라이센스, Mappy 인스톨 파일은 개인 소유의 것을 이용하셔야 합니다.


Patch 파일은 Free software인 VPatch 를 사용 했습니다. Google 등의 검색엔진을 이용하셔서 개인이 구하셔야 합니다. 또한 별도 패치용 실행 파일도 제공을 합니다.
이 프로그래과 제공하는 data를 이용하여 발생하는 법적인 문제에 대해서는 사용하는 당사자들의 책임임을 밝혀 둡니다.

아래 파일에 대해서는 그 어떠한 질문에 대해서도 답변을 드리지 않습니다.

패치요약 파일:

[2011-01-29] MappyGo v1.0.13A



위 파일은 VPatch 라는 프로그램을 설치하고난 뒤에 전용 프로그램을 이용하시면 됩니다.

*당연히 PDA(WM5.0)용 맵피Go 1.0.12 (파일 날짜 2010-11-22) 를 소유해야 합니다.
*Patch 실행 법은 VPatch 설명서를 참고 하세요.
>  
VPATCHPROMPT.EXE PatchData_MappyGo_101222_For_M430x (sourcefile) (outputfile)

혹은 아래 실행 파일을 이용하셔도 됩니다.

VPatch_MappyGo_101222_For_M430x (Original) (Output)

그럼 미라지와 함께 즐 맵피Go 하시길 바라며~ 오늘도 이정도로 글을 끝낼까 합니다.
맵피Go가 큰 변동 없다면 한동안 업데이트 할 것 같으나... 저도 미라지를 떠나게 되면 어떻게 될지는 장담 할 수 없을 것 같습니다.

추가로 - GPS 잡은 모습 보여 드립니다.
이전 버전과 달리 자동 탐색하면 제대로 잡아 주고, 사용에도 문제 없는 듯 합니다. 다만 미리 External GPS 데이타는 한번 받아 주세요.




휴가와 여러 일로 인해 늦게 5.7.1 버전에 대한 320x320 사용을 위한 수정 내용을 올려 드립니다.
패치 방식은 이전과 동일 합니다. 다만 편의를 위해 패치을 해 주는 독립 실행 파일도 첨부 했습니다.
즐 맵피 하세요~




상세 분석은 이전글을 참고 해 주세요





"차례" "Code address" "파일offset"
     [ 원본 hex code ]  --> [ 수정 hex code ]

320x240 강제 설정 패치 부분

1  0004AC80 ( 03A080 )
   [ F4 A7 07 EB ] --> [ 05 0D A0 E3 ]

2  0004AC90 (
03A090 )
   [ F0 A7 07 EB ] --> [ F0 00 A0 E3 ]

3  000CFCC4 ( 0BF0C4 )
   [ E3 93 05 EB ] --> [ 05 0D A0 E3 ]

4  000CFCD0 ( 0BF0D0 )
   [ E0 93 05 EB ] --> [ F0 00 A0 E3 ]

5  000DC624 ( 0CBA24 )
   [ 8B 61 05 EB ] --> [ 05 0D A0 E3 ]

6  000DC634 ( 0CBA34 )
   [ 87 61 05 EB ] --> [ F0 00 A0 E3 ]

7  000DD75C ( 0CCB5C )
   [ 3D 5D 05 EB ] --> [ 05 0D A0 E3 ]

8  000DD76C ( 0CCB6C )
   [ 39 5D 05 EB ] --> [ F0 00 A0 E3 ]



화면 크기 변동 방지
9    00028F10  ( 018310 )  <
GPS정보 dialog 제대로 보이게 패치: MoveWindow 무효화>
   [ 47 2F 08 EB ] --> [ 00 00 80 E3 ]

10  0004C520  ( 03B920 )  <GPS 인식 직후 화면 제대로 보이게 패치>
   [ C3 A1 07 EB ] --> [ 00 00 80 E3 ]

[안내]
아래 제공되는 파일은 맵피 PDA 라이센스를 소유 하고 있으나 M&Soft 에서 이해할 수 없는 정책을 주장하여 M480, M4800 에서는 사용 할 수 없는 호환성을 해결하고자 개인적으로 만든 파일 입니다.
관련 법을 준수하시기 바랍니다.
컴퓨터프로그램 보호법 - 역분석 관련 법

제12조의2 (프로그램코드역분석)
①정당한 권원에 의하여 프로그램을 사용하는 자 또는 그의 허락을 받은 자가 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우 당해 프로그램의 호환에 필요한 부분에 한하여 프로그램저작권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다.
②제1항의 규정에 의한 프로그램코드역분석을 통하여 얻은 정보는 다음 각호의 1에 해당하는 경우에는 이를 사용할 수 없다.
   1. 호환 목적외의 다른 목적을 위하여 이용하거나 제3자에게 제공하는 경우
   2. 프로그램코드역분석의 대상이 되는 프로그램과 표현이 실질적으로 유사한 프로그램을 개발·제작·판매하거나 기타의 프로그램저작권을 침해하는 행위에 이용하는 경우
      [본조신설 2001·1·16][[시행일 2001·7·17]]

이 파일을 이용해서 맵피를 사용 하기 위해서는
반드시 맵피 PDA 라이센스를 소유 하고 있으며, 또한 Mappy 전체 이미지를 정상적으로 download하신 분 만이 사용이 가능 합니다.

여기서 안내드리는 내용은 직접 patch를 할 수 있는 정보와 patch용 요약자료만 공유 합니다.
패치 프로그램과 Mappy라이센스, Mappy 인스톨 파일은 개인 소유의 것을 이용하셔야 합니다.


Patch 파일은 Free software인 VPatch 를 사용 했습니다. Google 등의 검색엔진을 이용하셔서 개인이 구하셔야 합니다.
이 프로그래과 제공하는 data를 이용하여 발생하는 법적인 문제에 대해서는 사용하는 당사자들의 책임임을 밝혀 둡니다.

아래 파일에 대해서는 그 어떠한 질문에 대해서도 답변을 드리지 않습니다.

패치요약 파일:



위 파일은 VPatch 라는 프로그램을 설치하고난 뒤에 전용 프로그램을 이용하시면 됩니다.

*당연히 PDA용 Mappy 5.7.1 버전 원본이 있어야 합니다.
*Patch 실행 법은 VPatch 설명서를 참고 하세요.
VPATCHPROMPT.EXE Mappy5.7.1_090806_M480x_320x240.pat (sourcefile) (outputfile)

혹은 아래 실행 파일을 이용하셔도 됩니다.

> Mappy5.7.1_090806_M480x_320x240 (Original) (Output)

이전에도 그랬는데, 5.7 버전에 벌레가 있어, 사용자 몰래 업데이트 했더군요. 물론 홈페이지를 보니 공지가 올라와 있습니다.
하지만 정품등록 가입자에게 메일한통 날려주지 안는 불친절을 이번에도 보여 주셨군요!
예전에 한번 엄청 데였는데 - 아직도 그 불친절은 여건 합니다.

6월 4일 공지에 나온 수정 버전에 맞도록 패치 data를 새로이 올려 드립니다.
내용은 같습니다.



상세 분석은 이전글을 참고 해 주세요





"차례" "Code address" "파일offset"
     [ 원본 hex code ]  --> [ 수정 hex code ]

320x240 강제 설정 패치 부분

1  0x0004AB58 ( 039F58 )
   [ D1 A0 07 EB ] --> [ 05 0D A0 E3 ]

2  0x0004AB68 ( 039F68 )
   [ CD A0 07 EB ] --> [ F0 00 A0 E3 ]

3  0x000D9D14 ( 0C9114 )
   [ 62 64 05 EB ] --> [ 05 0D A0 E3 ]

4  0x000D9D24 ( 0C9124 )
   [ 5E 64 05 EB ] --> [ F0 00 A0 E3 ]

5  0x000DAE48 ( 0CA248 )
   [ 15 60 05 EB ] --> [ 05 0D A0 E3 ]

6  0x000DAE58  ( 0CA258 )
   [ 11 60 05 EB ] --> [ F0 00 A0 E3 ]


화면 크기 변동 방지
7  0x00028E44  ( 018244 )  <
GPS정보 dialog 제대로 보이게 패치>
   [ 0D 28 08 EB ] --> [ 00 00 80 E3 ]

8  0x0004C3F8  ( 03B7F8 )  <GPS 인식 직후 화면 제대로 보이게 패치>
   [ A0 9A 07 EB ] --> [ 00 00 80 E3 ]

[안내]
아래 제공되는 파일은 맵피 PDA 라이센스를 소유 하고 있으나 M&Soft 에서 이해할 수 없는 정책을 주장하여 M480, M4800 에서는 사용 할 수 없는 호환성을 해결하고자 개인적으로 만든 파일 입니다.
관련 법을 준수하시기 바랍니다.
컴퓨터프로그램 보호법 - 역분석 관련 법

제12조의2 (프로그램코드역분석)
①정당한 권원에 의하여 프로그램을 사용하는 자 또는 그의 허락을 받은 자가 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우 당해 프로그램의 호환에 필요한 부분에 한하여 프로그램저작권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다.
②제1항의 규정에 의한 프로그램코드역분석을 통하여 얻은 정보는 다음 각호의 1에 해당하는 경우에는 이를 사용할 수 없다.
   1. 호환 목적외의 다른 목적을 위하여 이용하거나 제3자에게 제공하는 경우
   2. 프로그램코드역분석의 대상이 되는 프로그램과 표현이 실질적으로 유사한 프로그램을 개발·제작·판매하거나 기타의 프로그램저작권을 침해하는 행위에 이용하는 경우
      [본조신설 2001·1·16][[시행일 2001·7·17]]

이 파일을 이용해서 맵피를 사용 하기 위해서는
반드시 맵피 PDA 라이센스를 소유 하고 있으며, 또한 Mappy 전체 이미지를 정상적으로 download하신 분 만이 사용이 가능 합니다.

여기서 안내드리는 내용은 직접 patch를 할 수 있는 정보와 patch용 요약자료만 공유 합니다.
패치 프로그램과 Mappy라이센스, Mappy 인스톨 파일은 개인 소유의 것을 이용하셔야 합니다.


Patch 파일은 Free software인 VPatch 를 사용 했습니다. Google 등의 검색엔진을 이용하셔서 개인이 구하셔야 합니다.
이 프로그래과 제공하는 data를 이용하여 발생하는 법적인 문제에 대해서는 사용하는 당사자들의 책임임을 밝혀 둡니다.

아래 파일에 대해서는 그 어떠한 질문에 대해서도 답변을 드리지 않습니다.

패치요약 파일:



위 파일은 VPatch 라는 프로그램을 설치하고난 뒤에 전용 프로그램을 이용하시면 됩니다.

*당연히 PDA용 Mappy 5.7.0 patch 버전 원본이 있어야 합니다.
*Patch 실행 법은 VPatch 설명서를 참고 하세요.
 
VPATCHPROMPT.EXE (patchfile) (sourcefile) (outputfile)

5월 말에 새롭게 버전업 한
Mappy 5.7.0 에 대해서 320x320 모델에 사용가능하게 - 강제로 320x240 설정하는 법을 간단하게 정리합니다.

방법은 이미 3개의 게시물로 상세하게 소개 드렸던 방법과 100% 동일 합니다.
다만 해당 code위 위치(주소)만이 변경되었습니다.


상세 분석은 이전글을 참고 해 주세요




"차례" "Code address" "파일offset"
     [ 원본 hex code ]  --> [ 수정 hex code ]

320x240 강제 설정 패치 부분

1  0x00038684 (039F58)
   [ 56 A0 07 EB ] --> [ 05 0D A0 E3 ]

2  0x00038694 (039F68 )
   [ 52 A0 07 EB ] --> [ F0 00 A0 E3 ]

3  0x000D9D14 (0C9114)
   [ E7 63 05 EB ] --> [ 05 0D A0 E3 ]

4  0x000C97F0 (0C9124)
   [ E3 63 05 EB ] --> [ F0 00 A0 E3 ]

5  0x000DAE48 (0CA248)
   [ 9A 5F 05 EB ] --> [ 05 0D A0 E3 ]

6  0x000CA8D4  (0CA258)
   [ 96 5F 05 EB ] --> [ F0 00 A0 E3 ]


화면 크기 변동 방지
7  0x00028E44  (018244) <
GPS정보 dialog 제대로 보이게 패치>
   [ 92 27 08 EB ] --> [ 00 00 80 E3 ]

8  0x0004C3F8  (03B7F8)  <GPS 인식 직후 화면 제대로 보이게 패치>
   [ 25 9A 07 EB ] --> [ 00 00 80 E3 ]

[안내]
아래 제공되는 파일은 맵피 PDA 라이센스를 소유 하고 있으나 M&Soft 에서 이해할 수 없는 정책을 주장하여 M480, M4800 에서는 사용 할 수 없는 호환성을 해결하고자 개인적으로 만든 파일 입니다.
관련 법을 준수하시기 바랍니다.
컴퓨터프로그램 보호법 - 역분석 관련 법

제12조의2 (프로그램코드역분석)
①정당한 권원에 의하여 프로그램을 사용하는 자 또는 그의 허락을 받은 자가 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우 당해 프로그램의 호환에 필요한 부분에 한하여 프로그램저작권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다.
②제1항의 규정에 의한 프로그램코드역분석을 통하여 얻은 정보는 다음 각호의 1에 해당하는 경우에는 이를 사용할 수 없다.
   1. 호환 목적외의 다른 목적을 위하여 이용하거나 제3자에게 제공하는 경우
   2. 프로그램코드역분석의 대상이 되는 프로그램과 표현이 실질적으로 유사한 프로그램을 개발·제작·판매하거나 기타의 프로그램저작권을 침해하는 행위에 이용하는 경우
      [본조신설 2001·1·16][[시행일 2001·7·17]]

이 파일을 이용해서 맵피를 사용 하기 위해서는
반드시 맵피 PDA 라이센스를 소유 하고 있으며, 또한 Mappy 전체 이미지를 정상적으로 download하신 분 만이 사용이 가능 합니다.

여기서 안내드리는 내용은 직접 patch를 할 수 있는 정보와 patch용 요약자료만 공유 합니다.
패치 프로그램과 Mappy라이센스, Mappy 인스톨 파일은 개인 소유의 것을 이용하셔야 합니다.


Patch 파일은 Free software인 VPatch 를 사용 했습니다. Google 등의 검색엔진을 이용하셔서 개인이 구하셔야 합니다.
이 프로그래과 제공하는 data를 이용하여 발생하는 법적인 문제에 대해서는 사용하는 당사자들의 책임임을 밝혀 둡니다.

아래 파일에 대해서는 그 어떠한 질문에 대해서도 답변을 드리지 않습니다.

패치요약 파일:



위 파일은 VPatch 라는 프로그램을 설치하고난 뒤에 전용 프로그램을 이용하시면 됩니다.
*당연히 PDA용 Mappy 5.7.0 버전 원본이 있어야 합니다.
*Patch 실행 법은 VPatch 설명서를 참고 하세요.
 
VPATCHPROMPT.EXE (patchfile) (sourcefile) (outputfile)


계속 해서 세번째 글을 올립니다.
이전글은 아래 link를 이용하세요

원래는 짧게 설명 될듯 생각 했는데 - 글을 작성하다 보니 의외로 길어 졌습니다.
그냥 patch data만 올려도 되겠지만, 나름의 뒷구멍 파시는 분에게 혹시나 참고 자료가 될듯 하여 자세히 기술하다보니 많이 길어 졌습니다.


[2011-01-25]
맵피고(맵피Go . MappyGo) 관련 패치는 아래 URL로 이동 하세요.


지난글에서 해결한 사항은 아래와 같습니다.
첫번째글: Mappy 실행 후 첫 지도 화면 보이기
두번째글: GPS정보 화면 제대로 보이기

나머지 해결해야 할 문제: GPS 인식 직후 화면 먹통 문제

오늘은 마지막으로 "GPS 인식 직후 제대로 보이기" 입니다.
이미 지난글에 언급했듯이 GPS 인식 후 문제도 결국 두번째글에서 해결한 사항과 동일합니다.
맵피는 하나의 window에 대해서 지도도 보이고 dialog box도 보입니다 그런데 어떤 상황에서 이 공용 window의 크기가 뒤틀려 버리고, 이후로는 지도를 영영 볼수가 없는게 문제의 핵심이었습니다.

그럼 이미 지난 글에서 해결책으로 사용한 MoveWindow 관련 동작이 문제의 핵심이라 생각 할 수 있습니다.
무작정 MoveWindow를 검색 해 봅니다. IDA에서 MoveWindow 호출 부분에서 'X' 키를 누르면 모든 MoveWindow 호출 위치가 짠~ 하고 나타 납니다.
다행이 모두 6곳만이 있습니다. 전체 code에서 단지 6개면 시도 해 볼만한 게임입니다!

그 중에 한곳(맨 먼저 등장)은 이미 지난글에서 패치한 그 부분 입니다.
그래서 후보군은 5개로 좁혀 집니다.

쭉 정리하면 아래와 같습니다. [MoveWindow 호출 부분 6곳]
이미 MoveWindow 기능은 이전글에서 파악 했기에, 쭉 나열하고 부차적으로 설명 하겠습니다.
실은 아래 내용은 제가 삽질 하면서 기록한 내용을 거의 그대로 가져 왔습니다.
이런 일에는 모든 작업을 기록을 해 두어야 좀 쉽습니다.(머리가 나빠 하루 지나면 까먹는다는 ㅎㅎ)
MoveWindow는 단지 6개 부분에서 호출 됨

[1] MAIN_DIALOG_GPS_INFORMATION:loc_277A8 --> 완료!: GPS정보 - Dialog box 부분 참조
       BL   MoveWindow   --> 이미 수정한 부분
원본:  A7 23 08 EB 01 10 A0 E3
수정:  00 00 80 E3 01 10 A0 E3

[2] sub_4AAC8+54 : 무언가 중요해 보임 - 이 함수 호출 후 / Update window 부르는 함수확인
      .text:0004AB1C  BL  MoveWindow    부분을 NOP 처리 해 보자
      ORRR1, R1, #0   00 10 81 E3 로 설정 하기
원본:  CA 96 07 EB 28 D0 8D E2 70 80 BD E8
수정:  00 10 81 E3 28 D0 8D E2 70 80 BD E8

[3] sub_DA550+44 : 이넘도 뭔가 수상함 - GetTickCount 부분에서도 호출 됨
      특히 EualRect 등으로 확인 후 이 함수를 호출하고 있음.
      ORRR1, R1, #0   00 10 81 E3 로 설정 하기
원본:  2C 58 05 EB 08 D0 8D E2 10 80 BD E8
수정:  00 10 81 E3 08 D0 8D E2 10 80 BD E8


아래 3개는 동일 함수내에 즉 같은 의미의 MoveWindow 호출 (3 case에 따른 중복 호출)
 ----> 원본 code를 똑똑하지 않게 작성 했다는 의미입니다. ['도배' 했다는 거죠 ㅋㅋ]
패치 하지 말것 - 최초 Intro 화면에 대한 가로/세로 변환임 - 그냥 두어야 가로로 인트로가 나옴!
 -----> ORR  R0, R0, #0   00 00 80 E3

[4] sub_1F9810+184 : Main Frame window title text 등을 설정 하는 듯 - 이넘에 관심 가지자!
BL      MoveWindow
원본:  2C DB 00 EB 00 00 96 E5
수정:  00 00 80 E3 00 00 96 E5

[5] sub_1F9810+1EC :
BL      MoveWindow
원본:  12 DB 00 EB 00 00 96 E5
수정:  00 00 80 E3 00 00 96 E5

[6] sub_1F9810+248 :
BL      MoveWindow
원본:  FB DA 00 EB 00 00 96 E5
수정:  00 00 80 E3 00 00 96 E5

자~ 마직막을 달려 가고 있습니다.

[1]은 이미 이전글에 패치를 하여 GPS정보 dialog를 제대로 보이게끔 완성 했습니다.
나머지 MoveWindow를 모조리 없애 버리고 확인 하면 좋겠지만... 무언가 삑사리가 발생하겠죠.

그래서 아래와 같이 패치를 종류별로 나열 했습니다.
당연 [1]번 패치 까지 설정한 상태에서 아래의 2가지 조합을 먼저 처리해서 test 해 봅니다.

1. [2]번 패치 적용
실행 했습니다. GPS 인식도 해 보았습니다.
넵! 아무런 문제가 없이 동작 완료 했습니다. 끝을 봤다고 할까요

2. [3]번 피치 적용
실행 했습니다. 그런데 320x240 화면이 세로로 중앙에 표시가 되더군요 ㅋㅋㅋ
넵! 실행에는 문제가 없습니다. 그런데 Title / Softkey가 아래에 있는 app.의 것이 보이기 때문에 조작 실수가 발생 할 듯 하여 - 이 버전을 사용 안하는게 좋을 듯 합니다.


그리고~ 나머지 [4], [5], [6]은 셋트 메뉴이므로 [2][4][5][6] 과 [3]
[4][5][6] 두개를 비교 해 보았습니다.
바꾼것은 Intro 화면이 가로가 아닌 세로로 나오더군요 ㅋㅋㅋ
넵 그래서 최종적으로 [2]번 사항만 적용 하면 된다는 것이 결론입니다.

그런데 이 [2] 패치 하면서 맵피 동작을 살펴 봤는데 - GPS 인식 직후에 화면이 1dot 정도 구성이 달라 지더군요 - 각족 button이 1pixel인가 위로 올라 갑니다. 즉 화면에 대해서 이상한 짓을 한다는 것이 제 눈에 보였고 - 결국 MoveWindow가 그 단서라는 것은 이 현상을 보고서도 확인이 된 것이죠.


자 이제 끝입니다... 최종 정리 하겠습니다.
글이 길어서 어떻게 패치 하라는 것인지 헷갈릴 듯 하여... 최종 종합 정리 입니다.



320x240 강제 설정 패치 부분
"차례"  "파일offset"
     [ 원본 hex code ]  --> [ 수정 hex code ]

1  0x038684
   [ F9 9C 07 EB ] --> [ 05 0D A0 E3 ]

2  0x038694
   [ F5 9C 07 EB ] --> [ F0 00 A0 E3 ]

3  0xC97E0
   [ A2 58 05 EB ] --> [ 05 0D A0 E3 ]

4  0xC97F0
   [ 9E 58 05 EB ] --> [ F0 00 A0 E3 ]

5  0xCA8C4
   [ 69 54 05 EB ] --> [ 05 0D A0 E3 ]

6  0xCA8D4
   [ 65 54 05 EB ] --> [ F0 00 A0 E3 ]



GPS정보 dialog 제대로 보이게 패치
  [ A7 23 08 EB 01 10 A0 E3 ] ---> [ 00 00 80 E3 01 10 A0 E3 ]



GPS 인식 직후 화면 제대로 보이게 패치
  [ CA 96 07 EB 28 D0 8D E2 70 80 BD E8 ]   ---> [ 00 10 81 E3 28 D0 8D E2 70 80 BD E8 ]



[안내]
아래 제공되는 파일은 맵피 PDA 라이센스를 소유 하고 있으나 M&Soft 에서 이해할 수 없는 정책을 주장하여 M480, M4800 에서는 사용 할 수 없는 호환성을 해결하고자 개인적으로 만든 파일 입니다.
관련 법을 준수하시기 바랍니다.
컴퓨터프로그램 보호법 - 역분석 관련 법

제12조의2 (프로그램코드역분석)
①정당한 권원에 의하여 프로그램을 사용하는 자 또는 그의 허락을 받은 자가 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우 당해 프로그램의 호환에 필요한 부분에 한하여 프로그램저작권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다.
②제1항의 규정에 의한 프로그램코드역분석을 통하여 얻은 정보는 다음 각호의 1에 해당하는 경우에는 이를 사용할 수 없다.
   1. 호환 목적외의 다른 목적을 위하여 이용하거나 제3자에게 제공하는 경우
   2. 프로그램코드역분석의 대상이 되는 프로그램과 표현이 실질적으로 유사한 프로그램을 개발·제작·판매하거나 기타의 프로그램저작권을 침해하는 행위에 이용하는 경우
      [본조신설 2001·1·16][[시행일 2001·7·17]]

이 파일을 이용해서 맵피를 사용 하기 위해서는
반드시 맵피 PDA 라이센스를 소유 하고 있으며, 또한 Mappy 전체 이미지를 정상적으로 download하신 분 만이 사용이 가능 합니다.

여기서 안내드리는 내용은 직접 patch를 할 수 있는 정보와 patch용 요약자료만 공유 합니다.
패치 프로그램과 Mappy라이센스, Mappy 인스톨 파일은 개인 소유의 것을 이용하셔야 합니다.


Patch 파일은 Free software인 VPatch 를 사용 했습니다. Google 등의 검색엔진을 이용하셔서 개인이 구하셔야 합니다.
이 프로그래과 제공하는 data를 이용하여 발생하는 법적인 문제에 대해서는 사용하는 당사자들의 책임임을 밝혀 둡니다.

아래 파일에 대해서는 그 어떠한 질문에 대해서도 답변을 드리지 않습니다.

패치요약 파일:
위 파일은 VPatch 라는 프로그램을 설치하고난 뒤에 전용 프로그램을 이용하시면 됩니다.
*당연히 Mappy 5.5.1 버전 원본이 있어야 합니다.
*Patch 실행 법은 VPatch 설명서를 참고 하세요.
 
VPATCHPROMPT.EXE (patchfile) (sourcefile) (outputfile)




** 반드시 RealVGA 혹은 ForceHires 유틸리티를 사용 하셔서 96 dpi 모드로 실행 하셔야 합니다.

** 그리고 그냥은 GPS연결이 제대로 안됩니다.
꼭 GpsGate등의 유틸리티로 새로운 포트를 할당하고, Mappy는 그 포트를 이용 하도록 하셔야 합니다.
이 부분은 맵피의 버그라고 봅니다. 예전 M4300 사용 때에도 부팅 직후 GPS연결하면 먹통이 되었습니다.
** 상황에 따라 맵피가 먹통 됩니다.(아주 간혹 발생) 이 경우 다시 부팅하고서 실행 해야 하더군요.
역시 맵피 자체의 문제로 인식이 됩니다.


실행화면 캡쳐 내용입니다.


















.

+ Recent posts