
Xbox and Windows NT 3.5 source code leaks online - theBashShell
https://www.theverge.com/2020/5/21/21265995/xbox-source-code-leak-original-console-windows-3-5
======
saddlerustle
Trash article.

The Xbox code leaked in 2004 and was passed around extensively. You can find
public download links from even ~2010. This was discussed in the popular 2005
CCC talk:
[https://events.ccc.de/congress/2005/fahrplan/attachments/591...](https://events.ccc.de/congress/2005/fahrplan/attachments/591-paper_xbox.pdf)

The Xbox OS isn't "a custom version of Windows 2000". They took the networking
stack and a couple other bits from NT, but otherwise it was built from
scratch.

XQEMU hasn't "struggled to emulate the original Xbox OS and kernel" \- it's a
low level emulator and thus just emulates the Xbox hardware with no knowledge
of the OS.

~~~
temac
> The Xbox OS isn't "a custom version of Windows 2000". They took the
> networking stack and a couple other bits from NT, but otherwise it was built
> from scratch.

From the whole Win2k obviously not, and it is common for journalists to not be
very precise, but at least the kernel seems to have tons of architectural
similarities with the NT kernel, and I would not be surprised if it was a
derivative?

[https://xboxdevwiki.net/Kernel](https://xboxdevwiki.net/Kernel)

I also found
[https://books.google.fr/books?id=-8YlaRclj2gC&lpg=PA603&pg=P...](https://books.google.fr/books?id=-8YlaRclj2gC&lpg=PA603&pg=PA603#v=onepage)
and that's pretty much what I expected. But nobody who knows the difference
about kernel vs. whole windows OS think that they would take explorer.exe and
random obscure IT stuff and so over, and 150k is not crazy big, but for a core
OS kernel this is completely expected.

The high level API seems to be based on a subset of DirectX and even a few
pieces of Win32, so that's not completely unrelated either. It's obvious that
the GUI was not taken from Windows, that you won't be able to maybe install a
printer and so over, and it is probable that tons of custom code was also
written, but that does not make the relationship disappear completely.

~~~
klodolph
The scheduler is radically different and that has knock-on effects on the rest
of the OS. The OS gets a fixed time slice every frame before control is handed
back to the game. The security model is engineered to distrust the _user of
the device_ as an anti-piracy measure.

It might be a derivative, but calling at a “custom version of Windows 2000” is
absolutely wrong.

~~~
temac
There are also custom scheduling policies in the XBox One IIUC. I agree that a
“custom version of Windows 2000” for the original XBox is wrong, but it is not
extremely consequential in this article, I can see where it comes from, and I
don't think its erroneous enough for it to be a big deal to be presented like
that to the public; only experts will find the distinction interesting.

Saying it is a custom version of Mac OS, I would call it _absolutely_ wrong.
Here, just wrong is enough :p

------
lawl
I'm starting to think leaking the code for an old console could be a pretty
cost-effective way to get an emulator.

I'm pretty sure I've heard of companies using open source emulators for
backwards compatibility with old consoles/selling 'classic games' before.

~~~
cdolan
You may be thinking of Nintendo. They packaged up a Super Mario ROM from the
internet and sold it on their classic games store.

[https://youtu.be/zR1uEwjx7VI](https://youtu.be/zR1uEwjx7VI)

~~~
jsmith45
That proof is utter nonsense.

Sure Nintendo might have just downloaded the rom, but they may have:

1) just concatenated the prg and chr roms and added an iNES header so they
could validate in third party emulators. (Likely extra helpful for games where
they were developing anti-epilepsy patches, since third party emulators have
some really nice debugging tools.)

or

2) Used a third party cart dumper that adds the iNES header, because it was
faster and easier than setting up a 3.5 inch floppy drive to try read the
original rom from the archive. (And much faster than retyping in hex dump
printout from the archive).

~~~
thristian
or

3) hired one of the iNES developers to develop their emulator, who kept using
the file-format they were familiar with.

[https://news.ycombinator.com/item?id=22756156](https://news.ycombinator.com/item?id=22756156)

~~~
woodrowbarlow
great detective work there!

------
projektfu
I'm trying to think of a good use case for exploring the NT 3.5 source code
but I can't really think of one. It had the Windows 3 user interface and a
number of enterprisey things like telephony (TAPI) and UPS control, but was
overall pretty bare-bones.

I remember a few quirks. I lacked a CD drive and borrowed one to install NT
3.51. When I gave the CD drive back, NT wouldn't boot. It turns out that it
installs ATAPI.SYS if you have a CD, which won't boot without it. It installs
ATDISK.SYS if you don't have a CD.

System administration was pretty clumsy. I really began to appreciate the text
file based UNIX philosphy over the point-and-click Microsoft approach. I had
been dual booting NetBSD and OS/2 2.1 before that.

Nonetheless it was solid compared to Windows 3.1 and 95. Perhaps being limited
to what it was, it'd be easier to study the native api and how it was being
accessed by the several subsystems (Win32, OS/2, POSIX). A much lighter
version of NTFS was running on it. I remember at the time you needed a windows
source license to write a filesystem driver. I was using Visual C++ 4.0.
100Mbit ethernet was fast for the time and I was a little jealous of people
using 155Mbit ATM.

------
win35nt
I'd love to try and have a go at compiling the NT3.5 source. What tools would
I need? There are Makefiles and things in the archive, but having installed MS
Visual C++ 6.0 in a Windows 2000 virtual machine, it still seems to be lacking
commands like "build" and "nmake" which are referenced in these files... Does
anyone have pointers?

------
HerbsMan
Where is the xbox code?

------
tinus_hn
Didn’t the NT code leak more than 10 years ago already?

~~~
icegreentea2
That would be the partial W2k and NT 4 leak mentioned in the article?

This dump seems to be full code + full build environment, which seems pretty
extraordinary.

------
BruceEel
What if a Microsoft developer gets her/his hands on the leaked NT 3.5 code and
secretly starts working on setting Windows 10 straight...

~~~
MaxBarraclough
Little chance of that. They still haven't even fixed the start menu search.

I open up the start menu, type 'vlc', and get no matches. I close the menu,
reopen it, and try again. This time, it finds VLC no problem.

They've had almost 5 years to fix this.

~~~
lutte
What mystifies me is that the core of the OS is actually pretty good. I've
never had any issue like a blue screen since a decade ago. The kernel and
driver subsystems are rock solid. Had a few occasional GPU driver crashes but
those are mostly the fault of the driver devs and they don't cause a system
reboot since Vista.

Why is the userland so bad in comparison? are they employing much worse
developers to take care of the windows explorer/search/browser side of things?
it is true that if you really try to pay attention you will notice many quirks
and bugs here and there in the user interface interactions, with the start
menu search being such a horribly visible offender (also bugs in the explorer
search box).

Microsoft managed to make a uniform looking user interface for both win9x and
XP/Vista/7, why are they having so much trouble with Windows 10 control
panels?

~~~
MaxBarraclough
Agree that Windows 10 seems to get the difficult stuff right. Stability,
security, advanced graphics infrastructure, and very impressive backward
compatibility with old binaries. Also agreed that the new control panels are a
trainwreck, offering no advantages whatsoever over the old control panels
they're trying to (very gradually) replace.

It's also incredibly bloated. Gone are the days when a few gigabytes would be
enough for your Windows partition.

~~~
csharptwdec19
Minesweeper from the Microsoft store is bigger than a standard Win98 install.
:)

~~~
MaxBarraclough
The original Xbox had 64MB of RAM, with no dedicated graphics memory.

The Microsoft Teams chat application uses 200MB to 550MB of RAM when idle.

My all-time favourite example of high-density software is Super Mario 64,
which weighs in at 8MB.

~~~
blattimwind
.kkrieger is a full 3D shooter in just 96K (needs slightly more than 96K of
memory to run)

~~~
MaxBarraclough
That's a good example from the demoscene, but that was done as a tech demo,
rather than as a serious commercial product. To illustrate the bloat of modern
software, I think it's better to point to examples of highly compact 'real'
software.

Of course, a great deal of effort must have gone into squeezing it down to
8MB, and it wouldn't be reasonable to ask modern developers to go to those
lengths, but still.

------
skookum-skuad
Who cares? I had the full NT 5/W2k codebase and have seen the NT 4 codebase.
3.5x is such a Windows Vista between 3.1 and 4.0.

