Skip to content

Releases: Broyojo/hadron

Hadron 0.3.1

Choose a tag to compare

@Broyojo Broyojo released this 17 Oct 18:59
3f5f18e

Games now get every pixel of a Retina display, and Hadron opens Windows programs that are not on Steam.

New: native resolution. A game sees the Mac's display at its real resolution, 3024×1964 on a 14-inch MacBook Pro instead of 1512×982 scaled up, as on a Windows laptop with a high-density screen. Pictures are sharper; drawing four times the pixels costs frame rate, so a game that runs slower than before can be set to 1512×982 or lower in its own graphics settings. A windowed game looks half as large as before for the same reason.

New: open any Windows program. Drop an .exe on Hadron, choose Hadron under Open With, use File → Open a Windows Program…, or run hadron run program.exe in the terminal. Steam isn't needed. Programs share one Windows folder in ~/Library/Application Support/Hadron/programs, and get the same memory watchdog as games.

New: video and .NET. Hadron now ships GStreamer, so games that play video or sound files through Media Foundation (Unity's video player, Unreal's media framework) get them, and Wine Mono, so .NET games and launchers start instead of failing at once.

Fixed:

  • Teardown in fullscreen on an external monitor at a scaled resolution showed only the top-left part of the game. Resolution changes are now emulated, as native Mac games do, on every display.
  • Programs whose shared memory sections don't line up with Apple silicon's 16 KB pages failed to load. GameMaker games (ROAM, for one) start now.
  • Jurassic World Evolution 2 stopped on a Metal error at startup (D3D12 buffer views larger than the device allows).
  • Memory freed by a game could keep its old contents on Apple silicon's 16 KB pages, without slowing anything down. Thanks to Lennard (@Moeweneier).
  • A Direct3D 11 device could read uninitialized memory while starting (DXMT). Thanks to Lennard.
  • The memory watchdog now measures memory the way Activity Monitor does, warns before it stops a game, and in the installed app only steps in when the Mac is really out of memory or disk. Thanks to Lennard.
  • The Compatibility page in a game's properties shows only the options Hadron uses (Metal HUD, MetalFX upscaling).
  • Hadron's window says more clearly where Steam's setup stands and what to do next. Thanks to Lennard.
  • Each game's app bundle declares itself a game. macOS still doesn't turn Game Mode on for Hadron's games (#54).

Known problem: Steam's "Access Steam features from overlay" message at launch is sometimes cut off, and an overlay window can open off-center (#97). The overlay itself works.

Other known problems are in the issues, and the list of games tried says what runs. If something goes wrong, save a report from Hadron's window and open an issue.

Updating: Hadron 0.3.0 offers this update itself when you open its window (or run hadron update). With Homebrew, brew upgrade --cask hadron. Then open Hadron and click Repair.

New here? Hadron is a compatibility tool that lets the native Mac Steam client install and run Windows games on Apple Silicon. It needs macOS 27 and Steam for Mac.

brew install --cask broyojo/hadron/hadron

or download Hadron-0.3.1.dmg below, drag Hadron to Applications, open it and choose Set up Steam. The README has the steps.

Setting up modifies and re-signs Steam.app; Uninstall in Hadron undoes it. Hadron is unofficial and not affiliated with Valve.

What's Changed

  • D3D12: clamp the typed companion of a raw view to the device's limit (Jurassic World Evolution 2) by @Broyojo in #66
  • Compatibility page: show only the options Hadron's renderers read by @Broyojo in #68
  • Display modes: emulate resolution changes, as native Mac games do by @Broyojo in #73
  • Ship Wine Mono, and stop switching mscoree off (Fable Anniversary) by @Broyojo in #67
  • Ship GStreamer so Media Foundation can play video and audio by @Broyojo in #70
  • DXMT: initialize the device before command helpers by @Moeweneier in #80
  • App: clarify Steam setup status and primary actions by @Moeweneier in #81
  • Watchdog: measure physical footprint and warn before emergency stops by @Moeweneier in #77
  • Wine: clear partial decommit boundaries without relaxing neighbour protections by @Moeweneier in #79
  • Wine: load images whose shared sections don't line up with 16 KB pages by @Broyojo in #87
  • Game Mode: declare per-game bundles as games; probe what else it needs by @Broyojo in #89
  • Retina displays: games get the display's pixels by @Broyojo in #90
  • Open any Windows program with Hadron, not only Steam games by @Broyojo in #91

New Contributors

Full Changelog: v0.3.0...v0.3.1

Hadron 0.3.0

Choose a tag to compare

@Broyojo Broyojo released this 14 Oct 16:58
2faae2a

Hadron now updates itself, and an update never touches a game that is running.

New: updates from inside Hadron. When a new version is out, Hadron's window says so, shows what changed and installs it once you agree. hadron update does the same in the terminal. Nothing is downloaded or installed without asking, and nothing about you or your Mac is sent. This version is the first with the updater, so getting it is still done by hand (see below); the next one will arrive this way.

