13. 랑그릿사2 캐릭터 초기 설정 및 고유 보정치 데이터

랑그릿사2 캐릭터 이름은 6번 글 에서 살펴봤습니다. 이 중에서 플레이 가능한 캐릭터들은 총 18명입니다. 여기서 빛의 후예 라나와 다크 프린세스 라나는 별개로 계산합니다. 03번 라나는 빛의 후예 라나(홀리라나)이고, 0A번 라나는 다크 프린세스 라나(다크라나)입니다. 플레이 가능한 캐릭터들은 초기 설정과 고유 보정치를 가지고 있습니다. 초기 설정은 메모리 주소 00_44_21_A8 (헥스에디터 기준 00_04_0F_A8) 에 있습니다. 18명이고 1명당 20바이트씩 정보가 있으므로 총 18 x 20바이트 = 360바이트가 있습니다. 데이터를 캐릭터별로 정리해보면 다음과 같습니다. 03 00 00 01 00 17 12 00 00 00 00 00 00 00 01 04 7B 00 00 00 (엘윈) 0B 00 08 03 00 14 11 00 80 02 00 00 00 01 05 03 B0 00 00 00 (리아나) 0B 00 0A 09 00 15 12 00 80 02 00 00 00 01 09 03 B0 00 00 00 (홀리라나) 0A 00 00 04 00 19 0E 00 00 00 00 00 00 01 0D 05 AA 00 00 00 (쉐리) 0E 00 0C 01 00 17 0D 00 01 00 00 00 00 00 11 03 7B 00 00 00 (헤인) FE 00 00 02 06 16 10 00 00 00 00 00 00 00 15 05 82 00 00 00 (스코트) 0A 00 01 08 00 1A 0F 00 00 00 00 00 00 00 21 05 AA 00 00 00 (키스) 02 00 01 09 00 17 14 00 00 00 00 00 00 00 25 05 7A 00 00 00 (아론) 08 00 01 09 00 17 13 00 00 00 00 00 00 00 1D 05 A0 00 00 00 (레스터) 0C 00 0A 09 00 19 10 00 04 00 00 00 00 01 3A 03 7C 00 00 00 (다크라나) 35...

12. 랑그릿사2 상점 데이터

랑그릿사2 PC판의 아이템 데이터에 대해서는 11번 글 에서 살펴봤습니다. 상점의 아이템 목록 데이터는 메모리 주소 00_44_6C_10 (헥스에디터 기준 00_04_5A_10) 를 살펴봐야합니다. Ghidra로 살펴보면 00_44_6C_10 부터 00_44_6D_9F 까지 주소로 채워져있는 것을 알 수 있습니다. Offset (h) 00_44_6C_10 : CC 6A 44 00  (시나리오 1 상점 아이템 목록 데이터 주소) 00_44_6C_14 : D0 6A 44 00  (시나리오 2 상점 아이템 목록 데이터 주소) 00_44_6C_18 : D8 6A 44 00  (시나리오 3 상점 아이템 목록 데이터 주소) 00_44_6C_1C : E0 6A 44 00  (시나리오 4 상점 아이템 목록 데이터 주소) ... 모든 데이터는 littel endian 방식이므로 바이트 단위로 거꾸로 읽어야 합니다. 예를 들어 CC 6A 44 00 는 00_44_6A_CC 로 해석됩니다. 헥스에디터에서 편집하려면 여기서 00_40_12_00 을 빼줘야합니다. 00_44_6A_CC에서 00_40_12_00을 빼면 00_04_58_CC 이 됩니다. 이런 식으로 변환해서 정리하면 다음과 같이 됩니다. <상점 아이템 목록 데이터 주소(헥스에디터 기준)> 시나리오   1 : 00_04_58_CC 시나리오   2 : 00_04_58_D0 시나리오   3 : 00_04_58_D8 시나리오   4 : 00_04_58_E0 시나리오   5 : 00_04_58_E8 시나리오   6 : 00_04_58_D0 ... 시나리오  99 : 00_04_6B_D0 시나리오 100 : 00_04_6B_E8 (사실 시나리오 99와 시나리오 100은 없고 각각 숨겨진 상점1,2에 해당됩니다.) 헥스에디터로 la...

11. 랑그릿사2 아이템 데이터

