Skip to content
PORTSNATIVE.
HomeCatalog
Web GamesEmulatorsToolsNews
PORTSNATIVE.

A catalog for discovering ports and related projects. We link to official sources and do not host original game files.

ExploreCatalogMy list
InformationAbout usSuggest a portSupportDonationsLegal notice
© 2026 PortsNative
Back to catalog
Battlefield: Bad Company
PORTSNATIVE

Battlefield: Bad Company

NATIVE PORTSHOOTER / ACTIONWINDOWSALPHA

Battlefield: Bad Company

TechnologyStatic recompilation (native C/C++)

Available forWindows

View official project

About the project

Battlefield: Bad Company es un videojuego de acción en primera persona desarrollado por EA Digital Illusions CE y distribuido por Electronic Arts. Bad Company es el primer juego de la serie Battlefield desarrollado para Xbox 360 y PlayStation 3. Fue lanzado en Norteamérica el 23 de junio de 2008, seguido de un lanzamiento en Europa el 26 de junio. El juego fue insinuado justo antes del lanzamiento de Battlefield 2, y anunciado dieciséis meses más tarde. Una secuela, Battlefield: Bad Company 2 fue lanzada para PlayStation 3, Xbox 360 y Windows.

Official project information

Author's original READMEOpen on GitHub ↗

Battlefield: Bad Company — Статическая ПК-рекомпиляция

Проект статической рекомпиляции культового консольного шутера Battlefield: Bad Company (2008) с архитектуры Xbox 360 (PowerPC) на нативную архитектуру ПК x86-64 / C++23 на базе ReXGlue SDK.


🎮 О проекте

  • Игра: Battlefield: Bad Company (USA)
  • Разработчик: EA Digital Illusions CE (DICE)
  • Издатель: Electronic Arts
  • Движок: Frostbite Engine 1.0 (дебют технологии разрушаемости Destruction 1.0)
  • Платформа оригинала: Xbox 360 / PlayStation 3 (консольный эксклюзив, никогда официально не выходивший на ПК)
  • Title ID: 454107F9
  • Версия исполняемого файла: default.xex (май 2008)

⚙️ Архитектура и технические особенности

  1. Рекомпиляция PowerPC в C++23:

    • 367 сгенерированных модулей C++ (generated/default/)
    • Обработка неразрешенных переходов (indirect calls): 0x826F3AC8, 0x82573640, 0x82936828.
  2. Frostbite 1.0 Memory Subsystem:

    • Прекоммит системных пулов и физических алиасов Xbox 360:
      • 0x00000000 (1 ГБ)
      • 0x40000000 (1 ГБ)
      • 0x80000000 (512 МБ)
      • 0xA0000000 (512 МБ)
      • 0xC0000000 (512 МБ)
      • 0xE0000000 (~510 МБ)
    • Обход W^X (Write XOR Execute): автоматическая итерация VirtualQuery и снятие ограничений (PAGE_EXECUTE_READWRITE) для кода и данных (0x82000000–0x83000000).
  3. Графический конвейер (Direct3D 12):

    • ROV (Rasterizer-Ordered Views) для корректной эмуляции блендинга eDRAM, освещения и HDR Frostbite.
    • readback_resolve = "fast" и host_present_from_non_ui_thread = true для предотвращения микрофризов при чтении буферов адаптации яркости процессором.
    • Многопоточная компиляция конвейеров шейдеров (d3d12_pipeline_creation_threads = -1).
  4. Аутентичность и физика (Ретро-гейминг):

    • Частота кадров: по умолчанию зафиксирована на 30 FPS (badco_fps_60 = false) для предотвращения рассинхронизации физики разрушений и скриптов DICE. При желании доступен патч 60 FPS в settings/hardware.toml.
    • Язык и озвучка: оригинальная консольная версия (английский интерфейс/диалоги отряда B-Company, аутентичные русские реплики противников в бою).

🛠️ Сборка в Visual Studio

ВАЖНО: Компиляция запускается исключительно пользователем внутри Visual Studio во избежание блокировок и конфликтов сборщика.

  1. Откройте папку C:\Recompiles\Bad Company в Visual Studio 2022 (Файл -> Открыть -> Папка).
  2. Выберите конфигурацию пресета local-win-relwithdebinfo (или local-win-release).
  3. Дождитесь автоматической генерации кэша CMake.
  4. Нажмите F7 (или Ctrl + Shift + B) для сборки решения.
  5. Исполняемый файл появится в out/build/local-win-relwithdebinfo/badcompanyrecomp.exe.

🚀 Запуск и отладка

  • Запуск без отладчика: Ctrl + F5.
  • Все настройки графики, окна и рендеринга находятся в файле settings/hardware.toml.
  • Настройки контроллера и мыши/клавиатуры: settings/mapping.toml.
  • Логи выполнения и stub sweep сохраняются в папке logs/.

🚦 Текущий статус проекта (Proof of Concept)

[!WARNING] ПРОЕКТ НАХОДИТСЯ В СТАДИИ PROOF OF CONCEPT (НЕПРОХОДИМО / РАННИЙ ЭТАП). Игра компилируется и стартует в нативное окно Windows x86-64, но на текущий момент непроходима. Ведется активная работа над обходом проверок дискового кэша Frostbite.

Что работает:

  1. Чистая сборка C++23: 54 126 функций PowerPC рекомпилированы в C++23 и успешно собираются в Visual Studio 2022 без ошибок линковки.
  2. Инициализация подсистем Xenon: Память, виртуальные и физические пулы, аудиоядро XMA, D3D12 рендерер и ввод SDL инициализируются корректно.
  3. Обработка динамической памяти: Встроенный On-Demand Page Fault Handler и SafeCommitRange предотвращают падения 0xC0000005 по нескоммиченным адресам памяти.
  4. Прохождение файлового зонда: Проверка DVD-привода GAME:\dvd-prb успешно проходит с правами allow_game_relative_writes = true.
  5. Создание окна: Графическое окно игры badcompanyrecomp создается, потоки отрабатывают фоновый цикл (потребление до ~312 МБ RAM).

Текущая граница выполнения:

  • Остановка: В подсистеме ввода-вывода Frostbite (SerializingIoManager) при калибровке дискового кэша (\Device\Harddisk0\Cache0 / IoDismountVolumeByFileHandle). Движок ожидает физический HDD кэш консоли и вызывает KeBugCheck(0).
  • Следующий шаг: Эмуляция режима работы без HDD (Xbox 360 Arcade/Core) или байпас кэша для перехода к заставкам DICE/EA и главному меню.
View official project
CALIFICACIÓN
—
Loading votes…
Advertisement

PROJECT FILE

Project type
NATIVE PORT
Genre
Shooter / Action
Status
alpha
Original platform
—
Technology
Static recompilation (native C/C++)
Version
—
Updated
—

Target platforms 1

Windows
View on GitHub
Advertisement