Windows CE.NET 4.20 on the Microsoft Xbox
Date: Tuesday, December 30 @ 07:25:50 UTC
Topic: Xbox General


' Artifex & Phoenix, with the assistance and support of OzXodus has released a proof of concept '

From the readme:
-Wait wait wait.... Windows? On the Xbox?
-BULLSHIT! Everyone said it cant be done! Is this for real?
Yes, this is for real. It's a VERY early work in progress... but it DOES work. Windows CE.NET is a full, "Win32" Windows kernel, designed for embedded platforms. It can run windows applications compiled for CE, CE.NET, PocketPC, and Windows Mobile. It can also run .NET CLR apps, and (with a VM installed) Java. CE versions of Windows Media Player, Flash players, IE, MS Office, etc
etc.... This is the real deal.

-Ok, so, what can we do with it NOW?
Not much. This is just a proof of concept. The kernel starts, SOME drivers load, the GUI comes up, you can run applications. There is a LOT still to be done before it's very impressive.

-What works?
The basic kernel subsystem is in place. The IoCtl is about 90% done. ISR/IST is up and working. PCI enumeration happens properly. USB initializes and enumerates devices (but hangs if there's a gamepad connected). Mouse driver loads. Keyboard driver loads but is missing a layout, so it's not quite functional yet. A VERY simple video driver is in place (Software mouse cursor seems to be failing, so you won't see a pointer, yet).

-What still needs done?
LOTS. Most importantly, the existing 'bugs' need fixed. Keyboard layouts need put in place. The software cursor needs fixed. The date and time is not being retrieved properly... Secondly, drivers need written, ported, or simply put in place. It should be easy to work the NVNET driver in, as it's designed to be easily dropped into an NDIS/RNDIS environment. FATX should just be a matter of adapting the FAT filesystem driver. Gamepad drivers can be ported from the existing windows versions. It MAY (very speculative!) be possible to work in a 3d-accelerated nvidia gpu driver, as CE.NET includes a complete DirectX implementation.

Also, Focus support is not currently in place (lacking in xbeboot)

-Why Release now, then? Why not finish these tasks first, and then release?
I started this project on my own, and got it to this point several months ago Then a LOT of other things started to come up, both with the Xbox, and IRL. I tried to get some other Phoenix members interested, but they were also either too busy with other projects, or IRL. Since then, I've been pondering what to DO with the existing codebase. I finally made the decision to release what I have so far to the public, and see if there were interest. If there is, I'm making an open call for developers, and taking this the way of the xbox-linux project.

-Can I help?
YES! Especially helpfull would be people with embedded RTOS experience, and people with experience in writing windows drivers or with the windows driver architechture itself. Just contact me (see below) and we'll discuss what can be done. I may go so far as to set up a sourceforge project to collaborate our efforts.

-Is this legal to use? Is this legal to distribtue? Am I violating copyright if I host this?
The stage1 bootloader (XbeBoot) was taken from the Xbox-Linux project, and was written without the use of the XDK. Everything AFTER the stage1 bootloader is either my code (BSP) or CE itself. I submit my code to the world under the GPL. As far as CE itself, here is what Microsoft has to say on the subject:

(Taken from "Understanding Additional Licensing Rights", Posted: September 18, 2003 http://www.microsoft.com/windows/embedded/ce.net/howtobuy/licensing/addlicrights.asp)

"Non-commercial distribution rights grant developers the ability to install a runtime on an unlimited number of devices and distribute those devices to third parties for non-commercial purposes. These rights are applicable to both Evaluation Edition and Full Version licensees."

Further:
"A developer may create and deploy runtimes on an unlimited number of devices to share with friends as long as neither person is receiving any financial gain from the transaction."

In other words, we can all share this great peice of work freely and openly, so long as noone tries to sell it. Thanks muchly, Microsoft! :-)

-Ok, so, CE.NET is a nifty toy, and all... but can we put REAL Windows on the xbox? Like Windows XP? Well, yes and no.
This topic has been beaten to death over time, but... I'll add a little to the discussion. There is an embeddable version of Windows XP called "XP eMbedded" or XPe. It has been said time and time again that the Windows kernel will not boot without a BIOS. This is true of MOST Windows kernels, but only because their lower level functions are coded against a standard PC, and we don't have the source, obviously. With XPe, WE can provide the lower level functions ourselves, in a custom BSP, and build a custom bootloader. Preliminary experimentation shows that this WILL work, it will just take a lot of effort. Better to get the "Toy" OS up and running first, and then apply what we learn along the way to the big bad.

-How can I contact you?
Well, if you dont already know my usual haunts... You can email me at artifex@hush.ai but there's no assurance i'll ever read/respond. ;-)
Or, even better, catch me on irc.oftc.net in either
#xbox-linux or, now,
#xbox-windows

Usage - Throw default.xbe and NK.nb0 in a directory on your xbox. Plug in a usb mouse, prefferably not through a controller's hub. Launch via your preferred method. Unplug the gamepad as soon as it starts running, otherwise the usb init may hang. Some text should appear briefly, then the screen will go black for a moment. Give it 3-5 seconds, and the desktop should appear. You will most likely not have a mouse cursor, but the mouse should be functional. Keyboard will not yet work. (see below for details.) YMMV!!!

Update: Artifex has released some screenshots that users took. I have already added them to this news story (above and below).


Official Site: http://www.ozxodus.com
Download: bittorrent link






This article comes from XBOX-HQ.COM
https://www.xbox-hq.com/html

The URL for this story is:
https://www.xbox-hq.com/html/modules.php?name=News&file=article&sid=614