最近在研究 8 音盒,自己用纸带打孔(30 音)的那种。然后发现了FairyMusicBox这个软件,做的挺好,可以自己打谱试听,绘制出纸带的打孔孔位,软件精美的,让我放弃了用 python 手搓轮子的想法。
但是,它只支持 Windows 系统。万恶之源!
一番折腾下来,真是累坏了!
虚拟机方案。
下载 Windows 镜像、VirtualBox 虚拟机、UTM 虚拟机,这些都要特别关注是不是 Apple Silicon 芯片。为了下载 Windows 镜像,还要下载 CrystalFetch ,然后配置虚拟机,死活跑不起来,各种尝试,最后发现竟然是没有“在 boot 时按任意键”导致进了 shell ,而不是加载 EFI 引导盘,WTF !这中间下载了至少 3,4 个版本的 windows 镜像,包括 windows preview 计划。
等虚拟机跑通之后,程序也终于跑起来了,然而,怎么会这么卡?不是使用的 Apple 的 Hypervise 虚拟化技术吗?怎么会这么卡?是软件的问题吗?
虚拟接口层方案
还有另一种方案,用 macOS 的接口模拟 Windows 的接口。开源的有 Wine 。用 homebrew 安装,提示 Rosetta 2 没有安装,可是我记得没动过 Rosetta 啊,还提示 wine 的镜像下载失败。暂时放弃,后来虚拟机的路子实在走不通了,又尝试安装了一下 Rosetta 2 ,竟然安装上了,那么我机器上的 Rosetta 是什么?不解。
配置 Wine 的过程一路坎坷,等终于通过 wine FairyMusicBoxInstaller.exe 把软件的安装包跑起来,中文乱码、提示框报错,于是又安装 wine 的补丁,安装系统字体包,安装 vcruntime 运行时,终于,软件安装好了!结果 FairyMusicBox 一跑起来就崩溃了,0x00 地址访问错误,连初始化界面都没进!又开始查日志,搜 github ,问 AI ,最后定位到是 DirectX 的问题,原来 FairyMusicBox 使用 DX11 渲染那一个个漂亮的音符,但 Wine 不支持,超过能力范围了,Apple 的图形接口又那么独特。所以又开始找 Vulkan 模拟 DX 的方案,尝试 DXVK ,MoltenVK 等等,试来试去,总是不行。log 显示模拟 DX11 倒是成功了,图形设备也创建成功,但下一句 log 又立马又是访问 0x00 崩溃,这到底是模拟成功了还是没成功呢?!
放弃了
算了,还是老实付费 CrossOver 这个 Wine 的商业版软件吧,支持一下 Wine !折腾这么一番,图什么呢!!
其实在最开始阶段,用 CrossOver 很顺利就跑通了,然后也成功打了一只曲子的纸带。后面之所以再去折腾虚拟机、Wine 这些,主要也是希望用开源免费的,毕竟 CrossOver 就是 Wine 的商业化版本啊,难不成守着开源的赶着去付钱?结果给我来个这样的暴击!
看到 macOS 上跑起来 Windows 的软件,感觉还是挺不错的,算是一个欣慰。有没有同样踩过坑的,这真的太坑了!!
|