랑그릿사2 PC판의 아이템 이름과 설명에 대해서는 5번 글 에서 살펴봤습니다. ITEM.DAT 파일을 살펴보면, 아이템의 순서가 다음과 같음을 알 수 있습니다. 1. 나이프 2. 워 해머 3. 그레이트 소드 4. 완드 5. 플레임 랜스 6. 데빌 액스 7. D-슬레이어 8. 랑그릿사 9. 랑그릿사 10. 철 아령 11. 메사이얀 소드 12. 오브 13. 홀리 로드 14. 홀리 로드 15. 다크 로드 16. 롱 보우 17. 아바 레스트 18. 알하자드 19. 알하자드 20. 오딘의 방패 21. 스몰 실드 22. 라지 실드 23. 체인 메일 24. 플레이트아머 25. 아절트 슈트 26. 로브 27. 드래곤 스케일 28. 미라쥬 로브 29. 아뮬렛 30. 크로스 31. 넥크리스 32. 스피드 부츠 33. 크라운 34. 그레이프 닐 35. 룬스톤  랑그릿사, 알하자드는 2개씩 있는데, 8번은 "봉인된 랑그릿사"이고 18번은 "봉인된 알하자드"입니다. (그런데 홀리 로드는 왜 2개(13번과 14번)가 있는지는 모르겠습니다.) 아이템 데이터는 메모리 주소 00_44_15_30 (헥스에디터 기준 00_04_03_30) 에 있습니다. 아이템이 총 35개가 있고 아이템 하나당 16바이트씩 정보가 있으므로 총 35 x 16바이트 = 560바이트가 있습니다. 헥스에디터로 langpc2.exe를 열어봅시다. Offset (h) 00000000 : 00 00 01 00  FF FF FF FF  FF FF FF FF  FF FF FF FF  (1. 나이프) 00000010 : 00 00 02 00  FF FF FF FF  FF FF FF FF  FF FF FF FF  (2. 워 해머) 00000020 : 00 00 04 00  FF FF FF FF  FF FF FF FF  FF FF FF FF...

10. 랑그릿사2 윈도우 10 호환성 패치 (20년 1월 13일)

랑그릿사2를 윈도우 10에서 실행하면 여러가지 버그가 발생하는 문제가 있습니다. 윈도우 10에서 원활하게 플레이할 수 있도록 패치한 파일을 올려놨습니다. (다음 파일 참고) https://drive.google.com/open?id=1cNvxnN5KVpjGFCqfV0RyTDrlHhP2-7uY 1. 패치 방법 (1) 위의 주소에서 패치 파일을 받습니다. (파일명 : langpc2_1.01b.zip) (2) 압축파일을 랑그릿사2가 설치된 폴더(즉, langpc2.exe 파일이 있는 곳)에 풀어놓습니다. (파일명 : langpc2_1.01b.exe, langpc2p.dll) (3) langpc2.exe 파일의 이름을 langpc2_orig.exe 로 바꾸고, langpc2_1.01b.exe 파일의 이름을 langpc2.exe 로 바꿉니다. (4) 이제 langpc2.exe 를 실행하여 플레이하면 됩니다. (5) 만약에 정상적으로 실행되지 않는다면 다음과 같이 합니다. 1) "랑그릿사II 정품 CD 2를 넣어 주십시오." 게임을 실행하려면 정품 CD 2가 있어야 합니다. 시디 이미지를 가지고 있는 경우 데몬툴즈나 시디스페이스를 사용해서 D 드라이브 를 만들고 이미지 삽입을 합니다. 드라이브는 반드시 D 드라이브 여야 게임이 실행됩니다. 2) 0xc00007b 오류가 발생하는 경우 (또는 VCRUNTIME140.dll 파일이 없다고 나오는 경우) https://aka.ms/vs/16/release/vc_redist.x64.exe 에서 Visual Studio 2015, 2017 및 2019용 Microsoft Visual C++ 재배포 가능 패키지(x86용)를 받아서 설치합니다. 3) 다이렉트 X가 설치되지 않았다는 메시지가 나오는 경우 원인1 : 실행파일의 경로가 긴 경우 이런 오류가 발생합니다. Langrisser II 폴더가 C드라이브 아래에 있지 않은 경우, C드라이브 아래로 옮겨줍니다. 원인2 : (윈도우 11인 경우) 다...

9. 랑그릿사2 병종 이동 및 지형 보너스 데이터

이번에는 병종의 이동 데이터를 살펴보겠습니다. 이동 데이터는 메모리 주소 00_44_17_60 (헥스에디터 기준 00_04_05_60) 에 있습니다. 병종이 총 18개가 있고 지형이 총 29개가 있으므로 병종/지형간 조합은 총 18 x 29 = 522개가 있고 조합 하나당 2바이트씩 정보가 있으므로 총 522 x 2바이트 = 1044바이트가 있습니다. FF FF는 이동불가를 나타내고 그 외의 경우는 지형을 이동하는데 소모하는 이동력을 나타냅니다. 이동 데이터도 상성 데이터와 마찬가지로 분석해서 엑셀파일로 정리해서 올려놨습니다. (다음 파일 참고) https://drive.google.com/open?id=146eBHHhZEc49XzmbOICSmBuMchfJLani 지형 보너스 데이터는 다음 위치에 있습니다. 1. 기본값 : 메모리 주소 00_44_29_88 (헥스에디터 기준 00_04_17_88) 부터 29바이트 2. 병종별 보너스 : 메모리 주소 00_44_33_E8 (헥스에디터 기준 00_04_21_E8) 부터 522바이트 지형 보너스 데이터를 정리한 파일은 아래 주소에 있습니다. (다음 파일 참고) https://drive.google.com/open?id=1njxE8-xw6FMN8CfnE8YTB-0bRjiNnHWE

