Вот прикрепил несколько ромов для сравнения. В DX и оригинале адреса нахождения текста находятся по адресу 0x300000, там будет первое смещение - 0x800 байт. Смещения меньше первого смещения я игнорировал и таким образом находил необходимый текст. Конец строки считается 0xFF, но также встречал какие-то непонятные значения, которые старался не трогать.
Таблица символов у меня получилась следующей:
13=\n
33=B
34=C
35=D
36=E
37=F
38=G
39=H
40=I
41=J
42=K
43=L
44=M
45=N
46=O
47=P
48=Q
49=R
50=S
51=T
52=U
53=V
54=W
55=X
56=Y
57=Z
58=A
59=é
60=à
61=ç
62=ê
63=è
64=a
65=b
66=c
67=d
68=e
69=f
70=g
71=h
72=i
73=j
74=k
75=l
76=m
77=n
78=o
79=p
81=r
82=s
83=t
84=u
85=v
86=w
87=x
88=y
89=z
90=Ç
91=«
92=»
93=ù
94=ô
95=â
96=0
97=1
98=2
99=3
100=4
101=5
102=6
103=7
104=8
105=9
106=î
107=
108=
109=:
110=æ
111=ï
112=
113=
114=?
115=!
116=
117=
118=.
119=,
120='
121=-
122="
123=*
124=(
125=)
126=/
127= 127 символ - это пробел.
Для оригинальной версии попробовал переместить шрифт из перевода группы Шедевр (прикрепил ром с русифицированным шрифтом).
Вот такая получилась таблица из рома от группы Шедевр:
13=\n
32=А
33=В
34=С
35=D
36=Е
37=F
38=G
39=Н
40=I
41=J
42=К
43=L
44=М
45=N
46=О
47=Р
48=Q
49=R
50=S
51=Т
52=U
53=V
54=W
55=Х
56=Y
57=Z
58=Ю
59=Я
60=ь
61=ъ
62=ы
63=э
64=а
65=б
66=с
67=в
68=е
69=ж
70=з
71=и
72=й
73=п
74=к
75=л
76=м
77=н
78=о
79=р
80=д
81=ф
82=г
83=т
84=ц
85=ч
86=ш
87=х
88=у
89=щ
90=я
91=,
92=.
93=ю
94=..
95=
96=0
97=1
98=2
99=3
100=4
101=5
102=6
103=7
104=8
105=9
106=-
107=Б
108=Г
109=Д
110=Ж
111=З
112=
113=
114=
115=?
116=!
117=
118=Л
119=П
120=Ч
121=Ш
122=Щ
123=Ц
124=И
125=Ф
126=У
127=Э
Я не все символы внёс в таблицу, поэтому некоторые коды считаются как пробел.
Вот такой получилась таблица для адаптации перевода:
33=В
34=С
35=D
36=Е
37=F
38=G
39=Н
40=I
41=J
42=К
43=Л
44=М
45=N
46=О
47=Р
48=Q
49=R
50=S
51=Т
52=U
53=V
54=W
55=Х
56=Y
57=Z
58=А
59=Я
60=ь
61=ъ
62=ы
63=э
64=а
65=б
66=с
67=в
68=е
69=ж
70=з
71=и
72=й
73=п
74=к
75=л
76=м
77=н
78=о
79=р
80=д
81=ф
82=г
83=т
84=ц
85=ч
86=ш
87=х
88=у
89=щ
90=я
91=,
92=.
93=ю
94=Ю
95=
96=0
97=1
98=2
99=3
100=4
101=5
102=6
103=7
104=8
105=9
106=-
107=Б
108=Г
109=Д
110=Ж
111=З
112=
113=
114=?
115=!
116=
117=Л
118=П
119=Ч
120=Ш
121=Щ
122=Ц
123=И
124=Ф
125=У
126=Э
127=
Шрифт в CT оригинал и dx находится по адресу 0x360000 и вроде он там идёт до самого конца или там отдельно идут шрифты для азиатских языков.
По следующим адресам нашёл индексы сжатых строк:
0x38CA - для строки 679 (0x2A7)
0x38DF - для строки 680 (0x2A8)
0x38F4 - для строки 681 (0x2A9)
0x3928 - для строки 682 (0x2AA)
0x3965 - для строки 683 (0x2AB)
0x39C0 - для строки 684 (0x2AC)
0x10360 - для строки 685 (0x2AD)
0x10508 - для строки 686 (0x2AE)
0x3ABF - для строки 687 (0x2AF)
Также нашёл непонятное значение. То ли это смещение, то ли это длина блока, в переведённых ромах данное значение отличается: 0x1A718 - тут отличаются 2-3 байта.