ts/Tanmay’s place
Sunday analogies · October 11, 2026

Two games, one picture

My timeline has been full of Minecraft Steve fighting Malenia, with a hotbar, TNT and a diamond sword inside Elden Ring. People call these passthrough mods, and I wanted to understand how you get two games that different to work together.

Both games are still running: Minecraft handles Steve and the blocks while Elden Ring handles the world and monsters. The code between them shares information and combines their pictures before they reach the screen.

Two kitchens

I think about it as two restaurant kitchens, one making steak and the other making risotto. I want both on the same plate, but moving everything into one kitchen means moving equipment and teaching everyone the other recipes. Rebuilding Minecraft inside Elden Ring's engine would be a similar problem.

It's easier to cut a serving window between the kitchens so they can pass orders and food through while cooking as usual. That's roughly what the mods do: let each game keep its own engine and pass over what the other needs.

A steak pan on a stove and a risotto pot stay in separate kitchens. A ticket sits in the serving window between them.

Minecraft knows how Steve walks, swings a sword and places blocks, but not where Elden Ring's ground or enemies are. It asks Elden Ring for those details and builds just enough of a copy for Steve to interact with.

The version I looked at is minecraft-crossover-bridge, which runs Minecraft on a Mac alongside Elden Ring through CrossOver. There are a few versions of this idea, so the details here are about that one.

What goes through the window

Minecraft is a Mac program and Elden Ring is a Windows game running through CrossOver, so they can't just call each other's functions. They can both reach a file in /tmp, and mapping that file into memory lets them read and write the same physical memory. In the kitchen example, that's a counter built into the wall that both sides can reach.

The bridge has two of these shared files. bridge.shm is 8 MB and holds things like camera positions, terrain checks, nearby enemies and damage. frames.shm holds Minecraft's pictures and is about 110 MB for Elden Ring, with three frame slots so one side can read a frame while the other prepares another.

How they avoid reading an unfinished message

Sharing memory also means one game could read a message while the other is still changing it. Each small message block has a sequence counter to catch this: the writer makes it odd before changing anything, then even again when it's finished.

The reader checks the counter before and after reading, and tries again if it was odd or changed in between. Checking for an even number at the end wouldn't be enough, since a whole update could have happened during the read. This is called a seqlock.

To let Steve walk, Minecraft asks Elden Ring how high the floor is around him and builds invisible columns of blocks to match. Steve walks on those blocks while I see Elden Ring's ground. The games can handle terrain differently as long as there's ground in the same places.

Combat uses a similar trick. Minecraft creates invisible entities for Steve to hit, then the bridge sends those hits to Elden Ring's damage code. The Tarnished stays hidden at Steve's feet so Elden Ring's enemies have someone to attack. Their hits get passed back to Minecraft, and dying in either game brings up Elden Ring's death screen.

Making it look like one game

That gives Steve something to stand on and fight, but the pictures still need to line up. Both games need the same camera position, direction and field of view, or Steve won't fit his surroundings.

Minecraft draws first in this bridge, puts its picture in shared memory, then sends over the camera settings it used. Elden Ring can then draw its world from that same view. In the pictures below, Steve is drawn separately from the bench, but his position and size stay the same when they're combined.

The world layer: a bench and two plants, with no character.
The world
Steve alone at the same position and scale he has in the combined view.
Steve
Both layers combined, with the bench covering Steve's body.
Together

Even with the cameras lined up, pasting Minecraft's picture on top would put Steve in front of everything. When he walks behind the bench, the bench needs to cover him, which means the bridge has to decide which game supplies the color at each pixel.

Both games already keep distance information alongside their pictures in a depth buffer. Comparing those distances lets the bridge use whichever surface is closer. For a made up example, if the bench is 3 metres away at the marked point and Steve is 5 metres away, that pixel should show the bench. The sequence below follows that decision at one spot, from the two separate pictures to the final result.

Why doesn't Steve cover the bench?

1 / 4

Each game draws its own picture.

The world comes from one game. Steve comes from the other.

The worldSteveThis spot

To keep blocks on the ground from flickering, the depth comparison allows some slack. Minecraft's pixels pick up brightness from Elden Ring's picture and fade into its haze. Steve's hand gets drawn over the world and relit, while the hotbar stays unchanged.

At 60 frames a second, there's about 17 milliseconds available per frame, though that's a budget rather than a measurement of this mod. Sharing memory helps with the communication, camera settings are only a handful of numbers, and the graphics card can compare lots of pixels in parallel. Moving the pictures is more expensive: Minecraft copies them off the graphics card into shared memory, then the other side uploads them again. The bridge caps the combined picture at 1920×1200.

Other implementations handle timing differently. The GTA V version shifts Minecraft's late picture toward the current view to compensate for delay.

Would I want to play it?

I think the software is really cool, but I'm less sure about the actual game. Seeing Steve fight Malenia is funny, though I haven't seen a pairing that makes me want to keep playing once the surprise wears off.

Menus, the map and leveling still belong to Elden Ring, so F8 switches the controls between games. The setup also runs offline with anti cheat disabled, and resolutions above 1920×1200 fall back to a separate Minecraft overlay window. Even the game version matters, because the bridge checks expected addresses before using them and can disable a feature if they don't match.

Those things could improve, but I'd still want a reason to use Minecraft's building or combat inside another game, beyond being able to do it.

Shared memory and depth buffers have been around for years, so my guess is that coding agents made the connecting code cheaper to write. I don't know which games I'd combine yet, but I'd be more interested in something new to do than another place to put Steve.

Sources

TANMAY’S PLACE / VISITOR

Your memory card

Six souvenirs are hidden around the site. You’ll find them by looking around.

0 / 6 souvenirs collected

Find all six for a small surprise back at home.

Save it or share it. It’s made in your browser, and nothing gets uploaded.

Your card stays in this browser. No account needed. Clearing browser data clears your card.