[HN Gopher] Windows NT for GameCube/Wii
       ___________________________________________________________________
        
       Windows NT for GameCube/Wii
        
       Author : zdw
       Score  : 223 points
       Date   : 2025-03-01 17:47 UTC (3 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | sillywalk wrote:
       | The same person did NT for PowerMacs[0], which was discussed
       | earlier[1].
       | 
       | [0] https://github.com/Wack0/maciNTosh
       | 
       | [1] Windows NT for Power Macintosh (github.com/wack0)
       | 
       | 298 points by TazeTSchnitzel 7 months ago | hide | past |
       | favorite | 215 comments
       | 
       | https://news.ycombinator.com/item?id=40945076
        
         | cloudbonsai wrote:
         | It seems that Windows NT naitively supported IBM's PowerPC
         | processors (in addition to IA-32/x86). The "PowerPC Edition"
         | did not sell much, so Micorosft discontinued the support in
         | 1997.
         | 
         | Because Wii and GameCube were PowerPC-based, both can
         | technically run Windows NT. This seems to be the main reason
         | why this project was doable.
         | 
         | I think we are witnessing a historical accident materialized by
         | obscure hardware legacies.
        
           | roywashere wrote:
           | There was also Windows NT for Alpha and RISC, neither were
           | popular. And now we have yet again Windows for ARM.
           | Everything old is new again :-)
        
             | jasongill wrote:
             | Windows NT for Alpha was quite popular, second only to
             | Windows NT for x86
        
               | mc32 wrote:
               | 500Mzh vs 233Mhz, if you could afford the cooling. Maybe
               | exaggerating the gap, but I think it was pretty big which
               | contributed to the enthusiasm for DEC alpha.
        
               | zdw wrote:
               | That or more was the gap.
               | 
               | Also, "cooling" is relative - the highest power draw of a
               | 21164 Alpha is around 40-60w, which is normal to low
               | these days, but was huge back then.
        
               | asveikau wrote:
               | People forget the excitement around alpha from the mid
               | 90s. It was the first Linux port to non-x86 for example.
               | It was a little bit before the AMD vs Intel wars and race
               | to 1ghz kicked off, so it represented a challenge to
               | Intel's monopoly.
        
               | trentnelson wrote:
               | I remember my first job in 2000, straight out of 1.5
               | years of college, getting to play directly with Digital
               | UNIX and Alpha processors! The Alpha 21264 was a beast at
               | the time.
        
               | wcfields wrote:
               | IIRC: There was a bonanza of DEC Multia Alpha's[1] that
               | made it's way to some salvage seller in the late 90's for
               | like $100-ish. The catch was they didn't include RAM and
               | it had to be True Parity RAM which was fairly expensive.
               | 
               | [1] http://www.obsolyte.com/dec/multia/
        
               | themadturk wrote:
               | I remember a law firm I worked at buying an Alpha server
               | running NT to host a SQL Server database system in the
               | mid-90s. I was network admin, but we ran Netware at the
               | time an I didn't touch that machine, we had an Alpha
               | sysadmin/dba for it. I left a few months later to a firm
               | that was already running NT on its servers; learning a
               | new network OS in a stable environment was much
               | preferable to converting from Netware to NT.
        
             | sumtechguy wrote:
             | The NT PE executable format supports quite a few processors
             | families.
             | 
             | https://learn.microsoft.com/en-us/windows/win32/debug/pe-
             | for...
             | 
             | I just like the valid MSDOS stub header executable on the
             | front of every DLL and executable.
        
               | RajT88 wrote:
               | And why? We can see that a number of those architectures
               | eventually got a WindowsCE release.
               | 
               | Notably the Dreamcast ran WinCE on SH4 CPU.
        
               | dfox wrote:
               | Mostly because that format is not strictly speaking
               | Windows-specific but comes from Unix System V release 4.
               | Also various oddball embedded platforms use the full NT-
               | style PE COFF as their native object/image format (but
               | these usually either specify i386 as machine type or
               | place some invalid value there).
        
               | asveikau wrote:
               | Internally, NT first targeted Intel i860, not x86. This
               | was a deliberate decision to break old assumptions. It
               | was designed to be multiplatform from the beginning. The
               | fact that it had an NT syscall layer but also a Win32
               | one, then formerly an OS/2 subsystem, also reflected this
               | heritage of adaptability, multi-platform, portability
               | etc.
        
               | sumtechguy wrote:
               | That is controlled by this bit in the subsystem field.
               | https://learn.microsoft.com/en-us/windows/win32/debug/pe-
               | for...
               | 
               | Subsystems https://learn.microsoft.com/en-
               | us/windows/win32/debug/pe-for...
               | 
               | There are also a few others usually NE for older win16
               | and LE for OS2 and other interesting win16 overlay types.
        
               | RobotToaster wrote:
               | Wait, does that mean there's a risc-v version of windows?
        
               | p_ing wrote:
               | If there is, it isn't public. .NET does apparently have
               | RISC-V architecture support in some sense due to a pull
               | request by a Samsung engineer.
               | 
               | https://github.com/dotnet/runtime/pull/82382
               | 
               | From a technical standpoint, there's no reason Windows
               | couldn't be brought to RISC-V in some form or fashion.
               | It's designed for that portability.
        
             | hawflakes wrote:
             | Iirc MIPS was on the installation CD and possibly what the
             | team used. There was also a pa-risc port that never
             | shipped...
             | 
             | https://www.osnews.com/story/139479/windows-nt-and-
             | netware-o...
        
           | mavhc wrote:
           | NT was designed to be CPU and OS level API independent, of
           | course mainly being used with closed source software meant
           | hardly anything supported non x86 CPUs, and if you wanted
           | Unix you could just run Linux by then
        
             | bombcar wrote:
             | At the time it was in no way certain that x86 was long for
             | the world, let alone that it would take the world by storm
             | and eat almost every other CPU architecture.
             | 
             | The OS-level was much more CPU agnostic at the time and
             | programs would aim for an OS rather than an OS/CPU combo.
             | 
             | Linux preserved that for much, much longer than many others
             | (the only other big name was NeXT into MacOS).
             | 
             | Now with ARM finally "catching up" we see it growing again;
             | nothing is new.
        
           | toast0 wrote:
           | > The "PowerPC Edition" did not sell much
           | 
           | NT4 included all the supported architectures on the cd-rom.
           | You didn't buy an x86 version or a PPC version or a MIPS
           | version or an Alpha version... You just bought NT4 client or
           | server and it was all there. Microsoft may have had analytics
           | of use on ppc, but not specifically sales. OEM sales, sure.
           | 
           | More likely, no PPC oems were interested in selling NT5
           | (Windows 2000) bundled with their hardware, and so Microsoft
           | gave up on that. Alpha was supported into the release
           | candidates (and I've seen comments that builds continued but
           | were no longer distributed outside Microsoft), but Alpha
           | imploded during the release time frame.
        
             | ndiddy wrote:
             | After Compaq decided they wouldn't support Windows on
             | Alpha, Microsoft continued using the hardware for
             | developing 64-bit Windows (the previous Alpha releases were
             | all 32-bit) until Itanium hardware became available. Here's
             | a blogpost where someone goes over an Alpha 64-bit version
             | of Windows 2000:
             | https://virtuallyfun.com/2023/05/15/windows-2000-64-bit-
             | for-...
        
               | my123 wrote:
               | 2210 isn't a Windows 2000 build even, but a Windows XP
               | prerelease
        
               | yjftsjthsd-h wrote:
               | > After Compaq decided they wouldn't support Windows on
               | Alpha, Microsoft continued using the hardware for
               | developing 64-bit Windows
               | 
               | I seem to recall hearing that Linux also developed its
               | 64-bit support on Alpha.
        
             | classichasclass wrote:
             | Worse than that: other than Apple and the clones, there
             | were hardly any PPC OEMs at all, and Old World Power Mac
             | hardware wasn't PReP (which is why it couldn't run it).
             | Largely only IBM's hardware could, like the rare as hen's
             | teeth Power Series ThinkPads, or the unobtainium Power
             | Series workstations, and some of Motorola's equally rare
             | stuff. Those landed with a thud in the market and were
             | extremely expensive, and it made sense for Microsoft to
             | jettison it.
             | 
             | Apple was going to get NT on at least the Apple Network
             | Server (Ellen Hancock once claimed there would be upgrade
             | ROMs that could boot it), but that never happened.
             | 
             | Alpha, at least, had vendors, and existed in some numbers.
             | My AlphaPC 164LX [0] was made by Samsung.
             | 
             | [0] http://oldvcr.blogspot.com/2023/03/refurb-weekend-dec-
             | alphap...
        
           | kridsdale1 wrote:
           | Did MSFT use this as a basis for The Xbox360 kernel?
        
         | ge96 wrote:
         | crazy no image in the readmes
        
       | dark-star wrote:
       | Has anyone tried this on real hardware? I've searched for videos
       | on YouTube but haven't found any.
       | 
       | Would love to see it running before I go searching for my old
       | GameCube to try it myself :)
        
         | dark-star wrote:
         | To answer my own question: This looks like it is being run on
         | real hardware (with some sort of SD card adapter/loader):
         | 
         | https://www.youtube.com/watch?v=BrcZ2-I0CbQ
        
         | unleaded wrote:
         | It doesn't work on Dolphin--probably won't for quite a while
         | https://github.com/dolphin-emu/dolphin/pull/12426
        
       | rvnx wrote:
       | Nobody asked for that, I love it, this is brilliant, and like
       | art.
        
         | michh wrote:
         | I think not just like art, it is art. Making something for the
         | sake of making it, not because it serves a practical need or
         | purpose. Perhaps even _because_ it doesn 't.
        
         | qingcharles wrote:
         | Obligatory Jeff Goldblum:
         | 
         | https://bennadel-cdn.com/resources/uploads/2018/jurrasic-par...
        
       | jakupovic wrote:
       | Great work!
        
       | anaisbetts wrote:
       | This is an insane amount of work, holy crap
        
       | jchw wrote:
       | Heard about this recently. Extremely fun and interesting. Would
       | really like to try it, not sure if I should try it on a GameCube
       | or Wii.
       | 
       | I believe non-x86 versions of Windows NT came with MS-DOS
       | emulation in the form of SoftPC, at least in NT4. If anyone
       | happens to have an appropriate copy of SoftWindows to try, that
       | sounds like potentially even more fun.
        
         | unixhero wrote:
         | SoftWindows is located here
         | https://winworldpc.com/product/softwindows/30
        
           | jchw wrote:
           | That seems to be a version for Mac. However, the Windows NT
           | version _does_ seem to be on Archive.org at least:
           | 
           | https://archive.org/details/softwindows-32-powerpc-v1.01
        
         | hawflakes wrote:
         | DEC made fx!32 to allow x86 emulation on alpha only. They
         | didn't tackle ppc or mips.
         | 
         | https://en.wikipedia.org/wiki/FX!32
        
           | fredoralive wrote:
           | All 32 bit versions of NT had support for x86 DOS and Win16
           | programs, which on non-x86 systems was implemented with an
           | emulator. FX!32 was for x86 Win32 apps, which was indeed a
           | DEC specific thing, they seemed to be far more interested in
           | pushing NT than IBM or SGI/MIPS, and clearly realised that
           | they needed to run all this software being written for
           | Windows 95 to be taken seriously as a Windows system.
        
             | hawflakes wrote:
             | Both DEC and HP were pushing for NT. (I interned at dec and
             | worked briefly at HP while both were still pushing Alpha
             | and PA)
             | 
             | HP foodnote: HP had this vision of NT at the desktop and
             | HP/UX server iron. Folks preferred Solaris over HP/UX so
             | that was their idea to adopt windows. The guy at hp pushing
             | that agenda, Belluzo, eventually left and went to
             | Microsoft.
        
             | cbm-vic-20 wrote:
             | DEC was one of the few vendors who built hardware designed
             | to run multiple operating systems from day one. Alpha had
             | VMS, OSF/1 (aka Tru64, aka Digital UNIX) and NT. VAX had
             | VMS and Ultrix. The short MIPS era also had Ultrix. PDP-11
             | had RSTS/E, RSX-11, RT-11, and some early primitive OSes,
             | and late in the game, Ultrix.
             | 
             | FX!32 was really cool. The Alpha systems were crazy fast
             | compared to the Pentium systems of its time, so even using
             | the translation layer, x86 Windows NT apps performed
             | reasonably well under FX!32. The intent was to have that be
             | a stop-gap until third-party software vendors made native
             | Alpha builds of their NT apps.
        
         | ndiddy wrote:
         | One other cool project is that someone ported the SoftPC MS-DOS
         | emulation layer to x86, allowing for 64-bit Windows to run
         | 16-bit DOS software (it couldn't do this without emulation
         | because x86-64 doesn't have access to virtual 8086 mode).
         | Obviously there's DOSBox as well but that doesn't allow for
         | integration into the Windows CLI like this does, so for example
         | you can't pipe the output of a Windows program into a DOS
         | program. https://github.com/leecher1337/ntvdmx64
        
           | jchw wrote:
           | I would bet you're already aware of this, but just in case
           | you're not there was also already a Wine NTVDM port to
           | Windows, too. It's not as interesting, but it uses no
           | illegally-acquired code, so there is that.
        
       | badgersnake wrote:
       | Did they implement the whole USB stack? If I remember correctly
       | NT4 had no usb stack - USB was one of the new things in Windows
       | 2000.
        
         | fredoralive wrote:
         | On the Wii I believe USB is mostly handled by the ARM "starlet"
         | processor and it's IOS software, rather than the PowerPC.
        
       | LetsGetTechnicl wrote:
       | I know what I'm doing later today!
        
       | bsimpson wrote:
       | <but-why.gif>
       | 
       | For those that don't remember the Dreamcast, it was Sega's final
       | system before they left the hardware business. It was based on
       | Windows CE, another Microsoft OS without the NT kernel.
        
         | pdntspa wrote:
         | This isn't quite accurate... _some_ games were based on Windows
         | NT, but many others did not use that abstraction layer. The
         | console itself didn 't have an OS in the 'Windows' sense of the
         | word.
        
           | p_ing wrote:
           | Here's the list of Windows CE games on Dreamcast:
           | 
           | https://gamefaqs.gamespot.com/boards/916412-dreamcast/794530.
           | ..
           | 
           | A short list out of 556 games developed for the console per
           | https://www.mobygames.com/platform/dreamcast/.
        
             | bsimpson wrote:
             | I'm surprised it's a relatively low percentage, considering
             | the thing came with a Windows sticker (and might have shown
             | the logo while it turned on).
        
               | p_ing wrote:
               | CE came on the game disc rather than the console and
               | developers mostly preferred Sega's tooling/API.
               | 
               | This is a decent review of what happened with CE on
               | Dreamcast:
               | 
               | https://www.youtube.com/watch?v=QKHSlBi5qok
        
               | toast0 wrote:
               | The wince logo showed up while booting a wince game.
               | There's a field in the boot file where you can drop a
               | logo that gets inserted in the boot splash animation. Of
               | Sega licensed games, I think it's just blank or WinCE;
               | but for unlicensed games there's more variation, it's a
               | nice place to acknowledge the developer OS you used.
               | 
               | A sticker on the front is just branding. Image search
               | says it shows 'compatible with Windows CE' which is true.
               | Doesn't mean it was built around it, and doesn't mean it
               | was a good idea, but certainly some games used it. I'm
               | sure Microsoft could have put together Windows CE for
               | gamecube or ps2 if they wanted to, and wouldn't have
               | needed a sticker on the front... ps1 and saturn could
               | probably swing it too; you really just need to put
               | drivers around the hardware and the bios functions, and
               | maybe structure memory properly if bios functions make
               | assumptions.
        
       | whalesalad wrote:
       | I can finally live my dream of running a domain controller on my
       | gamecube
        
       | jeffbee wrote:
       | It's amusing to me that I am reading this readme and I know just
       | what they mean about this not working with NT build 944, but then
       | I wonder whether when they say "RTM" it would work with the build
       | 1037 that was common warez are the time. It was the version
       | everyone had, and if I had to rummage through closets I am sure
       | that is the only CD I would find.
        
       | rambojohnson wrote:
       | why
        
         | tombert wrote:
         | Not the person who made this, but I suspect the reason is
         | "because it's cool". I personally think that's a perfectly
         | valid reason to do anything.
         | 
         | Why does everything we do with coding have to be for a
         | practical purpose? When I play a video game for fun, it's not
         | like I'm getting anything out of it. Sometimes it's fun to code
         | up something just because you can.
        
         | plun9 wrote:
         | cause
        
       ___________________________________________________________________
       (page generated 2025-03-04 23:01 UTC)