Notes After Xbox One X SSD Upgrade

The major reason I upgraded from Xbox One to Xbox One X was for 4K UHD resolution. And the main reason I upgraded from Xbox One X to Xbox Series X was for its SSD. Now that I’ve retrofitted an SSD to my Xbox One X, is it just as good as a Series X? The answer is no. Xbox Series X still vastly outperforms the Xbox One X even with SSD.

Even Faster Loads

As a representative data-intensive task, I loaded up Forza Horizon 4 and traveled between the main content area (UK mainland) and one of the expansions (LEGO island.) Xbox One X on its original HDD required about 44 seconds to switch maps. Now that it has an SSD, load time has been cut by more than half to 21 seconds. A great improvement but pales in comparison to Xbox Series X which takes only 14 seconds to make the same transition. I’m not sure how much of that is the faster NVMe-based data bus for Series X SSD and how much is its faster processor, but it’s clearly and measurably faster. 44 seconds is long enough to get up from the couch and get a beverage, 14 seconds is barely long enough to pick up my phone to check messages. As this was one of the lengthier transitions in the game, in practice it means I’m rarely left waiting on a Series X while playing.

Quick Resume

Xbox Series X is superior to One X in many other ways, I’m enamored with its higher framerate which arrived simultaneous with HDMI spec to take advantage of it. I even bought a TV to go with Series X, a LG OLED with beautiful picture and terrible software. But back to the subject of load times: “Quick Resume” is a new feature. It suspends a game when the user switches away and, when the user is ready to pick up that game again, reloads the suspended data. Xbox One X required about a minute to start Forza Horizon 4 from stock HDD. With my SSD upgrade, FH4 loads in about half the time: 31 seconds. And that’s only up to the introduction screen, it takes another ~60 seconds (HDD) / ~30 seconds (SSD) before I’m driving. In contrast a Series X with Quick Resume can take me from home screen and into the driver’s seat in about 8 seconds. I find this absolutely astonishing and I’m a huge fan of this new feature.

TRIM

A final note on storage: I don’t know if Xbox One X issues TRIM commands to the SSD as data come and go. This was important for SSD longevity (Wikipedia has more details) and requires operating system support. Since it never came with a SSD, there’s no reason for Xbox One X to issue TRIM commands. On the other hand, low level disk code is probably shared between all Xbox variants, including the SSD-equipped Series S and Series X that would benefit from TRIM. And since TRIM is ignored by older drives that don’t understand it, there’s no reason for them to put in extra effort to disable TRIM on older consoles. And finally, various manufacturers (including Crucial who made the drive now living in my One X) claim that their SSD firmware is now advanced enough they don’t need TRIM to obtain optimal performance. I’m not sure I believe that, and I don’t know of any way to tell if TRIM is happening, but SSDs are now cheap enough I’m willing to continue this experiment.

Xbox One X SSD Upgrade

Using Linux disk tool “dd” I successfully migrated data on my Xbox One HDD to an SSD with identical capacity. The SSD upgrade made the nine-year old console much more responsive to game loading and in-game navigation, incurring less waits before the action starts. (It didn’t do anything once the game is up and running, obviously.) With this success, I eyed its successor: my Xbox One X which is also gathering dust since the time I upgraded to the latest Xbox Series X.

The SSD-upgraded Xbox One was mostly just for fun, as it is still likely to sit on a shelf collecting dust after its SSD upgrade. In contrast, an SSD-upgraded Xbox One X may actually see some use. Or at least this was the justification I used to spend money on a 1TB Crucial MX500 SSD (*) for this project. I also skipped the system reset this time around, curious to see if it makes a difference. As for a quick-and-dirty performance benchmark, I timed the duration between selecting “Restart Console” to the time I’m back at the Xbox home menu. On the factory hard drive, that took 90 seconds.

iFixit doesn’t have an explicit guide for HDD replacement on an Xbox One X (referred to by its codename Project Scorpio) but it does have a guide for BD-ROM drive replacement. Looking at pictures, I judged that was close enough as the HDD is right next to the BD-ROM drive. Once I followed instructions to reach the BD-ROM drive, I could indeed lift the hard drive cage to access four screws necessary to remove the original drive.

Disk capacity details as shown by command “fdisk -l”:

Disk /dev/sdb: 903.57 GiB, 970199064576 bytes, 1894920048 sectors
Disk model: ST1000LM035-1RK1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

The Crucial MX500 SSD is slightly larger, allowing me to copy all the bytes and leave almost 30GB available for wear levelling and other SSD housekeeping.

Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: CT1000MX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

