I'm using this thread to pull together related info from disparate threads in this and other forums. I hope no one minds, but I think the whole may be more than the sum of the parts.Overview:
The XBOX 360 console can run games from the M$ console that proceeded it, the XBOX. This is known as backwards compatibility
. Due to major hardware differences between the two consoles, on the X360 this is achieved by software emulation
of the legacy XBOX. Software emulators 'interpret' the legacy program's code and ensure the host produces the same effect.
Quote from M$'s article "Q & A: Backward Compatibility
An early version of the emulator that supports Halo®: Combat Evolved and Halo® 2 offline is included on Xbox 360 Hard Drives right out of the box as a special bonus to devoted fans of the franchise. However, to play Halo 2 online, or to play any other titles on the launch list, the full emulator update is required.
This quote informs us that
- 1) M$'s XBOX software emulator is incomplete.
- 2) M$'s XBOX software emulator is updateable.
Shipping incomplete mandated that the emulator needed to be updatable, but why is it incomplete? Emulation of another platform (i.e. XBOX), is very challenging. Recall that the emulators purpose is to interpret and 'synthesize' the user experience the customer would have enjoyed on the original XBOX. The quantity and diversity of XBOX titles each make different demands of the emulator. Thus the sensible approach is develop the emulator incrementally
; building in support for more and more titles as each new 'demand' is encountered.
Of course, multiple titles may make identical demands, so once one is supported, the remainder will be also. But don't be mistaken into thinking that titles from a genre, such as RPG, or FPS, would make common demands. In fact the reverse is true. Market forces dictate that titles published into a crowded genre need to outshine their competition. This is typically achieved by being technically diverse
(a.k.a. "pushing the limits").
Better estimation and categorisation of the emulation demands of a title can be made based on the XDK with which it was developed. Subsequent XDK releases introduced new, richer, functionality. Thus titles that were developed in the same time period are more likely to make common demands.
A second quote from the article quoted above:
As we focused on the top sellers, we discovered that many other games worked due to similarities in their technology. As an added benefit, games that share engines and technology have been in some cases easier to certify for backward compatibility and have made the launch lineup as a result.Background:
Most software today is written using calls to libraries
of existing code, sequenced by a primary process. These libraries contain pre-written and tested code to perform common activities (such as playing WAV sound files, or draw shapes on the screen). Use of such libraries makes software development rapid. The M$ XDK provided a wealth of such libraries, allowing title developers to focus on their "primary process" - their
Once support for specific a library is added to the emulator, all the titles using that specific library move one stage nearer being supported. Once all
the libraries a title relies upon are supported, the title has a good chance of working.Technical:
The Windows utility deXBE
can open an XBOX executable XBE file, and reveal the libraries it uses.
It's easy to imagine M$ writing a similar utility to scan all the XBEs for details of the XDK libraries utilized and built up a 'title library requirements database'. As soon as they're confident a specific XDK release of a library is supported by BC, any titles whose 'total library demands' are now met are cleared for retest on X360. Although most titles would have a very good chance of working fine, some may still fail for a variety of technical reasons, and would be pulled for targeted diagnosis. Others 'appear' to be working and pass the inspection, but are later found to have issues. As is evident here
and here (quoted below)
The original list was composed of 213 games and was unveiled on November 11, 2005 on the Xbox.com website; however, games have been subsequently removed due to bugs. The following 13 games have been removed from the list: Catwoman, Codename: Kids Next Door, Curse: The Eye of Isis, NBA LIVE 2003, Sid Meier's Pirates, Star Wars: Clone Wars, Blinx 2, FIFA World Cup 2002, Grabbed by the Ghoulies, Legends of Wrestling, Mortal Kombat: Deception, and Rugby 2005.
Although checking if an XBE's libraries are supported by BC could
happen on the X360 console itself, it's more practical (and provides greater control) if all this work happens back at M$, and the X360 BC updates simply amend a list of supported XBE title IDs in the X360's backwards compatibility database (believed to be the TDBX\Tdbx.db file on the X360 HDD). (At >150MBs the TDBX\Tdbx.db file obviously contains more than just
the XBE title IDs! Given that length, it probably contains necessary patches/detours to specific XBE libraries that are applied between the emulator loading the XBE, and it beginning execution.)
That said, some titles not on the official BC list
are known to work, most notably, the menu systems on the OXM demo disks. Gathering library information for the titles the emulator currently supports could be an interesting exercise, and provide hints toward additional titles that may also work.Future:
Deconstructing the TDBX\Tdbx.db backwards compatibility database file could be a revealing exercise. It may list additional titles that could be played. Eventually understanding of this file may also facilitate the injection of new titles - permitting all sorts of mischief
A possible step toward interpreting this file would be to incrementally install each of the downloadable BC updates, and use a hex editor to examine the file following each update.
This is just what I am planning to do - as and when time allows.
In order to avoid a false start, I'd like to ask a few questions here.
Do the X360 Backwards Compatibility updates, when installed from CD, update the firmware at all, or is their 'effect' limited to the HDD? (Read on for how to determine.)
My X360 is as stock and has firmware 2.0.1888.0. (To view this information simply go to your dashboard. Then go to the system tab. Next go to console settings. Then go into system info.)
Has anyone else not gone
on XBOX!Live yet, and only used the downloadable
BC updates? If so, what is your firmware version? Known versions
- The Xbox 360 ships with kernel and dashboard 2.0.1888.0
- At the product launch an update was available that updated the kernel and dashboard to version 2.0.2241.0.
- An update released on January 30 2006 updates the kernel and dashboard to version 2.0.2255.0.
For completeness - IIRC There's been 2 downloadable
X360 BC updates so far.
- November 11, 2005 - supporting 213 XBOX1 games.
- December 9, 2005 - Six Tom Clancy games were added and Freedom Fighters was removed due to glitches.
These should provide 3
versions of the TDBX\Tdbx.db backwards compatibility database file:
This post has been edited by PedrosPad: Mar 17 2006, 08:39 PM
- The stock Tdbx.db file shipped on the HDD (HALO 1/2 emu only?)
- A Tdbx.db file containing the November updates
- And, a Tdbx.db file containing the December updates.