[PS2] 베르윅 사가 - 리넷 포박, 포박 불가 유닛 포박해 봄 (메모리에딧 기록)(수정1) / 치트엔진 / Capture Lynette + Paramythis

* 수정1(2024-12-22) : 파라미티스,리넷 포박대사 확인 추가


● 관련링크

- 간략리뷰, 팁, 시스템, 정보 : https://soulslip29.blogspot.com/2024/07/ps2-srpg.html

 (위 글에 있는 링크들)

- 스토리 정리 : https://soulslip29.blogspot.com/2024/07/ps2.html

- PCSX2용 치트파일 (테스트 완료된 것만. 돈+렙업전능력+포박) https://soulslip29.blogspot.com/2024/07/ps2-pcsx2-pnach-j-berwick-saga.html

- 전캐릭 엔딩이벤 등 세이브 : https://soulslip29.blogspot.com/2024/07/ps2-2-berwick-saga.html

* 포박 불가 유닛(리넷, 파라미티스) 포박해 봄, 메모리에딧 기록 + 세이브 (이 글) : https://soulslip29.blogspot.com/2024/12/ps2.html

ㄴ 포박대사 영상 찍음 : https://youtu.be/QAcr73rSB1U

----------------------------------------------------------------


 PS2(플레이스테이션2)의 「베르윅 사가(Berwick Saga, ベルウィック サーガ)」 이며, 에뮬레이터는 PCSXE 1.6.0 사용.


 에딧 방법이 어렵기 때문에 (주소가 게임 내 로드할 때마다 바뀜) 그냥 마지막에 메모하고, 결과를 먼저 기록.



● 메모리에딧 프로그램

* 치트엔진(Cheat Engine) 이 추천된다.

 현 버전 7.5는 윈도우10에서만 구동 가능하므로, 윈도우7에서는 7.4 버전을 구해야.

 

* 아트머니(Artmoney)는 추천 불가(Trash) : 그동안 썼던 프로그램인데 버리게 됨.

1) 8 버전으로 넘어오면서 버그(주소를 복사하려고 더블클릭 하면, 앞자리가 0이 됨)가 생겼고. 

▲ 첫 자리가 '0'으로 바뀌는 심각한 버그가 생겼고 오랫동안 고쳐지지 않음.
주소를 복붙해서 계산해야 하는데 엄청난 불편함.

2) 주소 검색시 리스트 1000개 밖에 보이지 않는다.

 (치트엔진은 무려 10,000,000개 리스트가 보인다.)




■1. 전투불능이 안되는 유닛들을 전투불능으로 해보았다

1. 마지막 스테이지에서 리스,리넷을 전투불능에 성공했지만, 적 AI상 포박을 안하므로 별 의미는 없었음.

 마지막 스테이지에서 원래 모든 아군유닛은 경상or전투불능이 되지 않고, 적 AI도 포박을 안한다.



2. 스테이지14에서 적보스, 리넷(원래 무적유닛) 전투불능

▲ 적보스와 리넷을 전투불능으로 해봄.
보스를 포획하면 클리어가 불가능해진다... 죽여야만 클리어됨.

▲ 무적유닛인 리넷도 포박이 가능해진다.

▲ 이때는 대사는 안나옴.
리넷의 장비들은 얻을 수 있으나...

▲ 다음 스테이지에서 아군이 되는 리넷의 아이템이 전부 사라져 있으므로,
결국 아이템 2개를 획득한다거나 하는건 안되었다...



3. 스테이지13에서 파라미티스 전투불능

▲ 정상 진행시는 못보는 포박대사 확인됨.



■2. 아군중 한명을 리넷으로 교체 (불완전)

▲ 크리스 -> 리넷으로 교체하였다
과정은 어려웠음. 유닛명, 클래스, 얼굴 3개를 에딧해야 함.
리넷은 아래쪽 아군 칸에 공간이 없다.


포박 대사는 교체한 캐릭것 그대로 나옴. 각각 크리스, 에니드.



■3. 아군을 리넷으로 교체 (완전)

▲ 치트엔진의 메모리맵을 이용해 복사했더니 스킬들까지 복사됨

▲ 정상 플레이시는 확인 불가능한 리넷의 포박대사까지 확인되었다.
(위 링크의 포박 치트 이용)

- 파라미티스 : く・・不覚・・・・
- 리넷 : いやっ・・離して・・リースさまっ・・・

▲ 영문번역판 대사

 이를 이용해 처음부터 리넷을 동료로 하는것도 가능한데, 한다면 아마 3장에서 합류하는 무쓸모캐릭 '데릭'을 교체하는 게 좋을 듯.
 아군 한명을 교체하는 방식은 되는 데, 추가하는 방법은 못찾았다.


▶ 세이브 공유 (13장. 크리스->리넷으로 교체. 스킬은 복사안함)

