Майже пройшов VC тестуючи паралельно збірку і тільки зараз помітив, що в меню не перекладені всі пункти (бо локалізація Андрюлько не розрахована на фічі рушія reVC)

Тому навчився розкопільовувати .GXT і редагувати у ньому відсутні рядки, у портабельному для старих ігор форматі ASCII замість поширеного сьогодні UTF-8.
Спочатку пробував зробити це засобами wine, утилітою
GXT-compiler, але вона виявилась і не зручною і прозондував crates.io по відповідним ключам, знайшовши
gxter. Ця програма легко збирається, підтримує словники для декодування вибіркових збірок і оскільки шрифт tycoon має іншу мапу, я написав
патч спеціально для перекладу Анрюлько, продублюю поточну версію таблиці сюди:
# Ukrainian translation dictionary to decode Andrulko edition
# https://kuli.com.ua/grand-theft-auto-vice-city#translations
#
# see also latest version:
# https://github.com/oooo-ps/gxter/blob/vc-uk-andrulko/character_tables/vc_uk_andrulko.toml
[decode_table]
# LATIN
75 = 'К' # 'K'
84 = 'Т' # 'T'
89 = 'T' # 'Y'
107 = 'к' # 'k'
116 = 'т' # 't'
121 = 't' # 'y'
# À-Ï, Ò-Ö, Ú-Ü, Ñ-¿
128 = 'Б' # 'À'
129 = 'В' # 'Á'
130 = 'Г' # 'Â'
131 = 'Д' # 'Ä'
132 = 'Ж' # 'Æ'
133 = 'З' # 'Ç'
134 = 'И' # 'È'
135 = 'Й' # 'É'
136 = 'Л' # 'Ê'
137 = 'М' # 'Ë'
138 = 'Н' # 'Ì'
139 = 'П' # 'Í'
140 = 'У' # 'Î'
141 = 'Ф' # 'Ï'
142 = 'Ц' # 'Ò'
143 = 'Ч' # 'Ó'
144 = 'Ш' # 'Ô'
145 = 'Щ' # 'Ö'
147 = 'Ь' # 'Ú'
148 = 'Є' # 'Û'
149 = 'Ю' # 'Ü'
173 = 'Я' # 'Ñ'
# à-ï, ò-ó, ô-ö, ú-ü, ñ
151 = 'б' # 'à'
152 = 'в' # 'á'
153 = 'г' # 'â'
154 = 'д' # 'ä'
155 = 'ж' # 'æ'
156 = 'з' # 'ç'
157 = 'и' # 'è'
158 = 'й' # 'é'
159 = 'л' # 'ê'
160 = 'м' # 'ë'
161 = 'н' # 'ì'
162 = 'п' # 'í'
163 = 'у' # 'î'
164 = 'ф' # 'ï'
165 = 'ц' # 'ò'
166 = 'ч' # 'ó'
167 = 'ш' # 'ô'
168 = 'щ' # 'ö'
170 = 'ь' # 'ú'
171 = 'є' # 'û'
172 = 'ю' # 'ü'
174 = 'я' # 'ñ'
175 = 'ї' # '¿'gxter, на відміну від GXT-compiler, працює зі своїм форматом сорсу в toml, додаю сюди відсутні в Андрюлько рядки для reVC (можна зробити окремий реліз перекладу для цього рушія) з готовим перекладом, які згенерував програмно:
# re3 only patch : begin
FEC_360 = "Кoнтpoлep XBOX 360"
FEC_DS2 = "Дюaлшoк 2"
FEC_DS3 = "Дюaлшoк 3"
FEC_DS4 = "Дюaлшoк 4"
FEC_FRC = "Вiльнa кaмepa"
FEC_IVP = "Iнвepтувaти гeймпaд вepтикaльнo"
FEC_JDE = "Виявлeнo гeймпaд"
FEC_JOD = "Виявити гeймпaд"
FEC_JPR = "Нaтиcнiть будь-яку кнoпку нa гeймпaдi для викopиcтaння у гpi."
FEC_NSW = "Кoнтpoлep NINTENDO SWITCH"
FEC_ONE = "Кoнтpoлep XBOX ONE"
FEC_TYP = "Тип гeмпaду"
FED_AAS = "Aнти-aлiacинг"
FED_BIL = "Бiлiнiйнo"
FED_CLF = "Фiльтp кoльopу"
FED_FIL = "Фiльтpи тeкcтуp"
FED_FLS = "Пoвний eкpaн"
FED_MBL = "Poзмиття pуxу"
FED_MFX = "Eфeкти мaтepiaлiв"
FED_MIP = "Зглaджувaння тeкcтуp"
FED_NEO = "NEO"
FED_PRM = "Кoнтуpнe ocвiтлeння пiшoxoдiв"
FED_RGL = "Вiдблиcки дopoги"
FED_TRL = "Тpилiнiйнo"
FED_VPL = "Вiдoбpaжeння тpaнcпopту"
FED_WLM = "Ocвiтлeння cepeдoвищa"
FEL_JAP = "Япoнcькa"
FEL_POL = "Пoльcькa"
FEL_RUS = "Pociйcькa"
FEM_2PR = "PS2 aльфa тecт"
FEM_AUT = "Aвтoмaтичнo"
FEM_CAR = "Щiльнicть aвтo"
FEM_CSB = "Paмки кaт-cцeн"
FEM_HIG = "Виcoкo"
FEM_ISL = "Викopиcтaння пaм'ятi"
FEM_LOW = "Низькo"
FEM_MED = "Cepeдньo"
FEM_MOB = "Мoбiльний пpиcтpiй"
FEM_NON = "Нeмaє"
FEM_NRM = "Нopмaльнo"
FEM_PED = "Щiльнicть пiшoxoдiв"
FEM_PS2 = "PS2"
FEM_SCF = "Фopмaт eкpaну"
FEM_SIM = "Пpocтo"
FEM_XBX = "XBOX"
FET_AGS = "Нaлaштувaння гeймпaду"
FET_GFX = "Нaлaштувaння гpaфiки"
FET_RMS = "Пoвтopeння мiciї"
FESZ_RM = "Зaнoвo?"
# re3 only patch : end * зверніть увагу: літери a, c, e, p, x та деякі інші - в латиниці
Процес декомпіляції / компіляції виглядає так:
gxter-cli -d ukrainian.gxt -c character_tables/vc_uk_andrulko.toml -o andrulko.toml
gxter-cli andrulko.toml -c character_tables/vc_uk_andrulko.toml -o ukrainian.gxtТепер переклади в збірці
виправлені і джерела включаються в форк. Також
пофіксив знайдені Segmentation fault, пов'язані кросплатформеними todo що летять саме на Linux; а ще
збільшив щільність автівок (CarDensity) і пішоходів (PedDensity) до коефіцієнту 1.0f, бо стандартних 0.6 замало, через що довго думав чому місто таке спустошене і до того ж складно пройти місію "Псих у місті" що у байкерів (ці налаштування є в меню, і тепер їх можна прочитати завдяки фіксу перекладу)
На останок, додаю оновлену копію маніфесту, яка тепер містить ревізії комітів з останніми обновами:
app-id: ps.GTA.VC-Andrulko-SkynetUA
runtime: org.freedesktop.Platform
runtime-version: '25.08'
sdk: org.freedesktop.Sdk
command: ps.GTA.VC-Andrulko-SkynetUA
separate-locales: false
finish-args:
- --device=dri
- --device=input
- --share=ipc
- --socket=pulseaudio
- --socket=wayland
- --socket=x11
modules:
- name: premake5
buildsystem: simple
build-commands:
- |
make -f Bootstrap.mak linux
mkdir -p "${FLATPAK_DEST}/bin"
install "bin/release/premake5" "${FLATPAK_DEST}/bin"
sources:
- type: git
url: rad://z43kgaxLn8Fc2sb7R3VgZZ7ccUe5p
commit: 2ca338a25ed5f6e62d36c9cd70e5f313953c630d #v5.0.0-beta8
- name: glfw
buildsystem: cmake
config-opts:
- -DCMAKE_BUILD_TYPE=Release
- -DBUILD_SHARED_LIBS=ON
- -DGLFW_BUILD_EXAMPLES=OFF
- -DGLFW_BUILD_TESTS=OFF
- -DGLFW_BUILD_DOCS=OFF
sources:
- type: git
url: rad://z3FCk347V5ASZ87ur2sMnmmTp4P9Q
commit: 7b6aead9fb88b3623e3b3725ebb42670cbe4c579 #v3.4
- name: game
buildsystem: simple
build-commands:
- |
mkdir -p "${FLATPAK_DEST}/gamefiles/TEXT"
rm "app/GTA Vice City Trainer (v1.0).exe" "app/gta-vc.exe"
rm "app/models/generic.txd" "app/models/particle.txd"
rm "app/TEXT/american.gxt"
cp -r "app/." "${FLATPAK_DEST}/gamefiles"
sources:
- type: git
url: rad://z22sMx8VdL7YSDaCdbpo5X2TMuZ1z
commit: 5dba0c7c8e921de1485778132b8a67f65c4914aa
- name: dub
buildsystem: simple
build-commands:
- |
cp -r "Audio/." "${FLATPAK_DEST}/gamefiles/Audio/"
sources:
- type: git
url: rad://z2aNJ1EcoPbEaRTxsuVQXaofrEVn2
commit: eeb2c7ea0c9523660b54a30a7f6dc9a876d78158
- name: re3
buildsystem: simple
build-commands:
- |
mkdir -p "${FLATPAK_DEST}/share/applications"
mkdir -p "${FLATPAK_DEST}/share/icons/hicolor/scalable/apps"
install "ps.GTA.VC-Andrulko-SkynetUA.desktop" "${FLATPAK_DEST}/share/applications"
install "ps.GTA.VC-Andrulko-SkynetUA.svg" "${FLATPAK_DEST}/share/icons/hicolor/scalable/apps"
install "ps.GTA.VC-Andrulko-SkynetUA" "${FLATPAK_DEST}/bin"
mv "gamefiles/TEXT/ukrainian/andrulko.gxt" "${FLATPAK_DEST}/gamefiles/TEXT/american.gxt"
rm -r "gamefiles/TEXT"
cp -r "gamefiles/." "${FLATPAK_DEST}/gamefiles"
premake5 --with-librw gmake
cd build
make config=release_linux-amd64-librw_gl3_glfw-oal
install ../bin/linux-amd64-librw_gl3_glfw-oal/Release/reVC "${FLATPAK_DEST}/gamefiles"
rm "${FLATPAK_DEST}/bin/premake5"
sources:
- type: git
url: rad://z3LPm3fELhq1VGX4tWHRbvP2923mT
commit: 535e4ee47479ff0730b976bb32a71d61f1bc26b4
- type: dir
path: ps.GTA.VC-Andrulko-SkynetUAЗавантажити готовий .flatpak можна за посиланнями в першому пості, поточна хеш-сума релізу:
Manifest commit | .flatpak (md5) | .flatpak (sha256)
-----------------------------------------|----------------------------------|-----------------------------------------------------------------
5d9722da13c2d05e3e631dd055a41c86772ee797 | 42e83b213b04524360eb727b27eb1b5c | 9cd6934846ab8280b00bba6ed9766bd5655664936f3c74be87ec5eb521ab5fa4