This time I’m going to use a 512KB block size for dd. That may have been the key to faster copy, as the drives are double the size yet copied in less time than for Xbox One’s 500GB drive.

~$ sudo dd if=/dev/sdb of=/dev/sdc bs=512K status=progress
970164011008 bytes (970 GB, 904 GiB) copied, 9115 s, 106 MB/s
1850507+1 records in
1850507+1 records out
970199064576 bytes (970 GB, 904 GiB) copied, 9120.85 s, 106 MB/s

Reassembling the console, I retested the “Restart Console” scenario. It took just 49 seconds with the new SSD compared to 90 seconds with the HDD. Almost half the wait or in other words, almost doubled the speed! This is awesome, and I didn’t have to reset the console, but there may be an asterisk or two quantifying this success.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Xbox One SSD Upgrade Successful

Following directions published by iFixit, I successfully pulled the original factory hard drive from my Xbox One (2013) game console. This is an attempt to increase game load performance with an SSD upgrade, migrating Xbox operating system files via Linux “dd” tool. I installed both original Xbox 500GB hard drive and candidate replacement 500GB SSD in my Ubuntu tower case with drive cage that makes drive install/uninstall much easier. Now I can see how they compare.

I expected both of their “500GB” to be rounded-off values approximating actual drive capacity, which are dictated by implementation details of each drive. Since they are built within constraints of completely different technologies, I expected the two drives to be somewhat different in capacity. Most of the time, a few megabytes bigger or smaller wouldn’t make a big difference. But for a blind copy to succeed, my SSD must be at least as large as the HDD. If the SSD is even one byte smaller, the blind copy would fail.

Here’s the drive removed from Xbox and installed in my Ubuntu tower, as per “fdisk -l” command.

Disk /dev/sdb: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC WD5000LPVX-2
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

And here is my candidate for replacement SSD. It was bought a few years ago, from Western Digital’s economy class “Blue” line. This model number WDBNCE5000P is no longer available, its current-day successor to the title of “WD Blue 500GB SATA” appears to be model WDS500G3B0A (*)

Disk /dev/sdc: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC  WDBNCE5000P
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Oh wow, capacity of these two drives matched perfectly down to the byte. I didn’t expect that. Was this pure coincidence or is there some other factor at play? I noticed both are Western Digital drives, did that help? No matter, I took the perfect capacity match as green light to proceed and launched my blind copy with the following command:

sudo dd if=/dev/sdb of=/dev/sdc bs=4K status=progress

It took a little over three hours to copy because hard drive throughput dropped as copy progressed. It started at well over 100 megabytes per second, but towards the end it was barely copying 1-5 megabytes a second. I don’t know why. Disk fragmentation was the only hypothesis I had, and that shouldn’t be an issue in a blind copy. My best guess is that 4 kilobytes is not the optimal block size despite it listed as “optimal” I/O size above.

I connected everything together, many components loosely dangling, and pressed the power button. 38 seconds later, I saw the initial setup screen. That’s almost half of HDD boot time of 64 seconds! I connected to my Microsoft account and retrieve a few of my digital purchases, which all ran without complaint. And even better, the SSD made this a much more responsive Xbox console. It didn’t make a difference once a game was up and running, but the SSD helps us get into the game or switch levels much faster. Less waiting, more gaming! This was a win and it emboldened me to perform an SSD upgrade with my Xbox One X as well.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Xbox One Hard Drive Extracted

I’m taking apart my Xbox One (2013) for two potential projects: first is to see if I can improve its performance by upgrading its spinning platter hard drive to a flash memory solid state drive. The second is to take a look at the components within to see if I can build a slimmer “Luggable” Xbox gaming console.

On the hardware side, I referred to iFixit guide for replacing an Xbox One HDD. The guide also linked to information on how to format and partition the new drive, but I’m not going to mess with the file system. My preparation consisted of telling the Xbox to do a system reset and clear all of my personal data off the drive, just in case I make a mistake. I hope it also increases the odds of success. Some people who have tried messing with Xbox system partitions reported problems that may have been correlated to having an active account on the system. Maybe data on disk are encrypted with information related to the account? I don’t know and I’m not going to mess with it. I’m starting with a fresh slate.

After I reset the system, but before I tried opening it up, I timed the boot-up sequence. There were 64 seconds between the time I pressed power button to the initial setup screen. I will use this as my benchmark for SSD performance impact.