8. 랑그릿사2 병종 상성 데이터

이미지
랑그릿사2 PC판의 병종 목록은 7번 글 에서 살펴봤습니다. 이번에는 병종 간의 상성을 살펴보겠습니다. 상성 데이터는 메모리 주소 00_44_31_60 (헥스에디터 기준 00_04_1F_60) 에 있습니다. 병종이 총 18개가 있으므로 병종간 조합은 총 18 x 18 = 324개가 있고 조합 하나당 2바이트씩 정보가 있으므로 총 324 x 2바이트 = 648바이트가 있습니다. 헥스에디터로 langpc2.exe를 열어봅시다. Offset (h) 00000000 : 00 00 00 00 19 0A 00 00 00 00 00 00 00 00 00 00 00000010 : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 05 00000020 : 05 05 00 00 00 00 00 00 19 0A 00 00 00 00 00 00 ... 처음 36바이트는 보병-일반이 다른 병종을 상대할 때 갖는 상성보너스입니다. 00 00 : 보병-일반을 상대하는 경우 (상성보너스 없음.) 00 00 : 보병-승병을 상대하는 경우 (상성보너스 없음.) 19 0A : 장창을 상대하는 경우 (공격 +25%, 방어 +10%) 00 00 : 기마-일반을 상대하는 경우 (상성보너스 없음.) 00 00 : 기마-특수를 상대하는 경우 (상성보너스 없음.) 00 00 : 비병을 상대하는 경우 (상성보너스 없음.) 00 00 : 보병-도적을 상대하는 경우 (상성보너스 없음.) 00 00 : 수병-일반을 상대하는 경우 (상성보너스 없음.) 00 00 : 겔을 상대하는 경우 (상성보너스 없음.) 00 00 : 마족을 상대하는 경우 (상성보너스 없음.) 00 00 : 수병-해수를 상대하는 경우 (상성보너스 없음.) 00 00 : 보병-야복을 상대하는 경우 (상성보너스 없음.) 00 00 : 보병-법사를 상대하는 경우 (상성보너스 없음.) 00 00 : 불사-귀혼을 상대하는 경우 (상성보너스 없음.) 00 00 : 불사-일반을 상대하는 경우 (상성보너스 ...

7. 랑그릿사2 클래스(지휘관, 용병, 소환수) 데이터

이번에는 랑그릿사2의 클래스와 관련된 데이터를 살펴보겠습니다. 6번 글 에서 알아낸 클래스 이름 외에도 다음 파일이 필요합니다. 1. CD/ORGDAT/CLASS.DAT 2. tdat.res >> MENU.DAT CLASS.DAT 파일은 크기가 0x FF x 0x 1C = 0x 1BE4 바이트이며, 클래스 하나 당 0x 1C 바이트씩 총 0x FF개 클래스의 데이터가 있습니다. Offset (h) 00000000 : 00 00 00 00 01 02 05 02 00 02 01 32 01 00 03 07 00000010 : 02 00 79 00 00 00 00 00 FF FF FF FF 00 00 00 00 00000020 : 01 02 05 02 01 01 01 32 01 00 03 06 02 0B 79 00 00000030 : 00 00 00 00 FF FF FF FF 00 00 00 00 01 02 05 02 00000040 : 00 02 01 32 01 00 03 06 02 0B 7A 00 00 00 00 00 ... 00번 클래스 : 0x 00부터 0x 1B까지 (00 00 00 00 01 02 05 02 00 02 01 32 01 00 03 07 02 00 79 00 00 00 00 00 FF FF FF FF) 01번 클래스 : 0x 1C부터 0x 36까지 (00 00 00 00 01 02 05 02 01 01 01 32 01 00 03 06 02 0B 79 00 00 00 00 00 FF FF FF FF) 02번 클래스 : 0x 37부터 0x 51까지 (00 00 00 00 01 02 05 02 00 02 01 32 01 00 03 06 02 0B 7A 00 00 00 00 00 FF FF FF FF) 03번 클래스 : 0x 52부터 0x 6C까지 (00 00 00 00 01 02 05 02 01 02 01 32 01 00 03 06 02 0B 7B 00 00 00 00 00 FF FF FF FF) ......

글 목록