Archive for March 5, 2024

Tuesday, March 5, 2024

MacPad: Hybrid Mac-iPad Laptop and Tablet

Federico Viticci (Hacker News):

The concept behind the video was fascinating: if a Vision Pro can provide you with a virtual display for your Mac, can you physically remove the display from a MacBook and continue using it in “headless” mode with a Vision Pro or other external monitors? The answer is yes.

That video planted an idea in my brain that I couldn’t get rid of. I could see myself working with that type of accessory; removing the screen from my MacBook Air would make it even lighter to carry around and put on my lap; it would also mean I could get rid of the standalone Magic Keyboard and Trackpad on my desk and just use the remaining part of the MacBook Air for input with my Studio Display.


You see, I’d been thinking about creating a headless MacBook Air and relying on Universal Control, but I was only considering one side of the story – the Mac-to-Vision Pro side. It was only when I remembered that Mac-to-iPad Universal Control and Sidecar also existed that everything clicked:

I didn’t just want to make a headless MacBook anymore. I had to figure out how to combine the MacBook Air and iPad Pro into a single machine.


Keyboard Control of

With macOS Catalina, Apple replaced the Messages app, which had been based on iChat, with a version derived from the iOS Messages app. This brought some new features such as effects but dropped others such as conversation archiving. (You can’t even Select All to copy the text of a conversation.) Messages is often held up as a successful use Catalyst, but under macOS Sonoma the keyboard shortcuts still don’t work properly. The Page Up, Page Down, and Home/End keys don’t do anything in either the conversions list or the messages list. Nor does tabbing between the different panes work. With the text field active, pressing Tab actually inserts a tab character, and holding down a modifier doesn’t help. Granted, being able to transfer keyboard focus isn’t very useful because there isn’t much you can do with it: scrolling messages with the arrow keys is broken, and you can’t use the arrow keys to select a conversation. Oddly, Messages uses Control-Tab to do that.


Update (2024-03-21): Wade Tregaskis:

Even so, there are things which just scream “I’m actually an iOS app”, like when you right-click a message or attachment while the Messages window is on a secondary display, and the contextual menu appears in the top-left corner of the main display. And disappears when you click on any item in it, without activating the item. Because it’s reacting to the mouse location as if it were in the correct place on the secondary display. But if you click on the secondary display, it just dismisses the pop-up menu without activating the selected item – I don’t know how they managed to get that discontinuity between mouse move events and mouse down events, but there you go, the miracle that is Catalyst.

Emulation on iPhone

Mike Rockwell:

Last year I wrote an about retro gaming on iOS. I’ve had a lot of fun playing games on the platform, especially through emulation. Much of what I wrote last year is still applicable today, but I thought I’d revisit the topic with a focus on the state of emulation on iOS and all of the software and accessories you’ll need to get started.


Apple, being the restrictive little platform vendor that they are, doesn’t allow emulators on the App Store. In order to install them on your device, you’ll have to utilize sideloading. AltStore is the best method for installing and managing sideloaded applications on iOS.

What if you want to run a retro iOS game?

Alfonso Maruccia:

There’s a new iOS emulator in town, and it wants to bring 32-bit gaming apps back into a working state on modern machines and operating systems. touchHLE is specifically designed to run games “from the early days of iOS,” with a focus on iPhone/iPod touch apps for iPhone OS 2.x.


Born as a “full-time passion project” by a single developer in December 2022, touchHLE is radically different from traditional low-level emulators (like QEMU) as it is based on a “high-level emulator” design: the program’s simulated CPU only runs the code from an app binary and some needed iOS libraries. touchHLE takes the place of iOS, the developers explain, providing its own implementations of the system framework components like Foundation, UIKit, OpenGL ES, OpenAL, etc.


But then in 2017, Apple released iOS 11: the first iOS version not to support 32-bit apps. All those ancient games became unplayable on modern hardware. Nobody could buy them any more, either. Locked away with DRM, they might die with the devices that could still run them.


Anyway, I wanted to play it again. But of course, I couldn’t, not without an ancient device, which I didn’t have. And I thought, oh no, I love this game, but nobody coming after me will have the chance to.

Filipe Espósito:

Surprisingly, the tool works very well, and I was able to test it myself on my M1 MacBook Air. It was great to be able to interact with a game that took me back to the days of the iPhone 3G and the launch of the App Store.


I have been extremely careful during this project, perhaps more careful than most people would be, not to violate Apple’s copyrights so far as I can. I don’t use any code written by Apple, I have been careful to avoid reverse engineering iPhone OS itself. And in order to use the project, in order to use the code I’ve written, you don’t have to violate Apple’s copyrights. You can download the project, and it doesn’t contain anything that like, isn’t legal to distribute.

