ARM64 programs built with Visual Studio crash with 0xC000007B

It’s because Visual Studio seems to copy an x86 version of the VC++ runtime into system32 on ARM64 systems. That’ll make it crash with a bad image format error. If you copy the ARM64 version of vcruntime140.dll (for me, found in C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.28.29325\arm64\Microsoft.VC142.CRT) into the build directory, binaries will work.

Notes with the Parallels Beta on Apple Silicon

QEMU recently gained Apple Silicon hypervisor support. That was pretty damn cool for the first few weeks of M1 in people’s hands. Even without any optimizations, Windows 10 on M1 outclasses the Surface Pro X and even my Ryzen gaming desktop. Unfortunately, that didn’t include 3D acceleration (though virtio-gpu is now a thing for 2D).

Luckily, Parallels has ported their virtualization software to M1. It’s incredibly janky (and certainly deserving of a technical preview because of that!), but shows a lot of promise, complete with D3D11 support for games. Unfortunately, it requires some hacks to get running stable, but it’ll work fine after that.

Continue reading

Economics Has Become a Spiritual Thing: How David Byrne Predicted Open Source and Startups

Here’s a post off-the-cuff (and not what I usually write): True Stories is one of my favourite movies that never gets talked about. It’s got everything – Talking Heads songs done better than the album, observing the state of the American suburbs of the 1980’s, and bizarre monologues. What’s not to love?

The scene I want to talk about the most though, is the scene where Byrne has dinner with a local businessman (the kind revered for contributions to their local and small community) and his family. It’s one of the most amusing scenes, but also the most prophetic – particularly for people in the computer business.

Continue reading

Fixing Overwatch voice chat after upgrading to Fedora 33

After upgrading my system to Fedora 33, I realized voice chat in Overwatch didn’t work. The symptoms included:

  • The microphone worked in other applications, and there was no permissions issues involved
  • When joining a voice chat (like a group), the message saying that you’re in a voice chat would never appear, and you would never hear anyone else
  • The microphone icon in the game was forced to mute

Switching the WINE audio system from Pulse to ALSA didn’t work. What did work was changing the system cryptography policies:

$ sudo update-crypto-policies --set LEGACY

No reboot is required. This is an awfully big hammer though – I’d like to know what exact ciphers or protocols that Overwatch needs that are disabled in the stock crypto policies.

Thoughts on The Man from Earth

I recently watched the much-lauded-on-the-Internet film The Man from Earth. If you haven’t heard of it, it’s about a Cro-Magnon man that’s immortal, has experienced history, and lives to tell about it to his unknowing friends. This movie gets praised a lot for its thought-provoking plot and effective use of its budget. While it gave me some ideas to meditate on, and I thought it was a great example of a “bottle episode”, I think it falls short in the claim of being one of the best intellectual movies. I wonder if a lot of its praise might have been due to coming at the right time at the right place. Spoilers (and unpolished opinions) below!

Continue reading

“xcrun altool” not found on macOS

I needed to attempt a notarization of a Mac app (currently still in the middle of that long story), but I wasn’t using Xcode, so I had to run tools manually. Unfortunately, I couldn’t use xcrun altool, as it couldn’t find the command. I had upgraded the version of Xcode I was using, so I guess I had some stale links somewhere. Running xcode-select -r did the trick and fixed it.

Cursed MinGW cross-compiling techniques

I tend not to like cross-compiling, but sometimes it’s just the simplest solution, particularly if Windows and autotools come into the mix. Recently, I wanted to build xz for Windows, and build it in some particular ways.

windres (the GNU Windows resource compiler) will eat CPPFLAGS, but it won’t process most of them the same way. I often like to use it as a shorthand for both C++ and C compiler options (like -O2), but if windres is in play, only put preprocessor related things. As an example, if you enter -O2 for CPPFLAGS, you get unknown format type `2'.

If you need to target pre-Windows XP, be sure that the compiler is before 7.3. This patch has a hard dependency on a symbol that exists only on XP.

The end result is now I have a cursed xz for an even more cursed operating system:

xz 5.2.5 on Windows ME

Can’t add email accounts in macOS (stuck on final step)

When I tried to add an Exchange account (but it seemed to affect IMAP accounts too) in macOS (I was running High Sierra, but it affects other versions too), from either the Internet Accounts preference pane or, it would let would let me add an account right until the final step where it asks what kind of services you want enabled on the account, then the Done/Next button just does nothing. You might get a throbber for a second, but it subsides and does nothing.

There’s a lot of somewhat convulted steps posted on the internet, but the simplest is to just reset your keychain from the Keychain Access application (Application Menu->Preferences, it’s one of the options there) and reboot. You’ll have to enter your passwords again (including iCloud), but I had no trouble adding mail accounts after that.

Streaming a virtual machine to Twitch: my setup

Every so often, I do a stream of some odd 1990’s software. I usually run this in VMware, because streaming from an old operating system is either incredibly challenging or just downright impossible. However, VMware isn’t exactly a game, and I wish to do other things on my computer while I stream (if it’s something like a music stream), so I end up having to create a little ceremony to do so. These are the steps I take, and they might prove to be useful for others.

Continue reading