* 파일명 : [PS2세이브]Berwick Saga _ Chris to Lynette(S13)_PCSX2.7z

https://drive.google.com/file/d/1evWaWyH2xh-LQCWBVHsaKWoVFxjGB1UK/view?usp=drive_link

 포박 치트를 켜면 포박대사 확인가능해짐.




 에딧 과정 및 결과 기록 (메모리에딧 사용가능자 용)

● 1) 위 1번 전투불능 안되는 유닛 전투불능

- ☆ 경상 or 전투불능은 주소가 따로였다. 

- 전투불능상태(이하 전불플래그)의 주소는 캐릭 1명당 0x244 = 580d 주소 차이다. (이하 0x는 16진수라는 뜻이고 d는 10진수라는 뜻)

 캐릭 순서는 출격칸 초기(스테이지 시작할때 배치 바꾸는 건 반영되지 않음)의 순서임.

- 희한하게도, 먼저 배치되는 유닛의 주소가 더 뒷쪽이다. 스택처럼 뒤쪽부터 쌓는 듯?

 (참고기록 : 출격유닛 배열은 찾을 수 없었는데, Array가 아닌 Linked List 구조 같은 것인 듯.

 또 희한하게도, 어떤 유닛을 출격배열에 선택/해제했는지 순서대로 기억된다. 예를들어 출격칸을 열면, 맨 나중에 골랐던 유닛부터 출격배열에 올라온다)

- 다음 별로 주소들이 구분되는 듯 : 아군 / 적군 / 우군 / 적군증원병 / 적군보스들 및 이벤트시 등장하는 유닛들

 ex) 첫번째 아군유닛의 전불플래그 주소가 0x0000 이라면 두번째 아군 주소는 0x0244 이지만. 첫번째 적군은 0x244 의 배수가 아님 (대충 오차값은 8의 배수였음).

 이걸 기록하는 이유는, 찾을 때 치트엔진의 주소이동 (Shift + Ctrl + Alt + Enter) 기능으로 주소를 8바이트씩 이동하며 찾을 수 있었으므로.

 첫번째 적군의 전불플래그가 0x0000 이라면 두번재 적군은 0x0244 임


* 전투불능 주소는 크기 1바이트 이고.

ㄴ 평상시 : 0

ㄴ 128 : 전투불능

ㄴ 8 or 9 : 수면 (비트가 플래그) 등.


 ▶(찾는법) 프로그램 선택은 PCSX2의 디버그창을 선택해도 되고, 게임창을 선택해도 됨.

 게임내에서 전투불능 치트를 켜고, 한명 전투불능을 만든 후(다른 상태이상 없이 전투불능만) 128로 검색 -> 로드해서 0으로 검색한다.

 (아트머니로 하면 주소가 몇천개씩 나오는데 고작 1000개씩 밖에 안보이므로 노가다 필요하나,)

 치트엔진으로 하면 해당 주소들만 추가해서 테스트하면 되므로 상대적으로 아주 쉬움. (아래  쓰인 것처럼 주소범위 21E~ 로 나오는 것들만 보면 됨)


☆ 게임 내에서 로드할 때마다, 또는 캐릭 쪽수(?)가 달라질 때마다 주소가 바뀌는 경향이 있어 골치가 아프다.

 미션 시작 후 한번에 에딧해야 하는 듯.

 - 주소 운좋게 안바뀐 경우 기록 : 스테이지 9-2(병참기지)에서 주소를 찾은 후, 스테이지 15 시작직후 강제세이브를 로드한 경우 운좋게 되었음(위 리스 전투불능 스샷).


- ★ PCSX2 1.6.0 의 경우, 전불플래그 주소는 21E~ 로 시작하는 주소였다. 21EB or 21EC 이내의 주소를 테이블에 추가하여, 일괄 값 변경 (치트엔진에서 단축키 Enter) 으로 128을 넣어보면 됨.

이대로 출격할 경우
(여기서 순서 바꾸는 건 무효임. 안바꾼 상태 기준으로 찾아야 됨)

 예를들어 4번째 캐릭이 된 세네(빨간머리)의 전불플래그 주소가 21EC698F 로 찾아졌다면, 거기서 + 0x244 를 더한 주소인 21EC6BD3 이 3번째 캐릭의 전불플래그 주소가 된다.
 (앞쪽 캐릭일수록 주소는 뒤쪽인 형태임)
 윈도우 계산기를 '프로그래머 용' 으로 맞추고 계산.


* 14스테이지에서 나중에 추가로 등장하는 리넷+골도봐(보스)는 둘다 전투불능이 안되는 캐릭이라 찾기 어려웠는데, 증원 적의 전불플래그 -20명(주소가 앞쪽으로 가야 하므로 -라 표현함) 정도까지 확보해놓고, 주소를 -8씩 이동시키며 찾음.

 -8 수치의 근거는,

