Xbox 360 Silverlight runtime inventory¶
Survey of the 79 Games on Demand packages extracted with
tools\Expand-GodPackage.ps1. 68 of them are Silverlight apps (they ship
agcore.dll). The rest are native apps (Last.fm, ESPN, MLB.TV, Video Kinect
and similar) that only use a few small XEX files. The raw data is in
app-inventory.json and comes from
tools\Get-AppInventory.ps1.
What every Silverlight app carries¶
Each app ships the whole platform next to its own code:
| Piece | Files | Role |
|---|---|---|
| XamlHost | default.xex |
Native host the console launches. Reads AppManifest.xaml, loads the CLR and Silverlight, services Xbox calls (gamer services, storage, audio, media). |
| CLR | xcoreclr.dll |
The .NET runtime. Compiles IL itself when an assembly has no native image. |
| Silverlight core | agcore.dll, npctrl.dll, captions.dll |
Rendering, XAML, media, networking (through xam's XHttp). |
| Framework | mscorlib, System*, Microsoft.Xbox*, Microsoft.Web.Media.SmoothStreaming |
IL assemblies plus .ni.dll Xenon native images. |
| Data | fonts, SystemSounds, Config\machine.config, nuisp* speech databases, NuiIdentity.bin.be, Database.xmplr |
Platform resources. |
All framework assemblies report assembly version 2.0.5.0 and the
deployment runtime is 3.0.40818.0 (Silverlight 3), so the real differences
are in build dates and file versions.
Runtime generations¶
| CLR build | XamlHost SDK | Apps | Notes |
|---|---|---|---|
| 2011-09-29 | 2.0.20951 | Xbox LIVE Dailymotion | Oldest. |
| 2011-11-09 | 2.0.21076 | 35 apps incl. YouTube, Netflix, Hulu Plus, Disney XD | Launch wave. Framework 3.7.60901 / 4.1.11119. |
| 2012-03-08 | 2.0.21076 | Fox, NOW TV, GameSpot TV, Sony Pictures | |
| 2012-05-09 | 2.0.21173 | CNET, Blip, WSJ, Quickflix, Mustang Customizer, ... | |
| 2012-07-18 | 2.0.21173 - 2.0.21256 | 21 apps incl. Vimeo, GameTrailers, MTV, Plex | Last CLR build (file version 4.0.338.9242). |
Every CLR build decompresses to the same 4.8 MB image; the 1.6 MB vs 4.8 MB
file sizes only reflect XEX compression. None of them ship a separate
xclrjit.dll, yet they run IL with no native image (see below).
Newest and most complete: Plex (Dec 2013)¶
| Component | Plex | MTV (May 2013) | GameTrailers / Vimeo (Nov 2012) | YouTube (Nov 2011) |
|---|---|---|---|---|
| XamlHost SDK | 2.0.21256 | 2.0.21250 | 2.0.21250 | 2.0.21076 |
| agcore / npctrl | 2013-12-17 | 2013-05-30 | 2012-11-08 | 2011-11-19 |
| CLR / mscorlib | 4.0.338.9242 | 4.0.338.9242 | 4.0.338.9242 | 4.0.337.5446 |
| System.Windows, System.Net | 4.1.31216 | 4.1.30530 | 4.1.21107 | 3.7.60901 |
| Microsoft.Xbox, .Core, .Services, .Storage | 4.1.31216 | 4.1.30530 | 4.1.21107 | 3.7.60901 / 4.1.11119 |
Plex has the newest build of every platform component and all the commonly
used framework assemblies, so the SDK's default runtime profile
(runtime\plex-2015) is made from it. Assemblies only a few apps carry:
| Assembly | Where | Notes |
|---|---|---|
Microsoft.Advertising 5.2 |
37 apps | Ad SDK, needs xadvertising.xex. |
Microsoft.Xbox.Sample.* |
~38 apps | Microsoft's sample media app framework (UI, player, models). |
Microsoft.Xbox.Epg |
Revision3, WWE | Program guide. |
Microsoft.Xbox.Extensions |
Netflix | |
System.Xml.Serialization |
EPIX | A reference assembly only: the code is in System.Xml.dll. |
XBoxLiveLV |
YouTube | LIVE sign-in helpers. |
These are app-level libraries, not part of the platform; a profile can carry them if an app needs one, but they aren't included by default. Assemblies in other donor apps lists all of them, with the apps carrying each build.
Native images are optional¶
The Xbox CLR runs an assembly's IL when its .ni.dll is missing. YouTube
with YouTubeXBoxApplication.ni.dll removed still runs its own startup code
(the xbox_startup ping to youtube.com), and the SDK's sample app runs with
no native image at all. Framework native images are kept because the
platform ships them and they load faster.