Skip to content

openMERC 0.2.2

Latest

Choose a tag to compare

@sidreshot sidreshot released this 27 Oct 16:52

openMERC 0.2.2 (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.2-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.2-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.1: unpack 0.2.2 into the same folder and let it replace the openMERC files (openMerc.exe, the DLLs, openmerc\gamex86.dll, openmerc\player.dll, openmerc\zz_openmerc.pak and so on). Settings and saves in openmerc\user are kept.

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.2 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's base\.

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.1

  • Fixed (#3): dropping a weapon (weapondrop, default key X) crashed the game with openMERC's own game module (mode B). The weapon is now dropped, "Dropped a ..." is shown and the weapon can be picked up again. Mode A was not affected.
  • New (#1): Video → Scaling → "Text Size" (100% to 300%, cvar scr_textscale). It enlarges the console, notify and chat lines, centre messages, subtitles and the intro text on top of the automatic scale ("Menu and Text Size", "HUD Size"). Default 100% looks exactly as before.
  • HUD: a weapon name longer than the weapon tray (long localized names) is moved left so it stays on the screen instead of running off the right edge.

Changes of 0.2.1 (install layout, save compatibility check, HD texture scale, NPCs and doors, Linux build): see the 0.2.1 release.

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.dll and the MSVC runtime sit next to openMerc.exe in 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).
  • HUD: a long weapon name (seen with some Russian weapon names) now stays on the screen but sticks out to the left of the weapon tray frame, and part of it can be covered by the ammo counter window.
  • "Text Size": the console and notify/chat lines scale smoothly; centre messages and subtitles use the original bitmap fonts, which are drawn only at whole multiples, so they grow in steps (some neighbouring values look the same).
  • GOG version untested.

Source code: https://github.com/sidreshot/openMERC (tag v0.2.2, commit b54c135; both archives are built from this commit). License: GPL v2 or later; third-party notices in openmerc\THIRD_PARTY.txt and openmerc\licenses\.

SHA256 (openMERC-0.2.2-win32.zip): d6fdef84ca1bafa7b0d2d038ff6feb2e93b725d243fd3ec4f298e983be66d41a
SHA256 (openMERC-0.2.2-linux-x86_64.tar.gz): 880e3186e25007d51934261b89e1204f18c082c70c4ea484f8a3156e0446c8da


Русский

openMERC — открытый движок для Soldier of Fortune (2000). Нужны файлы вашей копии игры; в архиве их нет.

Установка: распакуйте openMERC-0.2.2-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.2-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.1: распакуйте 0.2.2 в ту же папку и разрешите заменить файлы openMERC (openMerc.exe, DLL, openmerc\gamex86.dll, openmerc\player.dll, openmerc\zz_openmerc.pak и т. д.). Настройки и сохранения в openmerc\user остаются.

Обновление с 0.2.0: 0.2.0 жила в отдельной папке openMERC. Скопируйте openMERC\user\save\* в openmerc\user\save\ (и config.cfg, если нужны настройки), затем удалите старую папку openMERC. Не распаковывайте 0.2.2 в старую папку 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.1

  • Исправлено (#3): выбрасывание оружия (weapondrop, по умолчанию клавиша X) роняло игру с собственным модулем игры openMERC (режим B). Теперь оружие выбрасывается, показывается «Бросил ...», и его можно снова подобрать. Режим A это не затрагивало.
  • Новое (#1): Видео → Масштаб → «Размер текста» (100–300%, переменная scr_textscale). Увеличивает консоль, строки сообщений и чата, сообщения в центре экрана, субтитры и текст вступления поверх автоматического масштаба («Размер меню и текста», «Размер HUD»). По умолчанию 100% — всё как раньше.
  • HUD: название оружия длиннее панели оружия (длинные локализованные названия) сдвигается влево и остаётся на экране, а не уходит за правый край.

Изменения 0.2.1 (раскладка установки, проверка совместимости сохранений, масштаб HD-текстур, NPC и двери, сборка под Linux) — см. выпуск 0.2.1.

Известные проблемы

  • Режим B: часть поведения противников и скриптовых сцен ещё не совпадает с оригиналом; если миссия не продвигается, попробуйте режим A (с сохранением режима A или оригинальным).
  • Нет сетевой совместимости с оригинальным мультиплеером SoF 1.07f (только openMERC ↔ openMERC).
  • Паки модов в base\ игры (например, HD-текстуры) загружаются и openMERC.
  • SDL3.dll, OpenAL32.dll, fmt.dll и рантайм MSVC лежат рядом с openMerc.exe в папке игры; другая программа в этой папке со своими копиями этих файлов будет с ними конфликтовать.
  • Сохранение, сделанное из консоли сразу после «Новой игры», может показывать чёрную картинку (само сохранение в порядке).
  • HUD: длинное название оружия (замечено на некоторых русских названиях) теперь остаётся на экране, но выступает влево за рамку панели оружия, и часть его может закрывать окошко счётчика патронов.
  • «Размер текста»: консоль и строки сообщений/чата масштабируются плавно; сообщения в центре экрана и субтитры рисуются оригинальными растровыми шрифтами только в целое число раз, поэтому растут ступенями (соседние значения могут выглядеть одинаково).
  • Версия GOG не проверялась.

Исходный код: https://github.com/sidreshot/openMERC (тег v0.2.2, коммит b54c135; оба архива собраны из этого коммита). Лицензия: GPL v2 или новее; сторонние лицензии — openmerc\THIRD_PARTY.txt и openmerc\licenses\.

SHA256 (openMERC-0.2.2-win32.zip): d6fdef84ca1bafa7b0d2d038ff6feb2e93b725d243fd3ec4f298e983be66d41a
SHA256 (openMERC-0.2.2-linux-x86_64.tar.gz): 880e3186e25007d51934261b89e1204f18c082c70c4ea484f8a3156e0446c8da