254 pointsby zdw8 days ago15 comments
  • sillywalk6 days ago
    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

    • cloudbonsai5 days ago
      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.

      • toast05 days ago
        > 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.

        • classichasclass5 days ago
          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...

          • seltzered_5 days ago
            FWIW I had one of those IBM Power Series workstations, and Windows NT was installable via CD-ROM.

            Considering I had no idea how to use AIX then it was nice to have a machine with a Sound Recorder application (probably to hook up to a cd player and play to a tape recorder), the ability to play canyon.mid, run MS Paint, and change the cursor to an animated horse. That's what workstations are for right?

        • ndiddy5 days ago
          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-...
          • yjftsjthsd-h5 days ago
            > 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.

            • twoodfin5 days ago
              A (dual?) Alpha workstation was Linus’ daily driver for a while, IIRC.
          • my1235 days ago
            2210 isn't a Windows 2000 build even, but a Windows XP prerelease
      • roywashere5 days ago
        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 :-)
        • sumtechguy5 days ago
          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.

          • RajT885 days ago
            And why? We can see that a number of those architectures eventually got a WindowsCE release.

            Notably the Dreamcast ran WinCE on SH4 CPU.

            • asveikau5 days ago
              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.
            • dfox5 days ago
              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).
            • sumtechguy5 days ago
              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.

            • 5 days ago
              undefined
          • RobotToaster5 days ago
            Wait, does that mean there's a risc-v version of windows?
            • p_ing5 days ago
              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.

            • cokernel_hacker5 days ago
              It was almost certainly added in order to support EFI which uses PE/COFF format binaries.
        • jasongill5 days ago
          Windows NT for Alpha was quite popular, second only to Windows NT for x86
          • mc325 days ago
            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.
            • zdw5 days ago
              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.

          • themadturk5 days ago
            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.
          • asveikau5 days ago
            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.
            • wcfields5 days ago
              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/

            • trentnelson5 days ago
              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.
        • hawflakes5 days ago
          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...

      • mavhc5 days ago
        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
        • bombcar5 days ago
          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.

      • kridsdale15 days ago
        Did MSFT use this as a basis for The Xbox360 kernel?
        • twoodfin5 days ago
          ChatGPT confirms my recollection: No, Microsoft developed a novel kernel and hypervisor for the 360, before moving back to a Windows kernel for the Xbox One.
          • philistine5 days ago
            At some point, the people like me will stop answering you dumb-dumbs who insist on trusting a machine whose purpose is spouting believable nonsense. Today is not that day, for it took me two minutes to get an answer, but instead of the couple of seconds yours took, mine is fucking RIGHT: The Xbox 360 is a heavily modified Windows 2000 kernel.

            https://en.wikipedia.org/wiki/Xbox_system_software#Xbox_360_...

            • Mogzol4 days ago
              It blows my mind that somebody would get an answer from ChatGPT and post it here as a fact without doing the bare minimum to verify that it is actually true. It's insane, thanks for correcting them.
              • philistine4 days ago
                Gaming history is already filled with half-truths and straight up misunderstood things turned into lies because no one cares to write about anything but the players' perspective. Of fucking course the useless LLMs are going to start hallucinating bullshit when they try to navigate that.
            • twoodfin4 days ago
              The question was whether Microsoft reused their NT 3.5 era PowerPC kernel (& presumably some modification of the HAL).

              If you can find evidence that’s the case, I’m intrigued.

              • wolrah3 days ago
                > If you can find evidence that’s the case, I’m intrigued.

                If you can find evidence supporting the useless information you posted, I'm intrigued.

                LLMs are not sources of information and never will be. No one cares what ChatGPT thinks about anything. It's not helpful to post that, and especially not to then act like it's correct unless someone else has proof otherwise.

              • philistine4 days ago
                Why would I engage with you? You trust Large Language Models! I gave you a bit of time earlier, but that was more than enough. I don't suffer fools twice.
    • 5 days ago
      undefined
    • ge965 days ago
      crazy no image in the readmes
      • ChrisRR4 days ago
        You can always submit a pull request
  • rvnx5 days ago
    Nobody asked for that, I love it, this is brilliant, and like art.
  • jchw5 days ago
    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.

    • ndiddy5 days ago
      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
      • jchw5 days ago
        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.
    • hawflakes5 days ago
      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

      • fredoralive5 days ago
        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.
        • cbm-vic-205 days ago
          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.

        • hawflakes5 days ago
          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.

    • unixhero5 days ago
  • whalesalad5 days ago
    I can finally live my dream of running a domain controller on my gamecube
    • mdaniel5 days ago
      I would guess Linux + samba4 will be a much more full featured domain controller than any copy of NT anything. So, in that way, you always could
  • wicket5 days ago
    Possible HN bug here. This URL was posted 3 times[1]. Aren't reposts normally marked automatically as duplicates?

    [1] https://hn.algolia.com/?query=Windows%20NT%20for%20GameCube%...

    • mdaniel5 days ago
      You/I wish; no, it's just some posts that win the front-page lottery and the rest get flagged, and if flagged enough times (or by enough karma?) they get marked [dupe] by (presumably) dang

      In the case of split lottery, someone emails hn@ycombinator.com and one setq [or update statement] later the threads get merged

  • anaisbetts5 days ago
    This is an insane amount of work, holy crap
  • jeffbee5 days ago
    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.
  • badgersnake5 days ago
    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.
    • fredoralive5 days ago
      On the Wii I believe USB is mostly handled by the ARM "starlet" processor and it's IOS software, rather than the PowerPC.
  • LetsGetTechnicl5 days ago
    I know what I'm doing later today!
  • dark-star5 days ago
    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 :)

  • nwroot5 days ago
    This is pretty awesome
  • jakupovic5 days ago
    Great work!
  • rambojohnson5 days ago
    why
    • tombert5 days ago
      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.

    • plun95 days ago
      cause
  • rickdeckard5 days ago
    [flagged]
    • ljf5 days ago
      Hackers got to hack?

      While my technical exploits are no where near this - I love reading about people doing odd and difficult things for fun.

      (As a young teen who was obsessed with Road Rash on the Sega Game Gear, I wrote down every single save code, after every game I played, along with what I had (bike, level and cash) - after a week or so of doing this I worked out the save code and was able to give myself any level, bike or money by manually tweaking the code. I am sure that I am not the only person that discovered this, but at the time I felt like a god and enjoyed racing the later levels with the worst bikes etc. - sometimes it's just fun to do something because you can.)

      • rickdeckard5 days ago
        See, that's what I actually mean :)

        I expanded in a sub-comment: I am not challenging that it was done, I would like to hear about the motivation to do it.

        There's no purpose for the result described on Github, and also no background why it was done.

        I have no value to run Windows NT on a Gamecube, but I would surely enjoy the story on why it came to be :)

    • yyyk5 days ago
      To port advanced new games like Minesweeper and Solitaire to their Gamecube. Freecell is indispensable of course.
      • pjmlp5 days ago
        How could you forget about Pinball?!?
    • aussieguy12345 days ago
      Because they could
      • rickdeckard5 days ago
        And I like that, I'm just literally missing a small intro on the motivation at the GitHub page.

        Either way, always nice to read the chain of thought which drove someone to do something- :)

    • goosedragons5 days ago
      To run Office 4.2 and browse the web in Internet Explorer?
      • Paianni5 days ago
        There were native builds of Word and Excel for Alpha that came with 4.2 and 97, but nothing else non-x86 except for the 'pocket' versions that came with Windows CE.
      • eMPee5845 days ago
        unless.. HTTPS everywhere x D
        • fredoralive5 days ago
          There are proxies for that.

          The page doesn't seem to mention the Gamecube Ethernet card or the Wii's Wi-Fi support, so it might not have any working networking, so that might be a more important issue.

  • bsimpson5 days ago
    <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.

    • pdntspa5 days ago
      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_ing5 days ago
        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/.

        • alexjplant4 days ago
          I got a Dreamcast a few months ago and fired up Ducati World with great anticipation. The coolest part of the game ended up being the Windows CE logo on the boot screen... Moto Racer it certainly ain't. I immediately fired up Rez for some EDM-scored mainframe hacking to wash away the disappointment :-D
        • bsimpson5 days ago
          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).
          • toast05 days ago
            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.

          • p_ing5 days ago
            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