Repository navigation
openMERC 0.2.1
openMERC 0.2.1 (Windows 32-bit, Linux x86_64)
English
openMERC is an open-source engine for Soldier of Fortune (2000). It needs the game files from your own copy of the game; none are included.
Install: unpack openMERC-0.2.1-win32.zip straight into your Soldier of Fortune folder (next to SoF.exe) and start openMerc.exe. The archive adds openMerc.exe, openMerc-ded.exe, a few DLLs, openMERC-README.txt and one folder openmerc; it does not contain any file that the game itself has, so nothing of the game is replaced. The game data is only read. Settings, saves and logs go to openmerc\user; nothing is written into base\ or the game's user\. You can also unpack it into a folder inside the game folder (e.g. SoF\openMERC\); the engine then finds the game in the parent folder. To uninstall, delete the files listed in openMERC-README.txt and the openmerc folder.
Linux (x86_64): unpack openMERC-0.2.1-linux-x86_64.tar.gz straight into your Soldier of Fortune folder (the folder with base/, copied from your Windows install) and run ./openMerc or ./openMERC.sh. It adds openMerc, openMerc-ded, openMERC.sh, OMsnd.so, ref_gl3.so, ref_gles3.so and the folder openmerc/ (own modules, pak, bundled SDL3 and OpenAL in openmerc/lib, user data in openmerc/user); no game file is replaced. Needs glibc 2.38 or newer and OpenGL 3.2. Pak names are found in any letter case. Tested only in a virtual display without a real GPU or sound output; real drivers, Wayland and fullscreen are untested. Do not unpack onto a case-insensitive folder (casefold ext4, an SMB share of an NTFS disk): openMerc and openmerc/ would clash there.
Upgrade from 0.2.0: 0.2.0 lived in an openMERC folder of its own. Copy openMERC\user\save\* to openmerc\user\save\ (and config.cfg if you want your settings), then delete the old openMERC folder. If you unpack 0.2.1 into the game folder root, do not unpack it into the old openMERC folder: on Windows openMERC and openmerc are the same folder.
Requirements: Soldier of Fortune 1.07f (retail + patch, tested). GOG version not tested. Windows 10/11, a GPU with OpenGL 3.2. Do not install into Program Files unless that folder is writable for your user.
Modes
- Default (mode B): openMERC's own game and player modules
openmerc\gamex86.dll,openmerc\player.dll. - Mode A: rename those two files (e.g. to
gamex86.dll.off,player.dll.off); openMERC then uses the original modules of your game'sbase\.
Saves
- Saves of the two kinds of game modules are not interchangeable. openMERC now marks its saves (mode A or B) and, in the load menu, shows a save it cannot load greyed out as "Not compatible"; loading it from the console prints why. Before, loading such a save could hang the game.
- Saves made with the original SoF.exe load in mode A (tested with one retail save on tsr1), not in mode B.
- Saves made with openMERC 0.2.0 carry no mark; they are recognised by their content and load as before in mode B.
- An incompatible save can still be deleted with a right click.
Changes since 0.2.0
- New install layout (above): own folder
openmercfor modules,zz_openmerc.pakand user data; no file of the game is replaced or written. - Save compatibility check (above).
- Fixed: with an HD texture pack (e.g.
sofhd2024.pak) walls, floors and doors were stretched (4x); replacement textures now keep the original texture scale (r_retexturing 0restores the old behaviour). This was also the "black area behind an opening door": the closed-door texture stretched. - HD character skins are uploaded up to 2048 pixels (
ghl_om_maxtexsize, before: 256). - Mode B: NPCs that got stuck pushing against a closed door now open it (arm1: Sam and the guard near the toilets).
- The renderer interface changed: use the
ref_*.dllfiles of this release together with itsopenMerc.exe. - Linux build (new): 64-bit fixes, start from the binary's folder, clean exit on SIGTERM, console history kept in
openmerc/user. - From the main source line: paks are found in any letter case, a 64-bit save/inventory fix and a sound precache overflow fix (the last two mainly matter for the Linux build).
Known issues
- Mode B: some enemy behaviour and scripted sequences are not yet identical to the original game; if a mission does not progress, try mode A (with a mode-A or original save).
- Not network-compatible with the original SoF 1.07f multiplayer (openMERC ↔ openMERC only).
- Mod paks in the game's
base\(e.g. HD texture packs) are also loaded by openMERC. - The DLLs
SDL3.dll,OpenAL32.dll,fmt.dlland the MSVC runtime sit next toopenMerc.exein the game folder; another program installed there with its own copies of these files would clash. - A save made right after "New game" from the console can show a black preview picture (the save itself is fine).
- GOG version untested.
Source code: https://github.com/sidreshot/openMERC (tag v0.2.1, commit 76f1258; the Windows zip is built from 1e10ac9, the last commit only changes Linux). License: GPL v2 or later; third-party notices in openmerc\THIRD_PARTY.txt and openmerc\licenses\.
SHA256 (openMERC-0.2.1-win32.zip): ea81dc5907c86f8f63030e755aa6fc0b7f1c72798bcbfd3144629a4eabe99e6c
SHA256 (openMERC-0.2.1-linux-x86_64.tar.gz): dc92184e9e3aa71b02a868a82afef259fcca9d8344bc3d580130d7c66c4e7417
Русский
openMERC — открытый движок для Soldier of Fortune (2000). Нужны файлы вашей копии игры; в архиве их нет.
Установка: распакуйте openMERC-0.2.1-win32.zip прямо в папку Soldier of Fortune (рядом с SoF.exe) и запустите openMerc.exe. Архив добавляет openMerc.exe, openMerc-ded.exe, несколько DLL, openMERC-README.txt и одну папку openmerc; в нём нет ни одного файла, который есть у самой игры, поэтому ничего не заменяется. Данные игры только читаются. Настройки, сохранения и логи пишутся в openmerc\user; в base\ и в user\ игры ничего не пишется. Можно распаковать и в папку внутри папки игры (например, SoF\openMERC\) — тогда движок найдёт игру в родительской папке. Удаление — удалить файлы из списка в openMERC-README.txt и папку openmerc.
Linux (x86_64): распакуйте openMERC-0.2.1-linux-x86_64.tar.gz прямо в папку Soldier of Fortune (папка с base/, скопированная из Windows-установки) и запустите ./openMerc или ./openMERC.sh. Архив добавляет openMerc, openMerc-ded, openMERC.sh, OMsnd.so, ref_gl3.so, ref_gles3.so и папку openmerc/ (свои модули, pak, SDL3 и OpenAL в openmerc/lib, пользовательские данные в openmerc/user); файлы игры не заменяются. Нужны glibc 2.38 или новее и OpenGL 3.2. Pak-файлы находятся в любом регистре имени. Проверено только на виртуальном экране без настоящей видеокарты и звука; реальные драйверы, Wayland и полноэкранный режим не проверялись. Не распаковывайте в папку без учёта регистра (casefold ext4, SMB-шара с NTFS): там openMerc и openmerc/ столкнутся.
Обновление с 0.2.0: 0.2.0 жила в отдельной папке openMERC. Скопируйте openMERC\user\save\* в openmerc\user\save\ (и config.cfg, если нужны настройки), затем удалите старую папку openMERC. Не распаковывайте 0.2.1 в старую папку openMERC, если ставите в корень игры: в Windows openMERC и openmerc — одна и та же папка.
Требования: Soldier of Fortune 1.07f (диск + патч, проверено). Версия GOG не проверялась. Windows 10/11, видеокарта с OpenGL 3.2. Не ставьте в Program Files, если у пользователя нет прав на запись в эту папку.
Режимы
- По умолчанию (режим B): собственные модули openMERC
openmerc\gamex86.dll,openmerc\player.dll. - Режим A: переименуйте эти два файла (например, в
gamex86.dll.off,player.dll.off) — openMERC возьмёт оригинальные модули изbase\игры.
Сохранения
- Сохранения двух видов модулей не взаимозаменяемы. openMERC теперь помечает свои сохранения (режим A или B), а в меню загрузки показывает сохранение, которое не может загрузить, серым с надписью «Несовместимо»; при загрузке из консоли пишет причину. Раньше загрузка такого сохранения могла подвесить игру.
- Сохранения оригинального SoF.exe загружаются в режиме A (проверено на одном сохранении tsr1), в режиме B — нет.
- Сохранения openMERC 0.2.0 не помечены; они распознаются по содержимому и в режиме B загружаются как раньше.
- Несовместимое сохранение можно удалить правым щелчком.
Изменения с 0.2.0
- Новая раскладка установки (см. выше): своя папка
openmercдля модулей,zz_openmerc.pakи пользовательских данных; файлы игры не заменяются и не пишутся. - Проверка совместимости сохранений (см. выше).
- Исправлено: с пакетом HD-текстур (например,
sofhd2024.pak) стены, пол и двери растягивались (в 4 раза); заменённые текстуры теперь сохраняют исходный масштаб (r_retexturing 0— старое поведение). Это же было «чёрной областью за открывающейся дверью»: растянутая текстура закрытой двери. - HD-скины персонажей загружаются до 2048 пикселей (
ghl_om_maxtexsize, раньше 256). - Режим B: NPC, упиравшиеся в закрытую дверь, теперь её открывают (arm1: Сэм и охранник у туалетов).
- Интерфейс рендера изменён: используйте
ref_*.dllэтого выпуска вместе с егоopenMerc.exe. - Сборка под Linux (новое): 64-битные исправления, запуск из папки бинарника, корректный выход по SIGTERM, история консоли в
openmerc/user. - Из основной ветки исходников: pak-файлы находятся в любом регистре имени, исправления 64-битных сохранений/инвентаря и переполнения прекэша звуков (последние два важны в основном для Linux-сборки).
Известные проблемы
- Режим B: часть поведения противников и скриптовых сцен ещё не совпадает с оригиналом; если миссия не продвигается, попробуйте режим A (с сохранением режима A или оригинальным).
- Нет сетевой совместимости с оригинальным мультиплеером SoF 1.07f (только openMERC ↔ openMERC).
- Паки модов в
base\игры (например, HD-текстуры) загружаются и openMERC. SDL3.dll,OpenAL32.dll,fmt.dllи рантайм MSVC лежат рядом сopenMerc.exeв папке игры; другая программа в этой папке со своими копиями этих файлов будет с ними конфликтовать.- Сохранение, сделанное из консоли сразу после «Новой игры», может показывать чёрную картинку (само сохранение в порядке).
- Версия GOG не проверялась.
Исходный код: https://github.com/sidreshot/openMERC (тег v0.2.1, коммит 76f1258; Windows-архив собран из 1e10ac9, последний коммит меняет только Linux). Лицензия: GPL v2 или новее; сторонние лицензии — openmerc\THIRD_PARTY.txt и openmerc\licenses\.
SHA256 (openMERC-0.2.1-win32.zip): ea81dc5907c86f8f63030e755aa6fc0b7f1c72798bcbfd3144629a4eabe99e6c
SHA256 (openMERC-0.2.1-linux-x86_64.tar.gz): dc92184e9e3aa71b02a868a82afef259fcca9d8344bc3d580130d7c66c4e7417