Saltar al contenido
PORTSNATIVE.
InicioCatálogo
Juegos WebEmuladoresHerramientasNovedades
PORTSNATIVE.

Un catálogo para descubrir ports y proyectos relacionados. Enlazamos a las fuentes oficiales y no alojamos archivos de los juegos originales.

ExplorarCatálogoMi lista
InformaciónNosotrosProponer un portSoporteApoyo y donacionesAviso legal
© 2026 PortsNative
Volver al catálogo
Battlefield: Bad Company
PORTSNATIVE

Battlefield: Bad Company

PORT NATIVOSHOOTER / DISPAROSWINDOWSALPHA

Battlefield: Bad Company

TecnologíaRecompilación Estática (C/C++ nativo)

Disponible paraWindows

Ver proyecto oficial

Sobre el proyecto

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.

Información oficial del proyecto

README original del autor (en inglés)Abrir en 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 и главному меню.
Ver proyecto oficial
CALIFICACIÓN
—
Cargando votos…
Publicidad

FICHA DEL PROYECTO

Tipo de proyecto
PORT NATIVO
Género
Shooter / Disparos
Estado
alpha
Plataforma de origen
—
Tecnología
Recompilación Estática (C/C++ nativo)
Versión
—
Actualización
—

Plataformas de destino 1

Windows
Ver en GitHub
Publicidad