Windows CE.NET Ported to Xbox
Cutriss writes "Caught this over at Xbox Scene - Windows CE.NET 4.2 has been ported to the Xbox. Artifex, one of the developers of this project, says the following about the status of development: '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).' It's a 100% legal distribution, but you'll still need a modded/exploited Xbox in order to run it. Screenshots hosted by Xbox Scene can be found here(1) and here(2)."
Windows CE.NET 4.20 on the Microsoft Xbox *updated*
.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.
>> 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
-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/h owtobuy/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.
For those not in the know, if you open the article first, and while viewing it, paste the image URLs (right click -> copy shortcut) in your address/location bar. You must be viewing the article before you paste them in your address bar.
Actually... Windows 2000 only runs under a port of bochs, or under vmware in linux.
This is the first time a windows kernel can be run NATIVE on the box.
Why?
Because it was fun.
--Artifex
http://pictures.xbox-scene.com/4/wince/Xbox_wince. JPG b ox.jpg
and
http://pictures.xbox-scene.com/4/wince/WindowsCEx
_Michaelangelo_
I think he's talking about his PDA.