New: a running game keeps its build. Games now run from a copy of Hadron's runtime kept outside the app. Replacing Hadron, by an update, brew upgrade or a new disk image, leaves a running game alone, and the next game you start uses the new build.

Fixed:

  • Teardown and other Direct3D 12 games that wait for each frame ran far below their frame rate, because the Mac's GPU stayed at its lowest clock. Teardown went from about 17 to 60 fps on an M2 Pro.
  • Some games started behind Steam and had to be clicked to the front (Five Nights at Freddy's, for one). Thanks to Ivan Karpan.
  • A fullscreen game could not be minimized, or came back right away. Thanks to Ivan Karpan.
  • Steam's beta lost the Compatibility controls in a game's properties. Thanks to Ivan Karpan.
  • Half-Life's intro video was black. An OpenGL game's window took the alpha the game left in its frame as transparency, which no Windows game expects; it is now opaque, as on Windows.

Known problems are in the issues, and the list of games tried says what runs. If something goes wrong, save a report from Hadron's window and open an issue.

Updating: install this version over the old one (brew upgrade --cask hadron, or replace the app from the disk image), then open Hadron and click Repair.

New here? Hadron is a compatibility tool that lets the native Mac Steam client install and run Windows games on Apple Silicon. It needs macOS 27 and Steam for Mac.

brew install --cask broyojo/hadron/hadron

or download Hadron-0.3.0.dmg below, drag Hadron to Applications, open it and choose Set up Steam. The README has the steps.

Setting up modifies and re-signs Steam.app; Uninstall in Hadron undoes it. Hadron is unofficial and not affiliated with Valve.

What's Changed

  • Name the maintainer as the owner of every file by @Broyojo in #46
  • wine: Preserve fullscreen minimization during window-level updates by @IvanKarpan in #47
  • Games run from a copy of the runtime, not from inside the app by @Broyojo in #44
  • Hadron updates itself, with Sparkle by @Broyojo in #43
  • Make OpenGL windows opaque: Half-Life's intro video was black by @Broyojo in #48
  • tests: Preserve native minimization reproducer and Win32 lifecycle checks by @IvanKarpan in #49
  • Let D3D12 games run one frame ahead: Teardown went from 16 to 60 fps by @Broyojo in #50
  • NotProton: Restore Compatibility controls in Steam beta by @IvanKarpan in #52
  • NotProton/wine: Fix cooperative Steam launch activation and inactive fullscreen ordering by @IvanKarpan in #51
  • Issue forms: label game reports, point questions to Discord and Discussions by @Broyojo in #62

New Contributors

Full Changelog: v0.2.0...v0.3.0

Hadron 0.2.0

Choose a tag to compare

@Broyojo Broyojo released this 11 Oct 05:42
74d94f3

Steam's overlay now works in Hadron games, and a mouse lag it was causing is gone.

New: the Steam overlay. Shift+Tab opens Steam's overlay in a game, as it does in a Mac game. It is Steam for Mac's own overlay. While it is open the game gets no mouse or keyboard input and lets go of the cursor, so the overlay can be used without pausing first; whether a game pauses behind it is the game's choice.

Fixed: the camera lagging while the mouse moved. Steam's overlay library used to be loaded into a game too late to work, and in that state it stalled the game each time the mouse moved. It was easy to see in Subnautica, where the camera stuttered while turning. The overlay is now in the process from the start, which is also what makes it work.

Tried with Subnautica (Direct3D 11), Portal 2 (Direct3D 9), Teardown (Direct3D 12) and Geometry Dash (OpenGL). A game that uses Vulkan directly takes the same route as the last two and has not been tried yet. If the overlay misbehaves in a game, please save a report from Hadron's window and open an issue.

Updating: install this version over the old one (brew upgrade --cask hadron, or replace the app from the disk image), then open Hadron and click Repair.

New here? Hadron is a compatibility tool that lets the native Mac Steam client install and run Windows games on Apple Silicon. It needs macOS 27 and Steam for Mac.

brew install --cask broyojo/hadron/hadron

or download Hadron-0.2.0.dmg below, drag Hadron to Applications, open it and choose Set up Steam. The README has the steps, and the list of games tried says what runs.

Setting up modifies and re-signs Steam.app; Uninstall in Hadron undoes it. Hadron is unofficial and not affiliated with Valve.

Hadron 0.1.1

Choose a tag to compare

@Broyojo Broyojo released this 07 Oct 02:52
3e7043a

A small release with one fix.

Fixed: games freezing for seconds when they start a thread. On macOS, Wine looked for free address space by trying every 64 KiB of a region the system had already mapped, while holding a lock every other thread needs. In Astroneer that froze the game for almost three seconds on finishing a mission. Wine now skips such a region in one step. Found, fixed and tested by @Footkick72 in #38, the first outside contribution to Hadron.

Updating from 0.1.0: install this version over the old one (brew upgrade --cask hadron, or replace the app from the disk image), then open Hadron and click Repair.

New here? Hadron is a compatibility tool that lets the native Mac Steam client install and run Windows games on Apple Silicon. It needs macOS 27 and Steam for Mac.

brew install --cask broyojo/hadron/hadron

or download Hadron-0.1.1.dmg below, drag Hadron to Applications, open it and choose Set up Steam. The README has the steps, and the list of games tried says what runs.

Setting up modifies and re-signs Steam.app; Uninstall in Hadron undoes it. Hadron is unofficial and not affiliated with Valve.

Hadron 0.1.0

Choose a tag to compare

@Broyojo Broyojo released this 06 Oct 13:15
1fa2892

The first release of Hadron: a compatibility tool that lets the native Mac Steam client install and run Windows games on Apple Silicon.

Requirements: an Apple Silicon Mac, macOS 27, and Steam for Mac.

Install

brew install --cask broyojo/hadron/hadron

or download Hadron-0.1.0.dmg below and drag Hadron to Applications. Then open Hadron and choose Set up Steam. macOS stops the first attempt: allow Hadron under System Settings → Privacy & Security → App Management, and set up again.

What runs: Portal, Portal 2, Subnautica, Astroneer, Among Us, Teardown, Geometry Dash and others. Unreal Engine 5, Java games and games with kernel anti-cheat do not yet. The list of games tried has the details.

This is an early release. Setting up modifies and re-signs Steam.app; Uninstall in Hadron undoes it. Hadron is unofficial and not affiliated with Valve.

If a game fails, choose Save a report… in Hadron and attach it to an issue.

Everything that went into 0.1.0
  • Add licenses, laid out like Proton's by @Broyojo in #1
  • Ultimate Custom Night runs at 60 fps: Metal view size, 4GB address space, system-memory draws, DebugSetMute by @Broyojo in #2
  • Vsync the way Windows does it; Among Us runs; mtld3d by default by @Broyojo in #3
  • Steam Play in Mac Steam: Windows games install, launch and sign in through Hadron by @Broyojo in #4
  • Native-feeling scrolling, winevulkan crash fix, watchdog swap check by @Broyojo in #5
  • Vulkan on Metal: KosmicKrisp, vkd3d-proton, device-generated commands (experimental D3D12) by @Broyojo in #6
  • D3D12 games launch from Steam; KosmicKrisp texel alignment and large timestamp pools by @Broyojo in #7
  • KosmicKrisp: geometry shaders, transform feedback, DGC fixes by @Broyojo in #8
  • KosmicKrisp: sparse resources and min/max filtering (D3D12 FL 12_0) by @Broyojo in #9
  • KosmicKrisp: pipeline statistics queries by @Broyojo in #10
  • KosmicKrisp: review fixes, strict sparse buffers, texel buffer residency by @Broyojo in #11
  • Subnautica 2 launch fixes: CPU features for FEX, D3D12 default, README and stack diagram by @Broyojo in #12
  • KosmicKrisp: the Vulkan features behind D3D12 shader model 6.6 (Unreal Engine 5) by @Broyojo in #13
  • Alpha polish: Steam links, launch speed, Dock name and icon by @Broyojo in #14
  • Zink on KosmicKrisp, and the conformance suites as ground truth by @Broyojo in #15
  • OpenGL 4.6 on Zink, and the second round of conformance fixes by @Broyojo in #16
  • Distribution: a self-contained runtime, the logo, and the app that carries them by @Broyojo in #17
  • Release script: API key for notarization, and a rehearsal mode by @Broyojo in #18
  • For 0.1.0: licence notices, an update check, the first-time hint by @Broyojo in #19
  • The setup status needs no developer tools by @Broyojo in #20
  • The README and the roadmap as they are at 0.1.0 by @Broyojo in #21
  • The hadron command: works through a link, and the app offers to add it by @Broyojo in #22
  • The package's tool guard sees the Steam files' script by @Broyojo in #23
  • The cask asks for neither Homebrew's Steam nor an uninstall hook by @Broyojo in #24
  • Steam starts Hadron's tool as arm64, so a launch needs no Rosetta by @Broyojo in #25
  • The report takes the user's name out in any letter case by @Broyojo in #26
  • Note Portal's frame-rate drop on a failed portal shot by @Broyojo in #27
  • A game starts in Steam's working directory; the report panel remembers its folder by @Broyojo in #28
  • Wine registers the current Visual C++ runtime version by @Broyojo in #29
  • An older Visual C++ installer no longer leaves the runtime version too low by @Broyojo in #31
  • For contributors: no developer account needed, coding agents welcome, AGENTS.md by @Broyojo in #30
  • The first outside tester's games, and the Java failure, in the docs by @Broyojo in #32
  • Point to Discussions for questions and for games that work by @Broyojo in #33
  • Launch day: the release is out, a star chart, and the roadmap's first item by @Broyojo in #34
  • Docs: playing the Windows version of a game that has a Mac one; Half-Life noted by @Broyojo in #35
  • README: you can work on Hadron without an Apple Developer account by @Broyojo in #36