While following iFixit excellent directions taking the case apart, I see my biggest challenge for a “Luggable Xbox”. Its front panel controls are on a thin sheet of printed circuit board. Including eject button for the now-dead optical drive (don’t care) tactile button to pair a controller (important) and capacitive touch power button (very important). This custom piece of flexible circuit is securely encased inside the front panel, composed of multiple pieces of hard plastic held together with melted rivets. Freeing without damage would be difficult, and capacitive touch calibration is sensitive to surrounding environment. If I remove it from this panel, the power button touchpad may never work again. These are risks I have to keep in mind if I want to build an alternative enclosure.

Putting “Luggable Xbox” project idea aside for today, I finished extracted the original hard drive to see if it is compatible with my SSD upgrade candidate.

Opening Up My Xbox One

Learning how to configure automated updates in Ubuntu was just the latest adventure in open-source operating system, every adventure a chance to learn something new. And now for something completely different: the locked down black box of an Xbox One game console. This is an Xbox One, no “S” or “X” suffix, the design that launched just before 2013 holiday season bundled with a Kinect 2.0 sensor bar.

I’ve been curious about whether an SSD upgrade might transform an old Xbox One the same way SSDs could transform old Windows PCs. Unfortunately, the locked-down nature of a game console makes this more troublesome than a PC. I didn’t want to mess with Xbox disk contents which have been obfuscated in the interest of tamper-proofing the system. My best bet is to perform a low-level sector-by-sector copy to transfer bits directly from HDD to SSD. A blind copy has the highest prospect of success, but it comes with caveats:

  1. We can’t tell valid data from unused space. Absent this knowledge, every bit is equally important and must be copied. The SSD must be at least as large as the HDD to hold everything.
  2. Without knowledge of partitioning schemes, we can’t update them. Thus Xbox games would be unable to take advantage of any extra space. (It’s not wasted, technically speaking, as extra flash memory would be useful for wear leveling and similar SSD housekeeping.)

Given the space requirements, I would need a 500GB SSD to replace the 500GB HDD in my Xbox One. A few years ago, it would have been far too much money to spend just for laughs. Too expensive to just leave sitting in an old game console. I had to wait until SSDs got cheap enough for me to upgrade other machines and let the chain of hand-me-downs free up a 500GB drive for exploration. Fast forward to today, where name-brand high performance 1TB SSDs can be found for well under $100 USD. Plus, I also recently learned to perform low level copy in Linux. All the required pieces are now in place.

I also had another motivation to take apart my Xbox One and look inside. I thought it would be fun to build a “Luggable Xbox” from the guts of this machine and wanted to investigate its components. The optical drive has failed, so I wanted to remove it. Could I design and make a slimmer box to contain what’s left?

With those two goals in mind, I started taking my Xbox One apart.

Mystery Slot in Xbox Series X Packaging

In the video game console market, I am definitely on Team Green of the pie chart going all the way back to the original Xbox. Right now, the Xbox hardware product line is split into two: the expensive Series X with maximum power and the Series S which made design tradeoffs for affordability. Supplies of both were hampered by global electronics supply chain disruption at launch. I wanted a Series X but I didn’t want it badly enough to pay a scalper premium. The Series S got sorted out and has been widely available for several months, and I was happy to find that the supply of Series X is just starting to catch up to demand. During this year’s Black Friday sales season when everyone was out looking for discounts, I was just happy to find Series X available at all for list price. (There were discounts on Series S, but I was not interested.)

When I flipped opened the box, I was happy to see that Microsoft put some design effort into its packaging. The unboxing experience isn’t up to the premium bar set by Apple & others but a far step above the “sufficient and practical” packaging of past Xbox consoles. The console itself is front and center, wrapped like a gift under a “Power Your Dreams” banner. A cardboard box behind the console held a power cable, a 4K120FPS capable HDMI cable, and a single Xbox controller complete with a pair of AA batteries.

Underneath the console, between two blocks of packaging foam, is a piece of cardboard. This turned out to be a “Getting Started” card for those too impatient to read a manual.

The bottom of that card has a fold, and a rounded slot was cut out of it. Why is it shaped like that?

Making this fold and cutting out that slot consumed manufacturing time and money. This was definitely an intentional design choice, but I can’t tell what its purpose could be. The information printed on the card is specific to Series X, so the cutout wouldn’t have been used elsewhere and just went unused here. I thought maybe it was supposed to help hold it somewhere in the box so we could see it when we flipped it open, but this card was just lying in the bottom of my box. The “Power Your Dreams” banner is front and center, so that’s not the location for this card and (2) I don’t see anything for that slot to fit onto elsewhere.

The rest of the package is too well thought-out for this slot cutout to have been an accident, yet it went unused. I can smell a story here, and I am fascinated, but I have to accept that I will never know the answer.