Repo ↗ · 原始 README ↗ · 文件包(Markdown/授權)
封面參考(原作): Burnout 3: Takedown · 原作宣傳圖,由 IGDB 提供。圖片版權屬原權利人,供辨識原作使用,不代表此重寫/模組專案的實際畫面。
來源維護者: sp00nznet · 版本: 79b578dcbb03 · 整理日期: 2026-10-12
文件授權: MIT · LICENSE · 本文形式: README 翻譯
下文為來源 README 的繁中翻譯,由 Kirikirin 使用 AI 輔助整理;功能、完成度與測試結果均為原作者描述,本站未逐項實機驗證。圖片改為來源連結,指令與技術識別保留原文。
Burnout 3: Takedown — 靜態重編譯
將 Xbox 版 Burnout 3: Takedown(Criterion,2004)靜態重編譯為原生 Windows 執行檔。遊戲本身的 x86 程式碼由 xboxrecomp 工具組提升為 C。它透過真實進入點啟動,並在工具組的 Xbox 執行階段上執行自己的選單、賽事與渲染器。沒有任何遊戲邏輯或畫面是手寫的。
產生的原始碼不會隨附散布。 此儲存庫包含建置黏著層、各遊戲專屬資料與文件。您需自備光碟映像;重編譯器會在您的機器上執行,並將 C 寫入 gitignore 的資料夾。
雙人分割畫面,以 --record 風格的逐翻轉畫格與指令碼控制器無頭錄製。
狀態
Alpha。 每個遊戲模式都能啟動、渲染與遊玩,單人或雙人,由 Xbox/XInput 控制器操作。目前還不好玩:NV2A GPU 是以軟體模擬,因此在 12 核心機器上選單約 14 fps,賽事約 2–4 fps。目前還沒有存檔設定檔,所以每次啟動都會重播教學影片。
| 模式 | 玩家人數 | 狀態 |
|---|---|---|
| 競速(單一賽事) | 1 | 可玩到終點 |
| 計時賽 | 1 | 可玩 |
| 道路狂飆 | 1 | 可玩 |
| 撞車 | 1 | 可玩:起跑、連環撞、計分 |
| 競速 | 2,分割畫面 | 可玩 |
| 道路狂飆 | 2,分割畫面 | 可玩 |
| 雙重衝擊 | 2,分割畫面 | 可玩 |
| 團隊粉碎 | 2,分割畫面 | 可玩 |
| 派對撞車 | 2–8,傳遞控制器 | 可玩 |
| Xbox Live / 系統連線 | — | 未嘗試 |
已知缺口:選單背景影片上有垂直條紋、天空穹頂有接縫、凹凸貼圖(點積)紋理階段讀取為零,以及沒有設定檔儲存。ROADMAP.md 有清單;docs/boot.md 記錄了達到目前狀態的過程,一項一項修正。
這是 xboxrecomp 系列中的一款作品,並遵循其內部風格:工具組承載所有非 Burnout 3 專屬的內容,而此儲存庫只承載專屬的部分。
螢幕截圖
| README 圖片:Takedown | README 圖片:單場競速 |
| 一次 Takedown:將對手撞向柱子 | 單場競速,起跑 |
| README 圖片:撞車模式連環撞 | README 圖片:競速 |
| 撞車模式:路口連環撞 | 競速 |
| README 圖片:道路狂飆 | README 圖片:雙重衝擊 |
| 道路狂飆 | 雙重衝擊(2P) |
| README 圖片:撞車結果 | README 圖片:計時賽 |
| 撞車模式計分 | 計時賽 |
| README 圖片:車庫 | README 圖片:撞車地圖 |
| 車輛選擇 | 撞車路口地圖 |
更多內容在 docs/screenshots。
開始使用
您需要:
- Windows 10 或 11,x64,約 12 GB 可用空間
- 您自己的 Burnout 3: Takedown 光碟映像(
.iso) - Xbox 或 XInput 控制器(分割畫面需兩個);沒有鍵盤對應
快速開始
-
下載此儲存庫(綠色 Code 按鈕,Download ZIP)並解壓縮到有空間的位置,例如
C:\recomp\burnout3。 -
雙擊
Setup.cmd。它會檢查 Python 3.10+、capstone 套件、Git、CMake 與 Visual Studio 2022 C++ 建置工具,並在缺少任何項目時先詢問再安裝(使用 winget),說明每個項目是什麼以及多大。它會將 xboxrecomp 工具組抓取到儲存庫資料夾旁,然後詢問您的
.iso(它會先查看儲存庫旁與 Downloads)。之後它會解開光碟、重新產生 C 並建置。每個步驟完成後就會跳過,所以失敗後只要再執行一次。出錯的內容會寫入
setup.log,視窗會說明下一步該做什麼。 -
雙擊
Play Burnout 3.cmd,設定程式會將其留在儲存庫資料夾中。
首次建置需 20–40 分鐘。遊戲的任何內容都不會下載或隨附:唯一使用的遊戲資料是您的光碟映像。
逐步操作
與 Setup.cmd 相同的步驟,手動執行。除步驟註明 Git Bash 外,命令均適用於 PowerShell。
-
安裝先決條件。
工具 版本 取得方式 Python 3.10 或更新版本,含 py啟動器winget install -e --id Python.Python.3.12capstone 5.x py -3 -m pip install --user capstoneGit for Windows 任何近期版本,包含 Git Bash winget install -e --id Git.GitCMake 3.20 或更新版本 winget install -e --id Kitware.CMakeVisual Studio 2022 含 Desktop development with C++ 的 Build Tools winget install -e --id Microsoft.VisualStudio.2022.BuildToolsffmpeg 選用,用於 --recordwinget install -e --id Gyan.FFmpeg之後開啟一個新的終端機,讓 PATH 能抓到它們。如果
python開啟 Microsoft Store,那是 Store 別名;請如下使用py -3,或在 Settings → Apps → Advanced app settings → App execution aliases 下關閉別名。> py -3 --version Python 3.12.10 > cmake --version cmake version 3.31.6 -
將儲存庫與工具組並排放置。 建置程式會在
..\xboxrecomp尋找工具組。git clone https://github.com/sp00nznet/burnout3 git clone https://github.com/sp00nznet/xboxrecomp工具組的
main具備 Burnout 3 所需的一切(xboxrecomp #138-#156)。 -
解開您的光碟映像到
burnout3\Burnout 3 Takedown\,使用工具組的 XDVDFS 讀取器:cd xboxrecomp py -3 -m tools.xiso unpack "D:\isos\Burnout 3 - Takedown (USA).iso" -o "..\burnout3\Burnout 3 Takedown" cd ..\burnout3您應該會在
Burnout 3 Takedown\default.xbe旁取得Data\、Tracks\、ovid\及其餘內容(約 2.4 GB)。 -
重新產生 C(Git Bash,從
burnout3資料夾):$ ./regen.sh --disasm ==> xbe_parser ==> disasm ==> func_id ==> abi_analysis ==> recomp ==> done. Now: cmake --build build-xr --config Release這會寫入
src/game/recomp/gen/,約 29 個檔案,全部被 gitignore。 -
建置(PowerShell 或 Git Bash):
cmake -S . -B build-xr -G "Visual Studio 17 2022" -A x64 cmake --build build-xr --config Release --parallel 2它會以
burnout3.vcxproj -> ...\burnout3\bin\burnout3.exe結束。--parallel 2搭配預設的/MP(您一半的核心數)可讓機器在編譯時保持可用。每個產生的檔案在/O2時都很大。 -
執行它,從儲存庫資料夾,以便找到
Burnout 3 Takedown\與saves\:.\bin\burnout3.exe會開啟一個標題為
Burnout 3: Takedown | FPS: n | draws: n的視窗,您會看到 EA 與 Criterion 開頭影片,然後是「Press START」。
常見問題: regen.sh 需要 Git Bash,不是 WSL 的 bash。剛安裝的工具在您開啟新視窗前不會被找到。建置需要 64 位元產生器(-A x64)。
使用方式
bin\burnout3.exe [--headless] [--record out.mp4] [--seconds N] [path\to\default.xbe]
| 呼叫方式 | 功能 |
|---|---|
burnout3.exe |
在視窗中遊玩。控制器 1 與控制器 2 是 XInput 控制器 1 與 2。 |
burnout3.exe --headless |
無視窗執行,用於指令碼與遠端工作階段。 |
burnout3.exe --headless --record out.mp4 --seconds 600 |
無視窗執行 10 分鐘,然後將每個呈現的畫格編碼為 out.mp4(需要 ffmpeg 在 PATH 中)。Ctrl+C 也會停止並編碼。 |
指令碼輸入,用於錄製或測試,無需手持控制器:
set RECOMP_PAD_SCRIPT=20000:start:1200,30000:a:400,90000:rt:60000,90000:p2-rt:60000
bin\burnout3.exe --headless --record race.mp4 --seconds 900
每個項目是 <ms>:[+][:<hold ms>],從遊戲首次讀取控制器時計時,而 p2- 前綴會將其傳送到第二個控制器。RECOMP_PAD_LIVE=pad.txt 則改為讀取遊戲執行時附加到檔案的步驟。docs/running.md 列出按鈕、環境變數與擷取工具。
模擬硬碟位於 saves\。刪除它可再次看到首次啟動流程(設定檔建立)。
從原始碼建置
regen.sh 在 default.xbe 上執行工具組的管線。各階段為 XBE 解析器、反組譯器、函式庫函式識別、ABI 分析與重編譯器。CMake 接著針對 xboxrecomp 執行階段建置產生的 C。該執行階段提供 Xbox 核心、軟體 NV2A GPU、MCPX 音訊處理器、含模擬控制器的 USB OHCI 主機,以及 XMV 影片播放器。請參閱 docs/architecture.md 了解哪個部分負責什麼。
C 是重新產生的,不是編輯的。如果輸出有誤,修正會放在工具組的重編譯器或此儲存庫的各遊戲專屬資料(config/seed_functions.json、src/game/main.c),絕不手動修改 gen/。
貢獻者
請參閱 CONTRIBUTORS.md。歡迎貢獻;請先閱讀 CONTRIBUTING.md,尤其是 Where your code comes from。
授權條款
MIT,請參閱 LICENSE。這僅涵蓋此儲存庫中的程式碼。Burnout 3: Takedown 及其資產屬於其所有者,不包含在內。
授權與來源聲明
原始 README 與翻譯沿用 MIT 授權;本次修改為繁中翻譯、連結與排版調整。可修改的 Markdown、原始 README、LICENSE 與 NOTICE 收錄於頂部文件包。原作遊戲內容與商標不因此獲得授權。
LICENSE
MIT License
Copyright (c) 2026 sp00nz
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

評論
…