This is a collection of PowerPC assembly patches I have made for the Xbox 360 operating system over the years.
These extend the size limit of the internal SATA drive and external USB drives from 2 TB to 16 TB. These are currently supported by FATXplorer and built into J-Runner.
If you are not a developer and just want to get XL storage working on your Xbox 360: Use J-Runner to re-flash your nand with the latest patches, and then use FATXplorer to format your drive. You do not need anything from this repository.
The Combined folder is both patchsets combined into 1 for those who want to use XL HDD and USB together.
There is an included Visual Studio solution that compiles an "emulation layer". This is the most advanced part of the project and is what helps the kernel adapt to the increase in sector size, and is likely where all bugs and improvement opportunities will be found. If you make a change to the emulation layer and want to apply it, here is how:
- Compile the solution.
- Open the compiled xex in IDA and go to the 1 exported function (Exports tab).
- Switch to the text assembly (non-graph) view and click the instruction after the
savegprlrat the beginning of the function. - Click Edit, Begin selection.
- In the patch, find this line and follow the remaining instructions there:
MAKEKRNLPATCH EmulationFunctionStart
Tip: To export function bytes in IDA, go to Edit, Export data.
There are also patches for xam.xex. These should be applied directly to the xex and then put into your nand file system (recommended), or applied to memory after boot using DashLaunch (retail) or DevTool (XDK). XL storage can technically boot without a patched xam, but it is strongly recommended that it is used so you get the best possible experience.
Retail users: Add the compiled kernel patches to patches_*.bin in your 17559\bin folder, then create a patched xam.xex for your filesystem. J-Runner has a special folder for xam (xl_both, xl_hdd, xl_usb). Make sure to update the CRC in the .ini files.
XDK users: Add the uncompiled kernel patches to the end of RGLoader-17489-dev.S then create a patched xam.xex for your filesystem, or use DevTool to patch after boot. For real devkit hardware, they should also work when built into a Shadowboot ROM.
Known Issues
- JTAG boot/guide button freezes. (Memory allocation related)
- Issues with Forza Horizon 1 & 2 rewind feature.
- Forza 1 in OG compatibility mode dirty disc error when loading a track.
- Half-Life 2 in OG compatibility mode dirty disc error when launching. (Cache related?)
- King of Fighters black screen issue.
Use this to compile patches. Put them into (or overwrite/replace) patches.s, run build_patch.bat, and you will get a compiled patches.bin file.
Some patches here are still supported and in development. If you notice a bug or see something that can be improved, file an issue or PR!
The MIT License applies to this project. You are welcome to use elements of any patch in your projects - just give credit where appropriate.