Alas, running iOS apps on a Mac doesn’t feel the same. I have not seen a way to emulate iOS on an actual iPhone.


Update (2024-03-06): Craig Grannell:

it’s quite something that we’ll be blue to run old iPhone games on an Android phone but not on an iPhone.

Matt Leidholm:

Depending on how strictly one defines “emulator”, there is at least one great one in the iOS App Store: ScummVM, the excellent reimplementation of adventure game engines from the likes of LucasArts, Sierra On-Line, and Coktel.

Update (2024-03-07): Mike Rockwell:

Wouldn’t it be nice if Apple built a “Classic” mode that was built in to iOS that emulated older versions of the operating system for the purposes of running older software?

Nintendo v. Yuzu

Chris Brandrick (Hacker News):

Nintendo is taking action against the creators of the popular emulator tool Yuzu.

The copyright infringement filing, from Nintendo of America, states that the Yuzu tool (from developer Tropic Haze LLC) illegally circumvents the software encryption and copyright protection systems of Nintendo Switch titles, and thus facilitates piracy and infringes copyright under the Digital Millennium Copyright Act (DMCA).


The official Yuzu website suggests that the tool is to be used with software you yourself own: “You are legally required to dump your games from your Nintendo Switch” — but it’s common knowledge, that this is not how these tools are primarily used.

Sean Hollister (Hacker News):

Now, it appears that Yuzu will give up without a fight — and give Nintendo everything it wanted. And it affects the Nintendo 3DS emulator Citra, too.

According to a joint filing, Tropic Haze has not only agreed to pay $2,400,000 to Nintendo but also says Yuzu is “primarily designed to circumvent and play Nintendo Switch games.” The company agrees to be permanently enjoined from working on Yuzu, hosting Yuzu, distributing Yuzu’s code or features, hosting websites and social media that promote Yuzu, or doing anything else that circumvents Nintendo’s copyright protection.

Oh, and it will surrender the domain name to Nintendo, agree to delete not only its copies of Yuzu but also “all circumvention tools used for developing or using Yuzu—such as TegraRcmGUI, Hekate, Atmosphère, Lockpick_RCM, NDDumpTool, nxDumpFuse, and TegraExplorer,” and hand over any “physical circumvention devices” and “modified Nintendo hardware” to Nintendo.

Update (2024-03-07): Sean Hollister:

The developer of popular Nintendo DS emulator Drastic just made its app completely free on Android (previously $4.99), and it intends to pull it down for good. Exophase wrote on its official Discord that “I want to make it clear that I don’t have any kind of financial incentive” and that Nintendo’s move simply “made the whole process more urgent”[…]


Meanwhile, a popular Discord server for the Steam Deck has at least temporarily shut down its entire emulation channel, writing, “We are not equipped to deal with potential legal repercussions of hosting discussions on Yuzu or emulation at this time” and apologizing for “the need to censor.”

Via NeoNacho:

Seems like the chilling effect of the Yuzu lawsuit is pretty bad already. The fact that emulators for the DS/3DS (which Nintendo abandoned last year) are affected will be significant blow to game preservation.

Update (2024-03-26): Sean Hollister (via Hacker News):

Nintendo might not need to individually sue emulators out of existence to drive them deeper underground. Today, GitLab cut off access to Nintendo Switch emulator Suyu, and disabled the accounts of its developers, after receiving what appears to be a scary email in the form of a DMCA takedown request.


Also, Suyu has claimed it does not include the same circumvention measures as Yuzu.

But those lawyers also told me that valid or invalid, it doesn’t necessarily matter all that much, since a platform like GitLab doesn’t have to host anything that it doesn’t want to host. It may not be worth the time and effort to push back on an invalid DMCA takedown request to protect something you might not even care to protect — particularly if the alternative might be Nintendo coming at you with an actual lawsuit.

Update (2024-04-12): Sean Hollister (via Hacker News):

Discord has shut down the Discord servers for the Nintendo Switch emulators Suyu and Sudachi and has completely disabled their lead developers’ accounts — and the company isn’t answering our questions about why it went that far. Both Suyu and Sudachi began as forks of Yuzu, the emulator that Nintendo sued out of existence on March 4th.

Update (2024-05-07): Will Shanklin (Hacker News):

Nintendo sent a Digital Millennium Copyright Act (DMCA) notice for over 8,000 GitHub repositories hosting code from the Yuzu Switch emulator, which the Zelda maker previously described as enabling “piracy at a colossal scale.”