1) 14스테이지의 적들 전불플래그 배치는 다음과 같았음 : 증원되는 적군(메모리의 가장 앞쪽) -> 우군들 -> 처음부터 배치된 적군들 -> 중간보스(이름 '피아스') -> 아군

2) 여기서, 「처음부터배치된적군」 주소와, 도중 등장하는 적군 '피아스(중간보스?)' 의 주소 오차가 16d 이었다.

3) 「우군들」 주소와, 「증원되는적군」 의 주소 오차가 536d 였다. 두 수의 공약수 = 8.

 -4 씩 이동시킬 수도 있었지만 노가다 하기 싫어 -8로 했는데 운좋게 찾아졌음.

 리넷+골도봐의 주소는 「증원되는적군」 보다 앞이었다.


* 주소 기록

 증원궁수 주소 -10명 분(-5800d) 의 전불플래그 21EB6667 일때, 리넷 플래그 21EB60BF (0x5A8 = 1448d 차이.  580x2 후 -288d)

 리넷+골도봐는 등장시 상황이 다를 때마다 주소가 바뀐다.



● 2) 위 2번 아군을 리넷으로 교체

- '출격준비' 화면에서, 윗쪽으로 올라간 캐릭들의 배열은 존재하지 않는 듯(특이하다).

 대신 캐릭별로 「출격멤버로 설정되었는가」 변수가 존재함. 그런데 값이 제각각이라 골치 아프다.

 예를들어 '크리스'는 출격멤버가 되면 104 가 되고, 해제되면 40이 된다. 그외 초반부터 아군이되는 유닛들은 비슷하게 동일하고, 후반유닛 중 '에니드'도 동일함.

 아래는 제각각인 사례. (각각 출격시, 미출격시)

사휘아 : 9, 73

다우드, 바로우즈 : 8, 72

오르웬 : 41, 105

 (그런데 에딧할땐 값을 정확히 맞출필요 없고, 104인 캐릭도 100으로 입력하면 출격으로 간주됨)

 => 이 값을 토대로 출격플래그 주소를 찾을 수 있다. (1바이트)


- 출격플래그주소 - 0x10 이 얼굴 주소 (2바이트) 이다.

- 출격플래그주소 - 0x12 이 유닛이름_표시용 (2바이트) 이다.

- 출격플래그주소 - 0x14 는 유닛이름_진짜 (2바이트) 이다. (이걸 고쳐야 정말 유닛을 바꾼걸로 인식됨)

- 출격플래그주소 - 0x0D 가 클래스종류 (1바이트 인 듯) 이다.


 ex) 크리스 출격플래그 21E298F4 일 때,

ㄴ21E298E7 : 클래스 (1바이트).  1,2는 로드. 3,4는 하이로드 5로 설정시 아포스텔 등.

ㄴ21E298E4 : 얼굴 (2바이트). 639가 리넷.

ㄴ21E298E2 : 유닛이름 (2바이트).  크리스가 124 인데, 125로 하면 리넷이 됨.

ㄴ21E298E0 : 유닛 진짜이름 (2바이트).  상동.

▲ 얼굴그림은 정말 많다. 미사용된 그림들도 많이 확인 가능.

* 유튭에 전캐릭얼굴 올라와있는게 있어 링크 : https://www.youtube.com/watch?v=x8fKJw9b-xM



● 3) 위 3번 아군을 리넷으로 교체 (완전)

 치트엔진의 메모리뷰(Memory View) 버튼으로 메모리를 볼 수 있다.

 15장 리넷의 능력치를 이용해 출격플래그 주소를 찾았다.

 C8 03 00 80 로 시작하는 곳이다. 능력치로 검색할땐 4바이트로 뒤집어 검색해야 됨(C003E800)


 이걸 앞뒤로 13장의 크리스에게 복붙해 보니,
 - 뒤쪽 5줄 복사시 스킬들이 복사됨.
 - 위쪽은 위에서 설명한대로 이름 등이 있는데, 표시용 이름 외에 진짜이름 주소도 바로 붙어 있었음.
=> 결과적으로 「진짜이름」 만 고치면 된다는 걸 알게 되었음.


크리스의 주소에 복붙하니 되었다.


 위에도 썼지만 이를 이용시, 처음부터 리넷을 동료로 플레이 가능할 듯.

 아군 한명을 교체하는 것으로 가능하고, 추가하는 방식으로는 안되었다.

 출격멤머들 리스트가 존재하지 않는(대신 각 캐릭별로 출격 하냐마냐 플래그가 있음) 등, 에딧이 어렵도록 프로그램 해 놓은 듯.


 참고로 출격플래그(4바이트)를 0으로 만들면 15장에서 리넷을 출격 제외 시키는 것도 가능하다.




* 검색어 : #ベルウィック サーガ #リネット #捕縛 





댓글 없음:

댓글 쓰기