Skip to content

BfBBModdingTools/xbld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xbox Linker

xbld is a work-in-progress linker for injecting code into existing executables for the Microsoft Xbox. It takes COFF format object files as input. The project is currently only tested with SpongeBob SquarePants: Battle for Bikini Bottom. It is intended to be usable for any xbox executable (XBE), but likely currently makes assumptions that won't be compatible with some executables.

The linker works by taking the .text, .data, .rdata, and .bss sections from it's input files and placing them into new .mtext, .mdata, .mrdata, and .mbss sections at the end of the executable. Patches can be defined to overwrite parts of existing sections to be able to hook into the new code. Various parts of the XBE's headers have to be updated to account for the new sections.

The project is still in very early development and not yet intended for actual use. The CLI is not yet completely implemented or decided on and is currently undocumented.

Features

Current

  • Inject patches that overwrite existing code or data, and define symbols for them.
  • Add custom code and data at the end of an XBE.

Building

Requirements

Compiling

  • Running 'cargo build' from the project root should "just work".

Testing

  • Testing requires a clean executable of SpongeBob SquarePants: Battle for Bikini Bottom to be located at bin/default.xbe. Acquiring this file is up to you.
    • sha1sum: a9ac855c4ee8b41b661c3578c959c024f1068c47

Contributions

  • If you have suggestions about the project feel free to open an Issue to start discussion. PRs will always be considered as well.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages