Reverse Engineering the Xbox 360 SVOD file format


Back in October of 2018 I began contributing to the open-source Xbox 360 Emulator research project Xenia. I was focusing on creating a new, cross-platform GUI for it when I learned that it wasn’t yet able to launch Games on Demand or Digital Download titles. There was a bit of groundwork in place, but it wasn’t operational.

I spent about 50 hours researching other projects and stepping through a debugger with my Jtagged Xbox 360, and was able to provide a working solution that seemingly covers all cases when working with SVOD systems. I have thus compiled my research into this post in hopes that someone with a similar problem can use my information. All code present in this blog post is available on Github, and at the time of writing, the code is still pending as a pull request.

Continue reading “Reverse Engineering the Xbox 360 SVOD file format”

ICloneable: Why you should never use it.

Ask just about any developer and they will agree that cloning objects is a pretty standard practice. C++ has its copy constructors, …, and C# has it’s…ICloneable interface?

Okay, seriously, what is the deal with this thing? Is it supposed to perform a shallow copy, or a deep copy? Why doesn’t it output a cloned object that is strongly typed? Why is a half-completed interface a part of the .NET framework? Who allowed for this to be merged into the master branch? Does that person still have a job? Jokes aside, I am not the only one asking these questions. Do a simple Google search for the term “ICloneable” and you’ll find hundreds of thousands of questions all asking the same thing.

Continue reading “ICloneable: Why you should never use it.”

Fastest C# Random Number Generator: XorShift+

I constantly find myself needing pseudo-random numbers for machine learning projects. In most cases, the built-in .NET Random class is perfect for this type of thing. For high-performance or type-specific application… not so much. It’s bad enough that Random is limited to a handful of types. It’s even worse from a performance standpoint. For those who need to generate pseudo-random data hundreds of millions of times per second, Random simply won’t cut it.

When implemented, XorShift+ is one of the fastest C# random number generator out there. It even passes the BigCrush statistics tests, meaning it generates a superb distribution of pseudo-random numbers.

Continue reading “Fastest C# Random Number Generator: XorShift+”