When I was in high school, around the time the Xbox 360 JTAG hack became popular, one of the first things I did when I got my console modded was upgrade the internal HDD to a custom 500 GB drive. It was a 500 GB, 7200rpm Hitachi Travelstar. At the time, 250 GB was officially the highest you can go. My friends were amazed. Here’s the exact picture I posted to social media (March 19, 2010):

Thanks to the XBReboot creators (a precursor project to the modern xeBuild) it was possible to use any HDD up to 2 TB. I never needed more than 500 GB – even today it’s still plenty for me. However, in 2022, there are others who crave a lot more storage space, and 2 TB was starting to be limiting. Larger HDDs and SSDs continue to get cheaper too.

Today I am pleased to announce the next evolution of Xbox 360 internal HDD upgrades. A comprehensive kernel patch unlocking up to 16 TB of space!

How it works, benefits, limitations, etc

FATXplorer 3.0 beta 22 has an updated XL Storage Tools menu:

From there, you can choose what you want to do. Here is the Apply HDD Patches window which explains everything in great detail:

There are fewer limitations compared to the XL USB patches, and the sole limitation shown above is more of an assumption than a proven fact. If your drive is fast enough, you may not even encounter the problem.

How this was done

A more technical deep-dive will be published another time, along with the source code to the patches. Here is a general overview in the meantime:

When the Xbox 360 kernel loads the disk size, it maxes out at 2 TB because of the 32-bit sector count field in the DISK_GEOMETRY structure. The 512-byte sector size multiplied by the maximum 32-bit value (4294967295) equals 2 TB. This field cannot be extended beyond 32-bits, so the alternative is to increase the sector size. The sector size was increased to 4096, and as a result, that 32-bit sector count field can now represent a maximum of 16 TB. Since the HDD itself still uses 512-byte sectors and the 4096-byte sector size is essentially a spoof, a conversion method had to be created so the read/write operation, based on the 4K sector size, would apply to the correct sectors on the HDD. Additionally, the lowest-level SATA code had to be upgraded to write sector values to the cylinder ports that go beyond 32 bits.

The final problem to solve was non-buffered IO operations. Some files, like xexs, are opened with FILE_FLAG_NO_BUFFERING and reads are done that are 512-byte sector aligned, but not 4K sector aligned. With the sector size change, games failed to launch. A 512-byte-to-4K “emulation layer” had to be created, which is basically a kernel-mode function that translates 512-byte-aligned reads & writes into 4K-aligned reads & writes. The trick done on the XL USB patches with forcing off FILE_FLAG_NO_BUFFERING was insufficient (some games needed it), and was replaced with this emulation layer. This was the most difficult part of the project – the actual SATA patches were easy compared to this! The source code to this emulation layer will be published another time.

For reference, all of the internal HDD patches combined are larger than all of the default xeBuild patches combined!

Performance review

The XL USB patches boosted loading/mounting performance. The same loading/mounting patches were ported over, but due to the higher speed of the SATA connection, and difficulty of precisely measuring performance at boot time, it’s unclear if loading/mounting times are significantly better. However, the good news is that no obvious delays were observed at boot time, even when loading/mounting 16 TB.

As for read/write performance, there is no increase in performance. Unlike XL USB, no areas of improvement were found. Read/write performance is the same as it was without the patches. The internal SATA connection is significantly faster than USB 2.0, though. It’s recommended you use the internal drive for gaming instead of a USB drive. Here is a performance comparison:

Recommended hardware

Any drive (HDD or SSD) you can get powered and connected to the Xbox 360’s SATA port should work. The only restriction is that it can’t be 4K Native. FATXplorer will not format 4K Native drives, and connecting them to the Xbox 360 will result in E70 on boot. AF 512e will work, though. Additionally, you can use a drive larger than 16 TB, but only 16 TB will be usable.

The recommendations below apply to slim consoles. The patch will work on phat consoles too, but it’ll be up to you to determine what drive you can set up at the top.

Any drive you want to plug in to the Xbox 360 slim should be 7mm in height. 15mm is confirmed to not fit.

  • 2.5″ SSD: This is the best option. Larger SSDs are not physically larger in size, so they can fit without issue in the slim’s drive bay. You also get a performance boost. They continue to get cheaper over time as well.
  • 2.5″ HDD: Must be 7mm to fit in the slim’s drive bay. Seagate warning: They make several larger-than-2TB 2.5″ HDDs, but they are all 15mm and will NOT fit in the slim’s drive bay.
  • 3.5″ HDDs: They can work, but you need to do the 12v mod to supply enough power to it. You’ll also need to figure out a way to connect it to the SATA port. This requires a lot of hardware mods, so it’s only recommended to advanced users. Perhaps with the release of this patch, better tutorials and guides will be published by the community.

You can use existing existing Xbox 360 drives, but you must reformat them. FATXplorer must format all drives at least once, or else the Xbox 360 will show E69 on boot. This is to prevent corruption of data when an non-XL-formatted drive is connected.

If you plug an XL-formatted drive into a console without the patches applied, the drive will load, but it will show incorrect space values and will appear empty. You will corrupt at least 1 file if you do this!

Large HDD in action

Cost

The HDD patches and formatter are free and will remain that way post-beta. However, only FATXplorer will be able to browse the HDD when it is connected to your PC, and that will require a paid license past the trial period (the beta version is still free to use without restriction).

Updated USB patches

Beta 22 comes with version 2 of the USB patches. All users are encouraged to update their nands.

  • Added support for USBs larger than 16 TB. 16 TB is still the maximum space that can be used – space beyond 16 TB cannot be used.
  • Implemented new no-buffering/emulation layer to fix issues with certain games not loading. FILE_FLAG_NO_BUFFERING is no longer applied system-wide.

Note that XL USB patches cannot be combined with XL HDD patches at this time. It may be possible to have both in the future, but for now you must choose one or the other.

Other changes in beta 22

Beta 22 has a few other changes, View the full release notes.

What’s next?

With the release of the XL HDD patches, Xbox 360 storage possibilities are now maxed out. After working on Xbox 360 mods for more than 10 years, it was one of the most technically challenging projects I have worked on. I hope the community will enjoy the new storage options FATXplorer has made possible, and work will now resume on porting over the remaining features from v2.5, and exiting beta.

Download beta 22 from this page