buy$CROSSPLAY

how it works

3 steps · 10 seconds

01the idea

two classic games become one.

the first game is the world you play in. the second game is the hero you play as. the real engines run in your browser, and one runtime drops the hero into the world.

worldcarmageddon · snow map
doomguy from doom
herodoomguy
doomguy from doom
rec
1 the world

carmageddon

the game you play in. its maps, its rules, its physics.

1997 · racing · 7 mb

2 the hero

doomguy

the hero you play as, with its own moves, powers and health.

from doom · +0.3 mb

3 the crossover

doomguy from doom in carmageddon

not created yet · be the first to create it

now: doomguy from doom in carmageddon

order matters. swap them and it is the eagle in doom.

02both ways

two games in one frame.

inside a crossover the two games talk all the time. what happens in doom reaches lara croft, and what lara croft does lands back in doom. here is one real frame, taken apart.

one real frame of lara croft in doom, taken apart into four layers: the world, the collisions, the hero, one frame. scrolled, they collapse into the frame you play.

  1. 01the worlddoom runs e1m1 in its own engine: its maps, its light, its rules.
  2. 02the collisionsevery wall and floor goes to the runtime, so lara croft can stand, jump and get hit.
  3. 03the herothe runtime draws lara croft into doom's frame, depth tested against its walls.
  4. 04one frameone picture, one game. 30 fps, 1,531 triangles in this real capture.

what crosses over

five kinds of signal, in both directions, in every crossover.

signalworldheroheroworld
damagemonsters, traps and falls hurt your heroyour hero's attacks hurt the monsters
doorsthe world's doors, lifts and switchesyour hero presses use and they open
pickupshealth and armor lying around the worldyour hero picks them up and heals
explosionsbarrels and rockets throw your hero aroundyour hero's blasts break props and walls
carsracing worlds bring roads, ramps and rivalsa car hero drives into any world

that is the whole idea.
now make one.

do i need the games?

no. you do not need to own, download or install anything. the games run right in your browser tab.

the first load pulls in both games, between 1 and 75 mb depending on the crossover. after that you just play.

why desktop only?

these games were made for a keyboard and a mouse (a gamepad works too) and they want a real graphics card. so the player opens on a computer.

on a phone you can still browse every crossover, see the previews and follow the token.

what does creating a crossover mean?

every crossover starts not created yet. the first person to create one burns $CROSSPLAY for it and owns it forever. their wallet goes on the crossover page and they earn a share of the fees while people play it.

after that anyone plays it for free, as much as they like.

creating one costs 10,000 tokens. the tokens are burned on chain, gone for good. the for nerds part shows how the burn is checked.

bought on pump.fun with the pump.fun wallet? it does not show up in browser wallets. export it, or send your $CROSSPLAY to a browser wallet (phantom, solflare, backpack) first.

4 of 182 crossovers are created so far.

where does the money go?

every trade of the token pays a small creator fee. every 3 hours those fees split in two.

  • 50% crossover creators, by how long people play their crossovers. sessions under 60 s and a creator's own play do not count
  • 50% infrastructure: the servers and the game streaming, so the games load fast

every payout is published on chain with its transactions. there is no buyback.

tokens burned to create crossovers leave the circulating supply for good. 182 crossovers at 10k each is 0.18% of the supply, once all are created.

nothing here is a promise of profit. payouts follow fees and playtime.

how do i know the ca is real?

the official address is the one on this site and on our x. both always match. it is a pump.fun coin on solana.

anything else, in a dm, a reply or a group chat, is not ours. never buy from an address someone sends you. check it here first.

official ca · solana · pump.fun · solscan
D3Ahj21QeMYhKbQwasz3pJMzp9xhcsPV3c8twPiQpump
is every crossover tested?

yes. every crossover is built ahead of time and played by a test bot. it walks, jumps, takes damage, dies, respawns and counts errors.

then people watch the frames in motion, because a bot happily passes a crossover that still looks wrong. the long version is in for nerds.

04for nerds

under the hood.

the long version. the world is the original game's own engine compiled to webassembly, untouched where it counts. the hero is a pack that one shared runtime drops into that engine's frame.

worldthe original gamec / c++ built to wasmdraws its own frame
heroa hero packmoves, camera, hpabilities, an avatar
crossplay(world, hero)the runtimethree.js + rapierputs the hero in the frame
tabone iframein your browser tabno installs, no plugins

the world game runs as its original engine compiled to wasm and draws its own frame, and sends frame, depth and collision to the crossplay runtime. the hero game supplies a hero pack, which sends pose and input. the runtime, three.js plus rapier, puts the hero into the world's frame inside one iframe in your tab.

worlds
real source ports of the original games, built for the browser with emscripten
builds
single-threaded wasm, no sharedarraybuffer, so a crossover runs inside any iframe
heroes
one pack per game: moves, camera, abilities, hud and an avatar (gltf, sprites, voxels or a car)
runtime
three.js draws the hero, rapier runs its physics, a state guard hands the world's gl back untouched
glue
the world streams collision to the runtime and gets the hero back as a puppet it can hit
events
postMessage out of the iframe: ready, started, paused, died, respawned, exit
units
metres, z up, yaw 0 is +y

