Live data from Hacker News

I ported Mac OS X to the Nintendo Wii

bryankeller.github.io

261–270 of 337 posts

Re: I ported Mac OS X to the Nintendo Wii

#261

As 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.

Many thanks for all the code! The second hand market is currently flooded with Wii U hardware that is cheap enough to buy enough stock to last a life time for peanuts. Would be amazing fun for PowerPC development and if I had an alternative timeline where I went into low-level programming, I would love to push for OpenBSD support inspired by your work.

Re: I ported Mac OS X to the Nintendo Wii

#262
post #230

Earlier quoted context omitted.

Your ports were a huge inspiration - thanks for contributing so much to this space!

So when will you port MacOS X to the Wii U? Two more CPU cores and 2GB of RAM instead of 88MB!

That would be a surprisingly cheap way to get a decent "vintage" Mac system considering the cheap resale on WiiUs.

Re: I ported Mac OS X to the Nintendo Wii

#263
post #169

Not 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.

Possibly of interest: https://mace.home.blog/ Frustratingly, though, they haven't released any source code yet.

That's the same as Executor, or some similar project with GNU/Linux with was exactly what Mace does with a free license.

https://www.v68k.org/advanced-mac-substitute/

What I would like to see it's the full OS reimplementation a la AROS m68k.

There are Minivmac ports for 9front. Exegutor it's made in C++, so no way to compile it with NPE (micro-POSIX compat layer for 9front). If anyone had that under MiniVmac, it could run everywhere.

On Advanced Mac Substitute, as it has an SDL2 interface, it can be almost done unless it's written in C++. If it's ANSI C or C99, it might run under 9front.

Re: I ported Mac OS X to the Nintendo Wii

#265
post #116
post #77

Earlier quoted context omitted.

That used to be my thing: wherever our ops manager declared something was impossible, I’d put my mind to proving her wrong. Even though we both knew she might declare something impossible prematurely to motivate me. My favorite was “it’s impossible to know which DB is failing from a stack trace”. I created STAIN (stack traces and instance names): a ruby library that would wrap an object in a viral proxy (all returns…

I've seen more than one half-joke-half-serious chunk of code that would "encode" arbitrary info into stack traces simply by recursively calling `fn_a`, then `fn_s`, `fn_d`, and `fn_f` before continuing with the actual intended call, giving you a stack trace with (effectively) "asdf" in it. They've also been useful more than once, e.g. you can do that to know what iteration of a loop failed. There are of course other…

Yeah, I've implemented this before as a protest against Apple stripping crash logs of information.

Re: I ported Mac OS X to the Nintendo Wii

#266

What 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 m…

I feel that modern macOS might be even more abstracted, not less. But it is absolutely more complicated and will probably require a bunch more work.

Re: I ported Mac OS X to the Nintendo Wii

#267
post #216

Earlier quoted context omitted.

Is it possible that a jailbreak is found that could allow a “kexec” kind of thing to load a new OS? Of course it would be a huge amount of work even if theoretically possible

marcan once said this was not possible on M1 macs. It was possible before, as coolbooter demonstrated, but it seems now that the hardware cannot be completely reinitialized without being power cycled (it was on Mastodon in 2024, he has since deleted his account so I cannot give you the exact quote). But you can do wizardry to load macOS' userspace on top of iOS' kernel [0] with a jailbreak. [0]: https://x.com/khanhdu…

You can't reinitialize the hardware, but if whatever you are trying to load is compatible with what's going on, then it should work. In a sense you could consider kexec to be like booting on a kind of weird machine where your interface to talking to the hardware is whatever macOS initialized the devices to.

Re: I ported Mac OS X to the Nintendo Wii

#268

Had 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.

Yo dawg I heard you liked virtual addressing so I designed virtual addresses for your physical addresses

Re: I ported Mac OS X to the Nintendo Wii

#269

This 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.

Nit: Nintendo's thing is called IOS

Re: I ported Mac OS X to the Nintendo Wii

#270
post #12
post #5

Exceptional 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 bee…

Thank you for the kind words! I like using it for disassembling UIKit (for my day job working on iOS apps), and overall, I like the UI/UX and how it feels like a native Mac app. I've tried Ghidra, and while extremely impressive and capable, it might be the most Java-feeling app I've ever used. I'd love for someone to whip up an AppKit + SwiftUI shell for it.

I've had it on my list to do for a very long time but unfortunately it has never gotten much effort. Although at this point I'm not super happy with the design (I feel like it's built to be slow…) and I might build on top of something more modern like Binary Ninja instead.
Post reply on HN