# Ferrum

> Windows games on a Mac, without Rosetta.

Canonical page: https://pyrosoft.pro/software/ferrum

Status: coming-soon
Platforms: macOS

Ferrum is PyroSoft's native macOS x86-64 translation layer for Windows games on Apple Silicon. Built on FEX, it turns a game's Intel instructions into ARM64 as the game runs, answers its Windows requests through Wine, and hands its graphics to Metal through DXVK and MoltenVK: no Rosetta, no virtual machine and no Windows licence. It exists because Apple is retiring Rosetta, which almost every Windows-on-Mac setup depends on, Bourbon's current Windows path included. Ferrum replaces the layer underneath with a native ARM64 host and FEX only where x86-64 code needs translating, while Smart Play, the Bottle Shelf and the rest of Bourbon stay as they are. Ferrum is still in development. It boots a real game, renders its menus through DXVK and presents frames in a real macOS window, but no game has been played end to end by a person yet. There is no public build and no ship date; when it lands, it ships inside Bourbon 26 with nothing extra to buy. The public repository holds documentation only.

Price: Ships inside Bourbon 26.

## Requirements

Apple Silicon (M-series) Mac

## Features

- x86-64 game code translated to ARM64 as it runs, built on FEX-Emu
- Windows requests answered by Wine: no Windows licence, no virtual machine
- DirectX to Vulkan via DXVK and vkd3d-proton, then to Metal via MoltenVK
- A real macOS window and Vulkan swapchain; audio through CoreAudio
- Handles the XGETBV instruction Rosetta 2 rejects (CPUID, XGETBV, XSAVE)
- Isolated runtime: no Homebrew, PATH lookups or other Wine installs
- Will ship inside Bourbon 26, with nothing extra to buy

## How to get it

Coming soon. Use the product page and development journal for current status.
- [Source code](<https://git.pyrosoft.pro/pyrosoft/ferrum/ferrum>)

## Recorded details

- License: Proprietary (Ferrum Commercial License)
- Tech: FEX-Emu, Wine, DXVK, vkd3d-proton, MoltenVK and Metal

## Screenshots

![Hollow Knight gameplay in King's Pass, the Knight mid nail-swing, rendered by Ferrum on an Apple M5](https://pyrosoft.pro/store-assets/media/15b643cc35-960.webp)
![Hollow Knight gameplay restored from a save in King's Pass](https://pyrosoft.pro/ferrum/assets/hk-kingspass-save.jpg)
![Hollow Knight title menu rendered by Ferrum](https://pyrosoft.pro/store-assets/media/7dfa191ff2-960.webp)

## Questions

### Will my games work?

Not yet. Ferrum can create a Direct3D 11 device and put a rendered frame in a real Mac window, but no full game has been driven from launch to gameplay by a person. For playing Windows games today, use Bourbon 26.

### Do I need a Windows licence?

No. Ferrum never runs Windows. The Windows interfaces come from Wine, which reimplements them without Microsoft code.

### Isn't this what Rosetta does?

Rosetta translates Intel Mac apps and knows nothing about Windows. Most Windows-on-Mac setups use it as one layer in a taller stack, which is the problem, because Apple is retiring it. Ferrum replaces that layer.

### Which Macs?

Apple Silicon only (M-series). Intel Macs don't need it.

### What about anti-cheat?

Kernel-level anti-cheat won't work under any translation layer. User-mode Easy Anti-Cheat and BattlEye can, where a publisher has enabled it; that is on the roadmap, not working yet.

### How do I get it?

Ferrum will ship as an integrated part of Bourbon 26, with nothing extra to buy or sign. For use outside Bourbon, ask about commercial licensing at contact@mikethetech.com.

## Related guides and journals

- [Asynchronous I/O and the Bytes a Cancelled Write Keeps](https://pyrosoft.pro/blog/async-io-and-the-bytes-a-cancelled-write-keeps.md)
- [A Real Archive Roundtrip and Better File Behavior](https://pyrosoft.pro/blog/real-archive-roundtrip-and-file-behavior.md)
- [Making the Launcher Own Its Storage and Processes](https://pyrosoft.pro/blog/making-the-launcher-own-its-work.md)
- [Getting Wine's Real 32-Bit Startup to Run](https://pyrosoft.pro/blog/getting-wines-real-32-bit-startup-to-run.md)
- [Making Memory Protection and Lifetime Tests More Useful](https://pyrosoft.pro/blog/memory-protection-and-lifetime-tests.md)
- [Recovering the Project and Resuming Real Tests](https://pyrosoft.pro/blog/recovering-the-project-and-resuming-real-tests.md)
- [Correcting the Ferrum Progress Report](https://pyrosoft.pro/blog/correcting-the-progress-report.md)
- [Portal Reaches a Command Stream, With the Frame Still Ahead](https://pyrosoft.pro/blog/portal-reaches-a-command-stream.md)
- [A Launcher and a Freeze That Wasn't the Presenter](https://pyrosoft.pro/blog/a-launcher-and-a-freeze-that-wasnt-the-presenter.md)
- [Working on Presentation and Controller Input](https://pyrosoft.pro/blog/windows-that-keep-up-and-controllers-that-wake.md)
- [DirectX 12, Shader Caches, and the Steam Startup Work](https://pyrosoft.pro/blog/directx-12-shader-caches-and-steam.md)
- [Making Memory, Files, and Graphics State Agree](https://pyrosoft.pro/blog/making-runtime-state-consistent.md)
- [Building the 32-Bit Graphics Path](https://pyrosoft.pro/blog/building-the-32-bit-graphics-path.md)
- [Game Progress and Measuring the Right Thing](https://pyrosoft.pro/blog/gameplay-performance-and-measuring-the-right-thing.md)
- [Installers, Saves, Fonts, and the Parts Around the Game](https://pyrosoft.pro/blog/installers-saves-fonts-and-audio.md)
- [Following a Game Through Its Opening Video](https://pyrosoft.pro/blog/following-a-game-through-its-opening-video.md)
- [Building More of the Windows Runtime](https://pyrosoft.pro/blog/windows-runtime-threads-and-older-directx.md)
- [From Return Values to Pixels and Sound](https://pyrosoft.pro/blog/from-return-values-to-pixels-and-sound.md)
- [Bringing FEX to macOS: The First Windows Program](https://pyrosoft.pro/blog/bringing-fex-to-macos.md)
