I ported Mac OS X to the Nintendo Wii
- rayiner - 144442 sekunder sedanNot only is this an insanely cool project, the writeup is great. I was hooked the whole way through. I particularly love this part:
> At this point, the system was trying to find a framebuffer driver so that the Mac OS X GUI could be shown. As indicated in the logs, WindowServer was not happy - to fix this, I’d need to write my own framebuffer driver.
I'm surprised by how well abstracted MacOS is (was). The I/O Kit abstraction layers seemed to actually do what they said. A little kudos to the NeXT developers for that.
- redbell - 85286 sekunder sedanExcellent project! This is one of the topics that keeps Hacker News ever refreshing. Seeing work get done in a way that feels like real hacking but in a positive way.
You might also be interested in this similar work: Installing Mac OS on the Nintendo Wii [video] (123pts, 37cmts): (https://news.ycombinator.com/item?id=37306018)
The author has mentioned earlier attempts to port other OSes to the Wii but it appears these works didn't get much traction here on HN except for Windows:
Lastly, since we are in the context of turning the Wii into a computer, I'd like to honorable mention: Hosting a blog on the Wii (622pts, 104cmts): (https://news.ycombinator.com/item?id=43754953)WindowsNT (255pts, 86cmts): https://news.ycombinator.com/item?id=43221633 Linux (53pts, 1cmts): https://news.ycombinator.com/item?id=30568676 NetBSD (4pts,0 cmts): https://news.ycombinator.com/item?id=46668959 - guyzero - 145852 sekunder sedanIn addition to the incredible engineering work here the OP casually flexes by showing the development happening _in an economy class airplane seat_.
- soci - 146485 sekunder sedanBack in the day I was a hardcore Mac nerd and became a professional at it too. My best reverse-engineering trophy was building one of the first "iOS" apps when there was not an official appstore for the iPhone.
But man, this is way ahead of what I could do. What this dude accomplished blew my mind. Not only the output (running MacOS on a Wii), but the detailed post itself. A-MA-ZING.
- knivets - 116512 sekunder sedanRefreshing to read an article with an actual engineering work as opposed to another article about AI. Great work, very inspiring!
- jmcneill - 130626 sekunder sedanAs the author of the NetBSD Wii and Wii U ports, congrats! I’m looking forward to seeing how you solved some of the problems that I faced along the way.
- devy - 104610 sekunder sedanThis reminds me the 2008-2009 era where Mac OS X Leopard was running Hackintosh on Dell Mini 9 and some other netbooks.
At $349, it was almost a fully functional laptop that runs on Mac OS X (comparing to over $1000+ MacBooks or $1599 MacBook Pros)
Two friends of mine literally working remotely in an Africa trip with Dell Mini 9 and mobile hotspots and were doing video conferencing with Skype (on Wi-Fi).
- raincole - 135337 sekunder sedan> As for RAM, the Wii has a unique configuration: 88 MB total
TIL Wii has only 88MB of RAM. Fortunately games weren't electron-based.
- NetOpWibby - 145461 sekunder sedan
I LOL'dBefore figuring out how to tackle this project, I needed to know whether it would even be possible. According to a 2021 Reddit comment: There is a zero percent chance of this ever happening. Feeling encouraged, I started with the basics: what hardware is in the Wii, and how does it compare to the hardware used in real Macs from the era. - eek2121 - 123233 sekunder sedanNeat, and kudos! Reminds me of my young hobbyist days. I wish low level dev work was that approachable now.
Back in the old days, it was REALLY easy to initialize VGA and throw pixels around in ASM, C, or C++. The 6502 and related chips were relatively easy chips to build stuff for, even though tooling was non-existent. Shoot, you could do some really awesome things on a Tandy CoCo2 and BASIC of all things.
It feels like engineering has made this type of thing inaccessible. Most systems require a ton of knowledge and expertise. There is no easy 'in' for someone with a special interest in development. Even worse, AI is artificially dumbing things down, while making things even more inaccessible.
- k38f - 139789 sekunder sedanDebugging kernel panics on a Wii in an economy seat is a level of focus I can't even imagine. Most people can't read a book on a plane without losing their place every 5 minutes.
- MarceliusK - 69946 sekunder sedanReally impressive work, and a very fun read
- drzaiusx11 - 76703 sekunder sedanI wonder what, if anything significant, has changed architecturally from osx to modern macos and how this post could be used as a guide for future porting efforts (aside from the obvious 2 CPU isa changes over the last 20 years)
- lampiaio - 138629 sekunder sedanAs someone who's been trying to do something VERY similar (port Mac OS 9 to the Nintendo Wii U), all I can say is I'm 1) absolutely impressed, and 2) absolutely encouraged, as my project keeps telling me "this is impossible" at every opportunity.
- leonidasv - 145552 sekunder sedanNice work and write-up!
A side note: you embedded .mov videos inside <img> tags. This is not compatible with all browsers (notably Chrome and Firefox), which won't load the videos.
- tom-blk - 72448 sekunder sedanHehe that's so cool, I didn't know that it was a thing to port OSes to the Wii :D
- mackid - 139910 sekunder sedanCongrats, great project and great writeup. That would have won MacHack back in the day.
Now that the MacBook Neo has an A18, I wonder if you could get MacOS running on an iPhone? :)
- stuaxo - 77228 sekunder sedanGreat work and writeup.
I wonder if the YUV conversion could be offloaded somehow to the ARM inside the Hollywood or somehow using a shader (or equivalent) if the graphics were accelerated - though maybe this is way way too much.
- gauravkashyap6 - 94886 sekunder sedanWhat stood out to me is how much of this worked because of strong abstraction boundaries.
It’s interesting because we don’t often think about OS-level abstractions in the same way anymore — but projects like this really show how powerful they are when they’re done right.
Makes me wonder how feasible something like this would be with modern systems, where things feel more tightly coupled and security constraints are much stricter.
- tiffanyh - 145949 sekunder sedanAmazing work.
If you like this story, you might also like the story of how Mac OS X was ported to Intel as well.
- tombelieber - 138940 sekunder sedanThis rules. It’s exactly the kind of cursed side quest that sounds fake until you read the writeup and realize you actually did the work.
- asimovDev - 85013 sekunder sedanI hope OP is still reading comments. I noticed that the project was written in Xcode (the repo even has the xcodeproj folder) but in some screenshots I see CLion. Did you switch at some point or were you using both throughout the development simultaneously?
Amazing writeup, love this types of blog posts and hope the hawaii trip was enjoyable
- zadikian - 139777 sekunder sedanMy favorite part of this is the detour to ask for the IOUSBFamily src on IRC
- willamhou - 112467 sekunder sedanHad a very similar issue porting a hypervisor to ARM S-EL2. Writes would succeed, there were no faults, and everything looked reasonable in GDB, but the other side never saw the data. The root cause was that Secure and Non-Secure physical address spaces were backed by different memory even at the same address, and a single PTE bit selected between them. That took me much longer to understand than I’d like to admit.
- monkpit - 147294 sekunder sedan> There is a zero percent chance of this ever happening.
Honestly, I would have said the same. Great work!
- sagoshi - 99867 sekunder sedanhand-rolled iokit drivers and a bootloader to get xnu running on 88mb of ram with cpu-bound yuv-to-rgb conversion at 60fps, all because the wii's powerpc 750cl is close enough to a g3 imac that darwin mostly just worked. solid systems work and a genuinely useful writeup but might try on a dreamcast personally. rom burns
- hoten - 130256 sekunder sedanWonderful write up, thank you for sharing!
> In the end, I learned (and accomplished) far more than I ever expected - and perhaps more importantly, I was reminded that the projects that seem just out of reach are exactly the ones worth pursuing.
Couldn't agree more. I've had my own experience porting something that seemed like an intractable problem (https://news.ycombinator.com/item?id=31251004), and when it finally comes together the feeling of accomplishment (and relief!) is great.
- rbanffy - 82064 sekunder sedanWhat's not to love? A small and beautiful PowerPC Unix workstation, something IBM hasn't done in a long, long time. How far does MacPorts go with a PPC?
- nickpeterson - 140837 sekunder sedanThe one that really bugs me is the Apple TV. It would be a great little box to use for terminals/thin client style work and there are a ton of old cheap ones. Having a $50 dollar used box that was low power and could run OSX would be great.
- unanonymousanon - 145246 sekunder sedanThis is extraordinary, not only pushing the limit but documenting everything so clearly to show people what can be accomplished with time and dedication. Thank you for such thorough documentation, and congrats on getting it done!
- hassaanr - 136850 sekunder sedanIn love with projects that are done solely because 'why the hell not'. Fantastic writeup and work.
- samtheDamned - 131823 sekunder sedanThis was an incredible read! Especially for what looks like the first post to this blog too? I wanted to subscribe to the RSS feed but unfortunately it gives a 404 error.
- fortran77 - 71352 sekunder sedanThere was a Windows NT 4.0 for PowerPC. And several people have had this running on the Wii. https://github.com/Wack0/entii-for-workcubes
Much easier to do, because of the superior, more modern architecture of Windows NT. (It's not based on Apollo-era OS like OSX is.)
- bsimpson - 136431 sekunder sedanThis is excellent.
YUV appears to be a PAL-specific color space. I wonder how off an NTSC Wii would be. Presumably it would have the wrong color space until an equivalent conversion scheme was devised for NTSC.
I was surprised to see regional color spaces leak into the project, but I presume that Nintendo's iOS (the coincidentally-named system this is replacing) could handle that abstraction for game developers.
- Eric_Xua - 97994 sekunder sedanThis writeup absolutely ruled – real low‑level hacking, great storytelling, and super inspiring.
- p0seidon - 125337 sekunder sedanThis is incredible. I wonder when an LLM will pull this knowledge out to help someone down the line who would never have had the craft to pull this off, as it requires so much depth and broad skill. Admirable.
- saagarjha - 89924 sekunder sedanReading this was the highlight of the week! I love it when people port things to places they do not belong :)
- cyrialize - 135581 sekunder sedanThe Wii is very moddable. I've modded my Wii in the past just for playing modded versions of Super Smash Brother Melee (mainly training packs, like flashing a red light when I miss an L-cancel).
- alper - 87617 sekunder sedanHow do you get good like this?
- Bubble1296 - 108875 sekunder sedanHighly respectable project. My hat's off to you. I'm just curious, what computer programming language did you do most of this in and what do you think was the most challenging part of porting Mac OS X on to the Wii console?
- OhMeadhbh - 127330 sekunder sedanPresumably this means you could also port MacOS 9 if you were okay with writing a few drivers and patching some virtual ROMs.
- MaxLeiter - 146859 sekunder sedanGreat write-up. I love hardware running software it shouldn’t support
- swiftcoder - 146360 sekunder sedanDamn, that's some dedication! Congrats on getting it running
- djsavvy - 132758 sekunder sedanI'm shocked that the Wii only has 88mb of RAM. The programmers of that era really knew how to make a lot from a little!
- AnnikaL - 130194 sekunder sedanWow! This is really impressive!
I kind of want to try some project like this sometime, but I wouldn't even know where to start...
- chrisweekly - 131577 sekunder sedanHaha, this is great. Very impressive -- and a fantastic, detailed writeup. Congrats! And thanks for sharing! :)
- bredren - 136434 sekunder sedanIt is satisfying to see someone hacking on deprecated hardware and software also is keen to look forward into Vision Pro.
- faisalfakih - 86726 sekunder sedanIncredible project. The dual-framebuffer RGB -> YUV conversion trick is really clever. Really entertaining read as well!
- zdware - 145038 sekunder sedanFun post.
Always great when your debugging feedback is via a led xD
- WorldPeas - 143312 sekunder sedanGiven that the original Apple TV ran on a modified version of macos, what are the chances one could turn an old wii into an Apple TV..?
EDIT: also, I just noticed on a second pass the system is addressing 78mb of ram, potentially meaning the ram spans the gddr3 and sram, I'm amazed this works as well as it does with seemingly heterogeneous memory
- bottlepalm - 143642 sekunder sedanAnd here I am shopping for Macs because getting a hackintosh working from a VM on Windows is too difficult for me.
- flopsa - 122308 sekunder sedanThis was a brilliant write up and an insane project. Kudos!
- vsgherzi - 142436 sekunder sedanThis is some amazing work, a good reminder to dig more into operating systems for myself!
- mghackerlady - 147051 sekunder sedanI'm pretty sure someones done this for the 360. Also, doesn't NT have a wii port?
- outadoc - 101077 sekunder sedanSuper cool project and write-up, I loved reading it!
- davenporten - 146826 sekunder sedanHahaha! Yes! We need more of this in the world, love it!
- carlosjobim - 139010 sekunder sedanThey are successfully porting Mac OS onto every kind of modern computer over at the hackintosh subreddit, and I can't understand why there is so little interest for this stuff in the "hacker" sphere.
Surely, it must be a better option than Linux if you want to get the most out of a PC computer? At least for 10 more years.
- oliad1 - 138614 sekunder sedanNice project! Love seeing emulators & ports
- maximilianburke - 105881 sekunder sedanMakes me wonder if 10.4 would work on the WiiU...
- xoxxala - 145969 sekunder sedanVery neat project and an extremely enjoyable read.
- delduca - 133701 sekunder sedanThe best hack of the last 10 years.
- talkfold - 129796 sekunder sedanBrought the Wii to Hawaii to finish the framebuffer driver. Priorities perfectly set.
- khernandezrt - 132085 sekunder sedanUnrelated to the article but please compress your images. Why is one of them almost 8mb!?
- cdrnsf - 129092 sekunder sedanWonderful. Can it run Doom?
- nticompass - 147001 sekunder sedanThis is awesome! I can't wait to plug in my Wii and give it a try myself.
- hirvi74 - 147009 sekunder sedanExceptional work. While it may not mean much, I am truly impressed. I like to toy with reverse engineering here and there, but such a port like this would take me multiple lifetimes.
Not to distract too much from the main topic, but what do you think about the Hopper disassembler? I have only used Radare2, IDA Pro, and Ghidra. Though, I haven't used the latter two on MacOS. What do you prefer about Hopper? I have been hesitant to purchase a license because I was never sure if it was worth the money compared to the alternatives.
- dlopes7 - 107264 sekunder sedanIt was refreshing reading this in the age of AI slop, thank you for the great read and congratulations on the project
- bananaboy - 121103 sekunder sedanAmazing work and write up!
- spiderice - 138160 sekunder sedanI bet if me-20-years-ago knew that current me would have no fucking clue how to even begin to tackle a problem like this, me-20-years-ago would be very disappointed. Very jealous of your expertise. Awesome work!
- c0_0p_ - 145528 sekunder sedanFantastic work and a great write up.
- rafaelgoncalves - 114375 sekunder sedanawesome work and write up! hella impressive!
- mlfreeman - 131383 sekunder sedanUh, I just noticed the Windows NT for GameCube port actually claims Wii support too...so maybe one day we'll see a Wii dual boot NT4 and OS X 10.0
- kogasa240p - 140280 sekunder sedanWonder if it can happen on the Wii U
- rado - 142086 sekunder sedanGreat, how about on iPhone?
- lanyard-textile - 147074 sekunder sedanAbsolutely atrocious. Congratulations!
That's the hacker spirit.
- serhack_ - 146153 sekunder sedanawesome, good to see some real content from pre-AI moment
- jkbowa - 122145 sekunder sedanReally cool!
- postalcoder - 137135 sekunder sedanSorry if off topic but I was struck by the view from your window. Were you in Hanalei Bay?
- anthk - 131454 sekunder sedanNot OSX, but I'd love what Aros m68k is doing with the Amiga but for Mac OS System7.
Yes, I know about Ardi Executor being libre and enhanced now, but that's not the point.
I'd love to spawn MiniVMAC with a free system ROM replacement and a free Mac OS 7 reimplementation.
- dejongh - 137829 sekunder sedanGreat hack!
- anArbitraryOne - 125612 sekunder sedanI love it. I mean I hate MacOS, but great project
- eats_indigo - 145173 sekunder sedanhonestly expected this port to be headed in the opposite direction
- stavros - 145667 sekunder sedanThis is excellent, though if you had chosen another OS, you could have called the project Wiindows.
EDIT: Oh interesting, the final paragraph says NT has been ported, didn't know that. Sadly, no pun is mentioned in that project.
- rdanieli - 140942 sekunder sedannice!
- frakt0x90 - 145827 sekunder sedanIf all the AI stories on this site were replaced with amazing stuff like this, the world would be a better place.
- rvz - 145990 sekunder sedanThe post is a work of an actual hacker who knows what they're doing. Zero mention of "I used Claude" or "Used AI" to understand what is needed for accomplish this task.
This is exceptional work. Unlike the low-effort slop posts I see here on "Show HN".
- zenlot - 140753 sekunder sedan[dead]
- ValveFan6969 - 132732 sekunder sedan[dead]
- anskksdkdkdk - 143085 sekunder sedan[flagged]
- ynajjarine - 139385 sekunder sedan[flagged]
- guerrilla - 134148 sekunder sedan> The Wii uses a PowerPC 750CL
Well, okay, that's almost cheating.
Nördnytt! 🤓