Skip to content

Compiling

Ryan Miceli edited this page Mar 3, 2025 · 4 revisions

This page contains instructions on how to compile the various stages of the bad update exploit. This process is only required for developers who are making changes to the exploit and need to rebuild it (ex: you want to target another kernel/hv version). If you're not a developer you can find precompiled versions of the exploit in the Releases section.

Prerequisites

At a minimum you'll need the following tools which can be found in the Tools.zip archive in the releases section:

  • XePatcher v3.1 (or newer)

Build Script

There's quite a few steps to build the exploit from source so I created a batch script build_exploit.bat which can be used to automate most of the compilation process. To use the batch file you'll need to extract the Tools.zip archive found in the releases section into the Xbox360BadUpdate repository folder such that XePatcher.exe can be found at the following path: \Xbox360BadUpdate\Tools\XePatcher\XePatcher.exe.

Next you can run the batch file in a command prompt window with the following arguments:

build_exploit.bat <target game> [build flavor]

Arguments:
  <target game> = game to compile exploit files for:
    THAW - Tony Hawk's American Wasteland

  [build flavor] = optional, specifies the build flavor (defaults to RETAIL_BUILD if argument not provided)
    RETAIL_BUILD - Build for retail 17559 kernel
    DEBUG_BUILD - Build for user defined kernel version

If compilation is successful the exploit files will be put into the folder located at \Xbox360BadUpdate\bin\<build flavor>\<game>, ex: \Xbox360BadUpdate\bin\RETAIL_BUILD\TonyHawksAmericanWasteland. You will still need to patch the game save files manually. Instructions for how to patch the game save files can be found in the Stage 1 section. You can ignore all other sections if you used the batch script.

Stage 1 (game specific)

Stage 1 is game dependent, see the following pages for how to compile stage 1 for each of the supported games.

Stage 2/3/4

Important

If you make changes to the stage 2 data segment you will need to recompile and rebuild the game save files as the stage 2 data segment is embedded into the game save exploit.

Stage 2, 3, and 4 can be compiled using the following command:

XePatcher.exe -p <asm file> -proc ppc --defsym <build flavor>=1 --defsym <target game>=1 --include "<common folder>" --include "<game folder>"

Where:
  <asm file> = file path of the assembly file to compile (ex: Stage2\BadUpdateExploit-2ndStage.asm, Stage3\BadUpdateExploit-3rdStage.asm, etc.)
  <common folder> = file path of the "Common" folder
  <game folder> = file path of the folder for the game you're targeting

For possible values of <build flavor> and <target game> see the build configuration section below.

Example:

Stage 2:
XePatcher.exe -p "X:\Xbox360BadUpdate\Stage2\BadUpdateExploit-2ndStage.asm" -proc ppc --defsym RETAIL_BUILD=1 --defsym TONY_HAWK_AW=1 --include "X:\Xbox360BadUpdate\Common" --include "X:\Xbox360BadUpdate\Stage1\TonyHawksAmericanWasteland"

Stage 3:
XePatcher.exe -p "X:\Xbox360BadUpdate\Stage3\BadUpdateExploit-3rdStage.asm" -proc ppc --defsym RETAIL_BUILD=1 --defsym TONY_HAWK_AW=1 --include "X:\Xbox360BadUpdate\Common" --include "X:\Xbox360BadUpdate\Stage1\TonyHawksAmericanWasteland"

Stage 4:
XePatcher.exe -p "X:\Xbox360BadUpdate\Stage4\BadUpdateExploit-4thStage.asm" -proc ppc --defsym RETAIL_BUILD=1 --defsym TONY_HAWK_AW=1 --include "X:\Xbox360BadUpdate\Common" --include "X:\Xbox360BadUpdate\Stage1\TonyHawksAmericanWasteland"

Build Configuration

Some of the stages require additional command line arguments that control how the exploit is compiled. This section contains all of the build configuration values that can be used.

Build Flavor

Used to target retail or debug configurations. Possible values:

  • RETAIL_BUILD: build for retail 17559 kernel.
  • DEBUG_BUILD: build for user defined kernel version.

Note

The debug configuration is used for development/testing builds on arbitrary kernel versions. This configuration would be used if you wanted to target another kernel/hv version and would require additional configuration files be setup with kernel/hv version specific addresses.

Target Game

Chooses which game to target when building. Possible values:

  • TONY_HAWK_AW: build for Tony Hawk's American Wasteland.