fourteen real engines

these are the real engine files your browser loads, one per game, ported from the original source. hover a game to watch it run as a world.

  • carmageddon box art
    carmageddon1997
    file
    carma.wasm
    size
    2.4 mb wasm
    patch
    +175 −5
  • diablo box art
    diablo1996
    file
    devilutionx.wasm
    size
    5.9 mb wasm
    patch
    +4,917 −3,585
  • doom box art
    doom1993
    file
    crispy-doom.wasm
    size
    1.9 mb wasm
    patch
    +198 −3
  • half-life box art
    half-life1998
    file
    hl_emscripten_wasm32.wasm
    size
    1.2 mb wasm
    patch
    +826 −18
  • quake iii box art
    quake iii1999
    file
    ioquake3.wasm
    size
    2.2 mb wasm
    patch
    +891 −26
  • simcity box art
    simcity1989
    file
    host.js
    size
    697 kb js
    patch
    +8 −10
  • sonic robo blast 2 box art
    sonic robo blast 21998
    file
    srb2.wasm
    size
    4.4 mb wasm
    patch
    +344 −6
  • tomb raider box art
    tomb raider1996
    file
    openlara.wasm
    size
    942 kb wasm
    patch
    +166 −7
  • gta: vice city box art
    gta: vice city2002
    file
    vc-sky-en-v6.wasm
    size
    7.3 mb wasm
    patch
    in the binary
  • minecraft 1.8.8 box art
    minecraft 1.8.82011
    file
    classes.js
    size
    14.4 mb js
    patch
    +16,427 −15,947
  • counter-strike 1.6 box art
    counter-strike 1.62000
    file
    cs_emscripten_wasm32.wasm
    size
    1.5 mb wasm
    patch
    +826 −18
  • super mario 64 box art
    super mario 641996
    file
    sm64.wasm
    size
    11.9 mb wasm
    patch
    +205 −11
  • the simpsons: hit & run box art
    the simpsons: hit & run2003
    file
    SRR2.wasm
    size
    3.5 mb wasm
    patch
    +483 −10
  • grand theft auto iii box art
    grand theft auto iii2001
    file
    re3.wasm
    size
    2.4 mb wasm
    patch
    +315 −11

14 engine files60.6 mb in allhover a game to watch it run

two ways into the picture

the result looks the same either way: the hero is depth tested, so walls in front still hide it. what differs is who owns the canvas.

gl-inject

for worlds that already draw with webgl2. the world owns the canvas.

  1. 1the world draws its frame in its own gl context
  2. 2the runtime draws the hero into that frame
  3. 3the world draws its hud on top
  4. 4every gl state goes back the way it was

used by carmageddon, half-life, quake iii, simcity, sonic robo blast 2, tomb raider + 6 more

composite

for worlds with a software renderer. the runtime owns the canvas.

  1. 1the world renders in software, no gl
  2. 2it hands over color, depth and hud as textures
  3. 3the runtime draws world and hero, depth tested
  4. 4the runtime owns the final canvas

used by diablo, doom

every crossover gets played before you play it

a test bot boots each pair and plays it: it walks, jumps, uses every ability, takes damage, dies, respawns and counts console errors.

a pass from the bot is not enough. people watch frame sequences in motion, because scripted checks happily pass things like a giant held sword, inside-out models or a car stuck on a one block step.

  • walk
  • jump
  • damage
  • respawn
  • frames in motion

05man crossplay

the manual, in one page.

CROSSPLAY(1)crossplay manualCROSSPLAY(1)

NAME

crossplay - classic games, crossed over

SYNOPSIS

crossplay(world, hero) - every crossover is a call
crossplay play world hero
crossplay create world hero
crossplay ls [--created | --new]
crossplay check world hero

DESCRIPTION

crossplay runs a classic game as the world and drops the hero of a second game into it. the world keeps its maps, rules and physics. the hero keeps its moves, powers and health.

order matters. mc+srb2 puts sonic in minecraft 1.8.8. srb2+mc puts steve in sonic robo blast 2.

COMMANDS

play - play a created crossover in the browser. free.
create - burn $CROSSPLAY to create a crossover. yours forever.
ls - list crossovers. 14 games, 182 crossovers.
check - run the test bot on a crossover.

RENDER MODES

gl-inject - hero drawn inside the world's webgl2 frame
composite - world hands over color, depth and hud

SIGNALS

damage, doors, pickups, explosions, cars. both ways.

FEES

every 3h. 50% crossover creators by playtime, 50% infrastructure (servers, game streaming). no buyback.

EXAMPLES

crossplay play mc+srb2 - play as sonic in minecraft 1.8.8.
crossplay play mc+srb2 - play as sonic in minecraft 1.8.8.

BUGS

desktop only. phones get previews, not the player.

crossplay 1.0october 2026CROSSPLAY(1)