Skip to content

Repository files navigation

XexUtils

XexUtils is a library to make Xbox 360 applications and/or libraries.

Features

Header file Description Examples
Assert Trigger a breakpoint with an assertion message in debug builds. Assert.md
Dashlaunch Get/set Dashlaunch options and access its global data. Dashlaunch.md
Detour Detour/hook a function. Detour.md
Expected Partial clone of std::expected from C++23. Expected.md
Filesystem Functions to access storage devices and a class to represent a file path. Filesystem.md
Formatter Convert from narrow to wide strings and generate strings from printf formats. Formatter.md
General General purpose helpers that don't really fit in any namespace. General.md
Http Basic HTTP client with HTTPS support. Http.md
Hypervisor Read and write to hypervisor memory. Hypervisor.md
Input Detect single button presses and repeats more easily than using XInput directly. Input.md
Json JSON parser and writer (wrapper around the XJSON library from the XDK). Json.md
Kernel Declarations of functions exported by xboxkrnl.exe and their associated structs and enums.
Log Very barebones logger. Log.md
Math Utility math functions and classes to manipulate vectors. Math.md
Memory Read and write arbitrary data from and to arbritrary locations with safeguards. Memory.md
Optional Partial clone of std::optional from C++17. Optional.md
SMC Interact with the power LED. SMC.md
Socket Open TCP connections with TLS support. Socket.md
Url Basic URL parser. Url.md
ValueOrPtr Container class to manipulate a value or a pointer seemlessly. ValueOrPtr.md
Xam Functions to nteract with the system UI and declarations of functions exported by xam.xex. Xam.md

Installation

With pre-compiled binaries

  • Download the latest binaries and header files from the releases.
  • From Visual Studio, right click on your project, go to Properties and then:
    • Add \path\to\XexUtils\lib to Configuration Properties > Linker > General > Additional Libary Directories.
    • Add XexUtils.lib (or XexUtilsd.lib for the debug version) to Configuration Properties > Linker > Input > Additional Dependencies.
    • Add \path\to\XexUtils\include to Configuration Properties > C/C++ > General > Additional Include Directories.

Compiling from source

  • Clone the repository with its submodule. XexUtils depends on BearSSL.
    git clone --recursive https://github.com/ClementDreptin/XexUtils.git
    
  • Add XexUtils as a project in Visual Studio:  Right click on the solution name in the solution explorer then Add > Existing Project... and select XexUtils.vcxproj in \path\to\XexUtils.
  • Add it as a reference to your main project:  Right click on your main project in the solution explorer then Add > Reference..., tick XexUtils and click OK.
  • Add BearSSL as a project in Visual Studio:  Right click on the solution name in the solution explorer then Add > Existing Project... and select BearSSL.vcxproj in \path\to\XexUtils\deps\BearSSL.vcxproj.

Documentation

You can look at the examples directory, which will show you a basic usage of every public function. If you want a detailed API reference, you can look at the Doxygen comments in the source header files, which should display on hover in your editor if it's modern enough.

Running the tests

The tests are an app that runs on the console and is deployed to the devkit:\XexUtilsTests directory (same as hdd:\DEVKIT\XexUtilsTests).

Visual Studio 2010

Open test\Tests.sln in Visual Studio.

Any other environment

Xbox 360 projects can't be built with the 64-bit version of MSBuild, you need to run the 32-bit version. You can make yourself an alias for convenience:

# Create an alias to the 32-bit version of MSBuild named msbuild
# The default installation path of VS2026 is C:\Program Files\Microsoft Visual Studio\18\Community
Set-Alias msbuild "<path_vs2026>\MSBuild\Current\Bin\MSBuild.exe"

Now run msbuild to compile the test app and deploy it to your console.

Acknowledgements

  • Xbox 360 Detours - What served as a reference for the Detour implementation.
  • BearSSL - The TLS implementation used in sockets.
  • XboxTLS - What inspired and showed how to integrate BearSSL in an Xbox 360 environment.

About

XexUtils is a library to make Xbox 360 applications and/or libraries.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages