A developer by the name of Nick Lee has gotten Windows 95 to run on his Apple Watch. Well, kind of…
You see, in order to do so, Lee realized he couldn’t rely on Apple’s stock SDK for developing Watch apps. If he did, however, user touch locations wouldn’t be recognized and the whole project would go down the drain. But, Lee figured out that by patching certain files to a WatchKit app, it was possible to run your own application code rather Apple’s on an Apple Watch. And that’s just what he did, and was successful.
For reference, here’s the necessary steps Lee had to take to get Windows 95 to emulate on an Apple Watch, according to his Medium post:
Copy symbols and headers from Xcode’s iphoneOS and iphoneSimulator platforms to the watchOS and watchSimulator platforms, respectively.
Build your “normal” UIKit-based iOS app inside a framework, rather than in your WatchKit extension.
Use install_name_tool to point your WatchKit app’s _WatchKitStub/WK binary to your framework instead of SockPuppetGizmo. SockPuppetGizmo is the framework that (to my knowledge) runs WatchKit and interacts with normal WatchKit extensions that developers write.
Jury-rig the iOS port of the Bochs x86 emulator into your framework. “Easy!” “How hard can it be?” read:Pretty hard. In my case, Xcode crashed whenever I tried to use lldb. Your mileage may vary.
Copy a Windows 95 disk image in to your app’s bundle, write the config file, and boot ‘er up.
He also glued a motor to the Watch’s crown in order for it to stay awake, something Lee states is “optional”.
Lee said that it look an hour for Windows 95 to actually boot up into a usable state on the Watch since it was being emulated rather running natively. However, it was all worth it in the end.
If you want to try this, Lee has posted the source code on GitHub for users to download.
This isn’t the first time Lee has done something like this. A while back, he was able to boot an old version of Mac OS on a Watch which also amazed the world, however it wasn’t very good when it came to usefulness.