시나리오: 바이트코드, 길드 의뢰·왕명, 작위, 주인공별 이야기와 엔딩
대항해시대 2의 이야기 진행은 MAIN.EXE 안의 작은 가상 기계(이하 VM)가 SNR0.DAT~SNR6.DAT 바이트코드를 실행해 처리합니다.
SNR0은 모든 주인공이 함께 쓰는 길드 의뢰와 왕명이고, SNR1~SNR6은 주인공 여섯 명의 이야기입니다.
표시 방법은 index.md의 신뢰도 표시를 따릅니다. 주소는 한글판 MAIN.EXE 파일 오프셋(KO)이고, SNRn 0x1234는 그 .DAT 파일 안의 오프셋입니다.
1. 파일 구성
확인됨[직접] (한글판 파일을 직접 해석)
| 파일 | 크기(한글판) | 내용 |
|---|---|---|
SNR0.DAT | 11,224 | 공통 시나리오 13개 섹션(대기 상태, 길드 의뢰 5종, 왕명 7종) |
SNR1.DAT~SNR6.DAT | 3,934~15,413 | 주인공별 이야기. 1 조안, 2 카탈리나, 3 옷토, 4 에르네스트, 5 피에트로, 6 알 |
SNRn.MES | 11,729~65,350 | 각 시나리오의 대사. 앞에 u32 빅엔디언 오프셋 표, 문자열은 CP949, NUL로 끝남 |
MESSAGE.DAT | 45,384 | 공통 대사 1,179개. 앞에 u16 빅엔디언 오프셋 표 |
EVENT0.DAT~EVENT6.DAT | 8,541~62,878 | 시나리오가 보여 주는 이벤트 그림(아래 9절) |
SNRn.DAT 구조:
+0x00문자열SNDT,+0x10부터 u32 빅엔디언 섹션 오프셋 목록,FFFFFFFF로 끝.- 섹션마다: u16 머리 길이, 그 뒤 "하위 섹션" 경로표 오프셋 목록(
FFFF로 끝). - 경로표: (경로 키 u16, 표 시작 기준 상대 목적지 u16) 쌍의 목록,
FFFF FFFF로 끝. - 게임은 지금 섹션·하위 섹션의 경로표에서 지금 상황에 맞는 키를 찾아, 그 목적지부터 명령을 실행합니다.
경로 키
키 = 선택 바이트 + 한정 바이트입니다. 한정 바이트 0xFF는 "아무거나"입니다. 확인됨[대조] (경로 비교 루틴 KO 0x380C1·KO 0x38202가 영문판과 명령어 차이 0)
| 선택 바이트 | 뜻 | 한정 바이트 |
|---|---|---|
0x00~0x63 | 그 번호의 항구(주인공 시나리오). SNR0은 0x00~0x81(보급항 포함 130곳) | 건물 번호 |
0xA3 | 아무 항구 | 건물 번호 |
0xA0 | 바다 위 | 이번 항해 일수 |
0xA1 | 해전 직전 | 상대 제독의 항해사 번호 |
0xA2 | 해전 직후 | 상대 제독의 항해사 번호 |
건물 번호: 0 시장, 1 주점, 2 조선소, 3 선착장(항구 사무소), 4 여관, 5 왕궁, 6 길드, 7 특수 건물(주인공 집 등), 8 은행, 9 도구점, 0x0A 교회, 0x0B 점술가, 0x15 국왕 알현.
예: 0x0007 = 리스본(0번 항)의 특수 건물(조안의 집), 0x0D08 = 베네치아 은행, 0xA306 = 아무 항구의 길드.
2. 해석기(VM) 위치
확인됨[직접]: 명령 분기표를 한글판에서 찾아 처리기 주소를 하나하나 맞췄습니다. 모든 명령의 처리기가 영문판과 같은 모양이고, D9 하나만 한글판에서 빠졌습니다(분기표 기본값으로 감).
| 역할 | 한글판 | 영문판 |
|---|---|---|
| 명령 해석 반복문 | KO 0x37F8B | EN 0x38F4F |
| 섹션 불러오기 | KO 0x37606 | EN 0x38593 |
| 공통 시나리오 경로 비교 / 실행 | KO 0x380C1 / KO 0x38030 | EN 0x39085 / EN 0x38FF4 |
| 주인공 시나리오 경로 비교 | KO 0x38202 | EN 0x391C6 |
| 대입 / 산술 / 비교 명령군 | KO 0x377B1 / 0x379B1 / 0x37AEB | EN 0x3873E / 0x3893E / 0x38A78 |
대사 문자열 펼치기($n 이름, $s 성, $dNN·$rNN 변수) | KO 0x373BE | EN 0x383A5 |
| 기록 그룹 주소 계산 | KO 0x36A2E(분기표 0x36A54) | EN 0x37A24 |
| 시나리오 난수 | KO 0x36F68 | EN 0x37F4F |
3. 명령어
명령 길이와 처리기 대응은 확인됨[직접], 의미는 확인됨[대조] 입니다(영문판 연구의 해석, 처리기 코드가 같음).
대입·산술·조건 분기
0x00~0x3F대입: 비트 4~5 = 받는 쪽(0 변수, 1 변수가 가리키는 곳, 2 플래그), 비트 2~3 = 주는 쪽(0 변수, 1 가리키는 곳, 3 즉시값/시스템값), 비트 0~1 = 너비(1 바이트, 0 워드, 3 시스템값). 받는 쪽이 플래그가 아니고 즉시값 워드이면 4바이트, 나머지는 3바이트.0x40~0x7F산술(3바이트):op & 0x23이 0 더하기, 1 빼기, 2 곱하기, 3 나누기, 0x20 OR, 0x21 AND, 0x22 오른쪽 시프트, 0x23 왼쪽 시프트.0x80~0xBF조건 분기: 마지막 u16이 점프 목적지.op & 3이 0 같지 않음, 1 같음, 2 작음, 3 큼일 때 점프.0xAC/0xAD는 플래그가 켜짐/꺼짐이면 점프.
동작 명령 (0xC0 이상)
| 명령 | 길이 | 한글판 처리기 | 뜻 |
|---|---|---|---|
C0 | 2 | 0x37D2F | 대사 창 위치 |
C3/C4/C5 | 1/1/2 | — | 최근 창 닫기 / 모두 닫기 / 창 다시 배치 |
C7 | 1 | — | 보여 주고 키 대기 |
C8 | 3 | 0x37D5F | 대사 출력 |
C9 | 4 | 0x37D73 | 강제 선택지 |
CA | 2 | — | 음악 |
CB | 6 | — | 이벤트 그림(EVENTn.DAT 레코드, x·y) |
CC/CD | 3/2 | 0x37DC5/0x37DCF | 인물 얼굴 / 변수에 든 인물 |
D0/DC | 5 | 0x37DE9 | 기록 참조(그룹, 번호, 필드) |
D1 | 2 | 0x37E3D | 함대 진로 다시 계산 |
D4 | 3 | 0x37E48 | 문자열 불러오기 |
D9 | 3 | 없음 | 영문판의 길드·왕명 형식 대사. 한글판에는 처리기가 없음 |
E2/E3 | 3 | 0x37E53/— | 교역품 싣기 / 거둬 가기 |
E4/E6/E7 | 2 | 0x37E81/0x37E8C/0x37E97 | 소지금 설정 / 더하기 / 빼기 |
E8 | 2 | 0x37EA2 | 결투 |
E9 | 2 | 0x37EAD | 예/아니오 |
EA | 2 | 0x37EB8 | 금괴 수 = 소지금 ÷ 10,000 |
EB | 4 | 0x37EC3 | 난수 |
EC/ED | 2 | 0x37EDA/0x37EE5 | 난수 상태 되돌리기 / 저장 |
EE | 2 | 0x37EF0 | 빈 짐칸 |
F0/F1 | 1 | 0x37EFB/0x37F01 | 하위 섹션 진행 / 섹션 진행 |
F2 | 1 | 0x37D2A | 정지(이번 실행 끝) |
F4 | 2 | 0x37F07 | 엔딩. 번호 = 주인공 0~5, END.EXE로 나감 |
F8 | 1 | 0x37F1F | 건물에서 내보내기 / 예정된 해전 취소 |
F9 | 3 | 0x37F28 | 건조 예정 배 만들기(배 종류) |
FA | 4 | 0x37F3D | 배 취역 |
FB | 2 | 0x37F50 | 동료 합류 |
FC | 3 | 0x37F5B | 의미 미상(영문판 연구도 미상) |
FE | 3 | 0x37F72 | 점프 |
FF | 1 | 0x37F7F | 아무것도 안 함 |
기록 그룹 (D0/DC가 가리키는 세이브 자료)
확인됨[직접] (KO 0x36A2E 분기표의 주소·크기를 직접 읽음). 세이브 슬롯 위치 = DS − 0xC30입니다. 전체 배치는 data-formats.md에 있습니다.
| 그룹 | 내용 | 기록 크기 | DS 주소 |
|---|---|---|---|
| 00 | 국가 기록 7개 | 32 | 0x1106 |
| 01 | 주인공 명성·우호도 6명 | 14 | 0x11E6 |
| 02 | 소지금 | 4 | 0x123A |
| 03 | 항해사 120명 | 50 | 0x1242 |
| 04 | 수집가·지도 제작자 | 21 | 0x29B2 |
| 05 | 주점 아가씨 | 17 | 0x2B56 |
| 06 | 이번 항해 상태 | — | 0x2D54 |
| 07 | 함대의 배 칸(지금 함대 / 번호 10 이상은 따로) | 9 | [0xC6DA]+0x2B / 0x5666 |
| 08 | 함대 70개 | 133 (0x85) | 0x2DB2 |
| 09 | 배 보급 기록 | 30 | 0x5210 |
| 0A | 배 개체 | 25 | 0x57CE |
| 0B | 배 종류 능력 | 12 | 0x5E28 |
| 0C | 항구 표시 기록 | 20 | 0x5F54 |
| 0D | 항구 메타 기록 | 37 | 0x697C |
| 0E | 시장 13개 | 128 | 0x77F0 |
| 0F | 미상 | 8 | 0x7E70 |
| 10 | 발견물 98곳 | 7 | 0x7E88 |
| 11 | 도구 100개 | 26 | 0x8144 |
| 12 | 발견물 설명(COLONY.DAT) | 218 | 파일 |
| 13 | 교역품 이름 포인터 | 2 | 0xC0B6 |
4. 시나리오 난수
확인됨[대조] (KO 0x36F68, 씨앗 함수 KO 0x38165가 영문판과 같은 구조)
씨앗 = (연 바이트 × 월 바이트 × (항해 레벨 + 항해 경험) + 틱 + 일 바이트) << 8
상태 = 상태 × 0x5D588B65 + 1 (32비트)
값 = (상태 >> 8) & 0x7FFF
결과 = 값 mod n (EB 명령)
ED로 상태를 변수에 저장하고 EC로 되돌릴 수 있습니다. 길드는 의뢰 세 줄마다 상태를 저장해 두므로, 같은 줄을 다시 고르면 같은 의뢰가 나옵니다.
일반 난수(KO 0xA186)와는 별개입니다(misc.md).
5. 작위
작위 이름
확인됨[직접] (DATA1.LZW 16번·17번 엔트리, 각 81바이트 = 9칸 × 9바이트, CP949)
| 작위 번호 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| 16번 엔트리 | 기사 | 준훈작 | 훈작 | 준남작 | 남작 | 자작 | 백작 | 후작 | 공작 |
| 17번 엔트리 | 사족 | 감찰관 | 군수 | 지사 | 영주 | 대영주 | 군후 | 재상 | 대재상 |
0은 작위 없음입니다. 17번 엔트리는 영문판 연구에 따르면 오스만(알) 쪽 이름입니다(외부자료).
작위 번호는 명성 기록 +0x0D 바이트입니다(확인됨[직접]: 아래 점술가 코드가 이 바이트로 표를 찾음).
승급 조건: 왕명 자격
확인됨[직접] (SNR0 0x0066~0x00E1, 한글판 바이트코드)
길드·왕궁에 들어갈 때 공통 시나리오가 다음을 계산해 플래그 16(왕명 자격)을 켭니다.
최고 명성 = max(교역 명성, 해적 명성, 모험 명성) (같으면 모험 > 해적 > 교역 순으로 뒤의 것)
필요 명성 = 500 × (작위 + 1)²
자격 = 작위 ≤ 8 그리고 최고 명성 ≥ 필요 명성 그리고 소속 ≠ 해적(국적 하위 3비트 6)
| 지금 작위 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| 왕명 자격에 필요한 최고 명성 | 500 | 2,000 | 4,500 | 8,000 | 12,500 | 18,000 | 24,500 | 32,000 | 40,500 |
- 자격이 생기면 고국 왕궁에서 왕명을 받고, 그 왕명을 끝내면 작위가 1 오릅니다(확인됨[대조]:
SNR0섹션 6~12의 완료 블록. 영문판 연구가 해석한 바이트코드와 한글판이 같음). - 왕명을 거절하거나 중도 포기하면 명성 세 가지가 모두 절반이 됩니다(확인됨[대조]).
- 어느 명성으로 자격을 얻었는지(위 "최고 명성"의 종류)가 왕명 종류 선택에 쓰입니다(
SNR0 0x00E8~0x018D, 세부 분기는 확인됨[대조]).
점술가가 말하는 "다음 작위까지 필요한 명성"
확인됨[직접] (KO 0x31FFD~0x32049, 표 DS:0xB8AE = 파일 0x4855E)
점술가는 세 명성 중 가장 큰 값을 표[작위 + 1]과 비교해, 모자라면 그 차이를 공통 대사 547 "마지막으로, 당신이 한 단계 위의 작위를 얻기 위해선, %d 정도의 명성이 필요하겠지요."로 알려 줍니다. 해적 소속이면 이 줄을 건너뜁니다.
표(u16 × 10): 0, 500, 2,000, 4,500, 8,000, 12,500, 18,000, 24,500, 32,000, 40,000.
마지막 값만 공식(500 × 9² = 40,500)과 500 다릅니다. 그래서 후작(8)의 최고 명성이 40,000~40,499이면 점술가는 더 필요 없다고 하지만 왕명 자격은 아직 없습니다(두 코드를 직접 읽은 결과이며, 게임에서 시험하지는 않았습니다).
6. 길드 의뢰 (SNR0 섹션 0~5)
| 섹션 | 의뢰 | 한글판 위치 | 실행되는 곳 |
|---|---|---|---|
| 0 | 대기 상태, 의뢰·왕명 고르기 | 0x0048~0x09B8 | 길드, 왕궁, 아무 건물 |
| 1 | 화물 운송 | 0x09B8~0x0C50 | 시장 |
| 2 | 물품 구입 | 0x0C50~0x0E61 | 시장 |
| 3 | 편지 전달 | 0x0E61~0x0FC3 | 길드 |
| 4 | 해적 토벌 | 0x0FC3~0x1140 | 길드, 해전 직전·직후 |
| 5 | 빚 받아 오기 | 0x1140~0x13F5 | 베네치아 은행 |
확인됨[직접] (SNR0 0x0195~0x01EB):
- 길드에 들어가면 의뢰 세 줄을 준비합니다. 항구 번호 41 이하(유럽)이면 줄마다
random(5)로 0 화물 운송, 1 물품 구입, 2 편지 전달, 3 해적 토벌, 4 빚 받아 오기 중 하나(중복 가능). 항구 번호 42 이상이면 세 줄 모두 편지 전달. - 줄마다 난수 상태를 변수 3·4·5에 저장합니다(
ED 03/ED 04/ED 05). - 작위 단계 =
min(작위, 6) ÷ 3: 0 작위 없음~훈작, 1 준남작~자작, 2 백작 이상. 이 단계가 의뢰 거리와 보수 크기를 정합니다. - 왕명 자격(플래그 16)이 있으면 의뢰 줄을 새로 만들지 않고 왕명 쪽으로 갑니다.
확인됨[대조] (영문판 연구, 바이트코드 논리가 한글판과 같음):
- 목적 항구는 의뢰 받은 항구 p에서 두 번 건너뜁니다. A = p ± d1, B = A ± d2(방향은
random(2), 범위 끝에서는 강제).
| 작위 단계 | d1 | d2 |
| --- | --- | --- |
| 0 | 1~5 | 1~20 |
| 1 | 6~10 | 16~35 |
| 2 | 16~20 | 31~50 | - 기한은 "날짜 일련번호"
(1501년부터 지난 해 × 12 + 월 + 허용 개월) × 30 + 일로 저장하고,기한 < 오늘일 때만 늦은 것입니다. - 명성 벌칙: 진행 중 포기 →
floor(floor(명성/10) × 9/10) × 10, 기한 넘김 →× 8/10, 빚 받아 오기에서 돈을 넘기지 않음 →× 5/10. - 완료 보상은
min(명성 + 보상, 50,000).
7. 왕명 (SNR0 섹션 6~12)
섹션 경로는 확인됨[직접], 내용 해석은 확인됨[대조] 입니다.
| 섹션 | 왕명 | 한글판 위치 |
|---|---|---|
| 6 | 교역 시험: 지정 교역품 바치기(작위 단계별 목표 1,000 / 5,000 / 20,000을 기준가로 나눈 수량, 최대 250) | 0x13F5~0x172C |
| 7 | 다른 나라 국왕에게 문서 전달(성공 시 두 나라 관계 +5) | 0x172C~0x1B4E |
| 8 | 조약 교섭(관계 +10) | 0x1B4E~0x1F70 |
| 9 | 동맹항 늘리기 | 0x1F70~0x2289 |
| 10 | 국왕을 위해 발견 | 0x2289~0x2549 |
| 11 | 특별 탐색(보물) | 0x2549~0x2855 |
| 12 | 적국 함대·해적 격파 | 0x2855~0x2BD8 |
- 모든 왕명은 고국 왕궁(
0xA305)에서 시작해 알현(0xA315)에서 진행·보고합니다. 기한은 없습니다. - 완료하면 작위 +1, 섹션 끝의
F1로 공통 시나리오가 대기 상태(섹션 0)로 돌아가고 플래그 16~18이 지워집니다. - 모국에서 추방되거나 작위를 박탈당하면 공통 시나리오도 대기 상태로 초기화됩니다(relations.md).
8. 주인공별 이야기
아래 표의 명성 조건·보상·동료·배·엔딩은 확인됨[직접] 입니다(한글판 SNRn.DAT를 직접 디스어셈블해 뽑음).
각 사건의 줄거리와 부가 조건(소속 검사 등)은 영문판 연구의 해석이며 확인됨[대조] 입니다(한글판 바이트코드 논리가 영문판과 같음을 비교, 차이는 10절).
한글판은 인물 이름이 영문판과 다릅니다(조안 페레로 = 영문 João Franco, 옷토 스피노라 = Otto Baynes, 에르네스트 로페스 = Ernst von Bohr, 알 베자스 = Ali Vezas).
명성 "조건 X"는 그 명성이 X 이상이어야 다음 사건이 열린다는 뜻입니다(같은 값이면 통과). 이미 명성이 높아도 지금 섹션의 사건을 건너뛰지는 못합니다.
조안 페레로 (SNR1, 모험 명성)
| 섹션 | 조건 | 일어나는 곳 | 내용(한글판 위치) |
|---|---|---|---|
| 0 | — | 리스본 집(0x0007)·주점·교회, 항해 3일째 | 배 종류 5 카라벨 라티나 건조 예정(0x025C), 동료 69 로코 알렘켈(0x028C), 교회에서 동료 70 엔리코 마리오네(0x0554), 항해 3일째 밀항자 동료 71 도밍고 마나나(0x08F8) |
| 1 | 모험 2,000 | 아무 항구의 선착장(0x099F) | 결투 상대 60 안토니오 칸(0x0C5E, 0x0FB4), 리스본 집에서 해적 명성 +1,000(상한 50,000, 0x0ECE) |
| 2 | 모험 8,000 | 아무 건물(0x136A) | 섹션 끝은 2번 항(이스탄불) 여관(0x1C9C) |
| 3 | 모험 16,000 | 항해 5일째(0x1D79) 후 아무 건물(0x1DFE) | 74번 항 맛사와 특수 건물에서 모험 명성 +5,000(0x2AB3) |
| 4 | 모험 30,000 | 아무 항구의 주점(0x2C32) | 99번 항 나가사키 선착장에서 모험 명성 +1,000(0x2DFF) |
| 5 | 모험 40,000 | 아무 건물(0x2EC7) | 주점에서 결투 상대 60(0x3270), 해전 직전 사건 둘, 리스본 집에서 엔딩 0(0x3C2C) |
카탈리나 에란초 (SNR2, 해적 명성)
| 섹션 | 조건 | 내용(한글판 위치) |
|---|---|---|
| 0 | — | 세빌리아(1번 항) 선착장에서 동료 72 프랑코 사누드, 배 종류 10 갤리온(0x0692·0x069C) |
| 1 | 해적 1 | 해전 직후 동료 73 안드레아 기지(0x0ABD) |
| 2 | 해적 1,500, 주점에서 2,000 | 0x0B6D, 0x0C7A |
| 3 | 해적 2,000 | 0x0CDD, 조선소·선착장에서 섹션 끝 |
| 4 | 해적 8,000 | 0x10E4 |
| 5 | — | 상대 60(안토니오 칸)과의 해전 직후 섹션 끝(0x1DBA) |
| 6 | 해적 15,000 | 0x1E16, 맛사와 특수 건물에서 섹션 끝 |
| 7 | 해적 30,000(항해 5일째) | 0x24BE, 주점 결투 상대 60(0x2910), 해전 직후 엔딩 1(0x3085) |
영문판 연구에 따르면 주점의 2,000 비교 하나를 빼고 모두 해적 소속(국적 하위 4비트 6)도 요구합니다(확인됨[대조]).
옷토 스피노라 (SNR3, 해적 명성)
| 섹션 | 조건 | 내용(한글판 위치) |
|---|---|---|
| 0 | — | 런던(29번 항) 왕궁·주점. 주점에서 결투 상대 75 마슈 로이(0x0236) 후 동료 75(0x02CF), 조선소에서 배 종류 5(0x039C), 세빌리아 선착장에서 배 종류 10 갤리온(0x07A6) |
| 1 | — | 해전 직후 해적 명성 +500(0x0A15) |
| 2 | 해적 5,000(주점) | 0x0A52, 주점에서 +500 |
| 3 | 런던 주점에서 15,000, 다른 곳 20,000 | 0x0FE2·0x1216, 금괴 확인과 소지금 차감(0x109A~0x11C1) |
| 4 | 해적 30,000(선착장) | 해전 직후 +1,000 두 번(0x15B4, 0x16BF) |
| 5 | 해적 30,000(선착장) | 런던 왕궁에서 엔딩 2(0x2033) |
영문판 연구에 따르면 섹션 2 이후 비교는 잉글랜드 소속(국적 하위 4비트 3)도 요구합니다(확인됨[대조]).
에르네스트 로페스 (SNR4, 모험 명성)
| 섹션 | 조건 | 내용(한글판 위치) |
|---|---|---|
| 0 | — | 암스테르담(33번 항) 특수 건물에서 소지금 설정, 동료 77 로이드 스탓텐, 배 종류 5(0x0102~0x018C) |
| 1 | 모험 1,000(암스테르담 선착장) | 0x0335 |
| 2 | 모험 5,000(아무 선착장) | 0x05A9 |
| 3 | 모험 20,000(아무 선착장) | 0x0731 |
| 4 | 모험 40,000(아무 선착장) | 0x090E, 97번 항 장안의 특수 건물에서 엔딩 3(0x0F57) |
해전·결투·항해 일수 사건이 하나도 없습니다(한글판에서도 E8 명령과 A0·A1·A2 경로가 없음, 확인됨[직접]).
피에트로 콘티 (SNR5, 모험 명성)
| 섹션 | 조건 | 내용(한글판 위치) |
|---|---|---|
| 0 | — | 제노바(8번 항) 주점에서 동료 76 카미로 스테파노, 배 종류 5(0x00F8·0x0102), 리스본 특수 건물에서 소지금 설정 |
| 1 | 금괴(소지금 ÷ 10,000) 확인 | 아무 주점에서 금괴 읽기와 소지금 차감(0x050E~0x05F7, 영문 연구: 메달의 지도 구입), 선착장에서 모험 +1,000(0x0790) |
| 2 | 모험 10,000(리스본 특수 건물) | 맛사와 주점에서 모험 +5,000(0x0D73) |
| 3 | 모험 40,000(아무 선착장) | 리스본 특수 건물에서 엔딩 4(0x14F6) |
에르네스트처럼 결투·해전·항해 일수 사건이 없습니다(확인됨[직접]).
알 베자스 (SNR6, 교역 명성)
| 섹션 | 조건 | 내용(한글판 위치) |
|---|---|---|
| 0 | — | 이스탄불(2번 항) 조선소에서 동료 78 자한 사림, 배 종류 5(0x01EE·0x01F8). 주점·선착장·은행·여관에서 돈을 받음 |
| 1 | 네 곳에 빚 갚기 | 이스탄불 주점·선착장·은행·조선소에서 금괴 확인 후 차감, 갚을 때마다 교역 명성 +500(0x0804, 0x08F8, 0x09EE, 0x0B10, 0x0C28), 알현에서 섹션 끝(0x0F30) |
| 2 | 금괴 확인(영문 연구: 100개 = 1,000,000) | 76번 항 바스라 주점에서 교역 +1,000(0x187D) |
| 3 | 영문 연구: 오스만 지배 항구 30곳 | 베네치아(13번) 은행에서 차감 후 교역 +1,000(0x2075), 98번 항 사카이 주점에서 금 지급, 교역 명성을 50,000으로 설정(0x21FE) |
| 4 | — | 이스탄불 알현에서 금 지급과 교역 +1,000(0x242D) |
| 5 | 교역 40,000(주점·선착장) | 0x2622·0x269D, 이스탄불 주점에서 엔딩 5(0x2D2A) |
9. 엔딩과 EVENTn.DAT
- 엔딩은
F4 n하나뿐이며 n = 주인공 번호 0~5입니다. 한글판 여섯 시나리오의F4는 위 표의 여섯 곳뿐입니다(확인됨[직접]). 처리기(KO 0x37F07)는 화면을 어둡게 하고END.EXE로 넘어가므로 뒤의 명령은 실행되지 않습니다(확인됨[대조]). EVENTn.DAT는 이벤트 그림 묶음입니다. 앞에 u32 빅엔디언 오프셋 표가 있고, 레코드는 u16 너비·높이로 시작하는GRAPH형식 그림입니다. 레코드 수:EVENT01,EVENT15,EVENT26,EVENT35,EVENT45,EVENT56,EVENT64. 모두 192 × 144입니다(확인됨[직접]). 시나리오의CB명령이 지금 주인공 번호의 파일에서 레코드를 골라 그립니다(확인됨[대조]).
10. 한글판과 영문판의 시나리오 차이
확인됨[직접] (대사·창 배치 명령을 빼고 논리 명령만 비교)
- 차이 323곳 거의 모두가 기록 필드 위치 이동입니다(항해사 기록 50바이트, 수집가 기록 21바이트 등 구조체 크기가 다름).
SNR0섹션 1~5와SNR3섹션 5: 영문판의 변수0x0C(성별에 따른 대명사) 분기가 한글판에는 없습니다.SNR0섹션 9: 영문판0x23F6의 블록 하나(DC 0A 02 00 07 … F1)가 한글판에 없습니다.SNR1섹션 1·4: 동료를 내보낼 때 함대·항구 바이트에 영문판은0xFE, 한글판은0xFF를 씁니다.SNR5섹션 0: 영문판에F2두 개가 더 있고 경로 키가 일부 다릅니다.SNR6섹션 5: 영문판의 플래그 검사(AC 00/AD 00)가 한글판에 없습니다.D9(형식 대사) 명령은 한글판 바이트코드에 나오지 않고 해석기에도 없습니다.
확인하지 못한 것
FC명령의 의미, 기록 그룹 0F(8바이트)의 내용.- 왕명 종류 선택(
SNR0 0x00E8~0x018D)의 날짜 의존성: 바이트코드는 영문판과 같지만 한글판에서 따로 풀어 쓰지 않았습니다. - 줄거리 해석(누가 무엇을 말하는지)은 영문판 연구를 따랐고, 한글 대사 전문을 사건별로 대조하지는 않았습니다.
- 게임 실행으로 확인하지 않았습니다.