Skip to content

Build from source

You need Visual Studio with the Xbox 360 SDK (XDK) integration and the xkelib submodule. The SDK isn’t included.

git clone --recurse-submodules https://github.com/marcusisdahl/NetUsb360.git
  1. Open CUsbEnet.sln and select Release | Xbox 360.
  2. For a retail console, add DEVKIT_ONLY=0 to the C/C++ preprocessor definitions. Without it, Main.h builds for devkits.
  3. The Release configuration copies the XEX to a configured console after building. Turn deployment off if you copy files yourself (/p:DeploymentType=None with MSBuild).
  4. Build. The output is Build\CUsbEnet\NetUsb360.xex.

Before trusting a self-built build with your files, check it with FastFTP’s network test using the All data check. See Safety.

These are compile-time options in CUsbEnet/Main.h. Every experimental switch is off by default.

Switch Default What it does
DEVKIT_ONLY 1 1 builds for devkit kernels and 0 for retail. A build for the wrong kind unloads itself.
USBENET_AX88179_TX_AGGREGATION 0 Lets the original AX88179 send several packets per USB transfer. Don’t use it alone: it froze the console in testing.
USBENET_COALESCE_TITLE_SMALL_FRAMES 0 Lets small packets join a transfer already in progress. Part of acksmall.
USBENET_TX_AGGREGATE_SMALL_ONLY 0 Only packets up to 256 bytes share a transfer, and full-size packets still go one per transfer. Part of acksmall.
USBENET_AX88179_RX_26K 0 26 KiB receive transfers on the AX88179. No measurable gain.
USBENET_AX88179_RX_32K_UNTESTED 0 32 KiB receive transfers. Untested. Can’t be combined with the 26 KiB switch.
USBENET_PERF_LOGGING 0 Prints a speed, CPU and drop summary every five seconds.
USBENET_DEBUG 0 Detailed driver output. Slows the driver down.
USBENET_CONNECTION_LOGGING 0 Extra connection diagnostics.

The acksmall build is DEVKIT_ONLY=0, USBENET_AX88179_TX_AGGREGATION=1, USBENET_COALESCE_TITLE_SMALL_FRAMES=1 and USBENET_TX_AGGREGATE_SMALL_ONLY=1.