04

how it works

3 steps · 10 seconds

two classic games become one. the first game is the world you play in. the second game is the hero you play as.

try
1 · world

carmageddon

the game you play in

carmageddon runs in your browser, the real thing. its maps, its rules, its physics.

1997 · racing · 7 mb
2 · hero

doomguy

the hero you play as, from doom

doomguy is dropped into carmageddon with its own moves, powers and health.

1993 · shooter · +0.3 mb
3 · combo

carma + doom

play as doomguy in carmageddon

one game, both rulebooks. damage, doors, pickups, explosions and cars work both ways.

not created yet · be the first to create it

order matters. doom + carma would put max damage in doom.view carma + doom

4.1

both ways

live diagram

inside a combo the two games talk all the time. what happens in carmageddon reaches doomguy, and what doomguy does lands back in carmageddon.

what crosses over
signalworld to herohero to world
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.

4.2

faq

6 questions
01do 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 combo. after that you just play.

02why 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 combo, see the previews and follow the token.

03what does creating a combo mean?

every combo starts not created yet. the first person to create one burns $DISASM for it and owns it forever. their wallet goes on the combo 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 1,000,000 tokens. the tokens are burned on chain, gone for good. the for nerds part shows how the burn is checked.

1 of 182 combos are created so far.

04where does the money go?

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

  • 50% combo creators, by how long people play their combos. 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 combos leave the supply for good. 182 combos at 1m each is 18.2% of the supply, once all are created.

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

05how 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.

06is every combo tested?

yes. every combo 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 combo that still looks wrong. the long version is in for nerds.

4.3

for nerds

skip it if you just want to play

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.

the stack

the world game runs as its original engine compiled to wasm and draws its own frame. the hero game supplies a hero pack. both feed thedisasm runtime, three.js plus rapier, which puts the hero into the world's frame inside one iframe.

facts
worlds
real source ports of the original games, built for the browser with emscripten
builds
single-threaded wasm, no sharedarraybuffer, so a combo 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

two ways into the picture

the result looks the same either way. the hero is depth tested, so it walks behind the near pillars and in front of the far one. what differs is who owns the canvas.

gl-inject

for worlds that already draw with webgl2.

  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 carma, hl, q3, simcity, srb2, tr + 6 more

composite

for worlds with a software renderer.

  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

disasm check
example output

every combo 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

creating a combo is one burn on solana

your wallet signs one transaction: a burn of the price plus a memo that names the combo. the tokens are destroyed, not sent to anyone.

the server reads that transaction from the chain and only counts it when

  • the transaction did not fail
  • it burns the official mint, at least the price
  • it landed after the official address went up on this site
  • the wallet that burns also signed it
  • the memo names a real combo of two different games
  • the signature was never used before

the first valid burn wins, ordered by slot. a two minute hold stops two people burning for the same combo, and an indexer rereads the mint every 45 seconds, so a closed tab still counts.

disasm create
example output
4.4

man disasm

DISASM(1)
disasm.1
DISASM(1)disasm manualDISASM(1)

NAME

disasm - mix two classic games into one

SYNOPSIS

disasm play world+hero
disasm create world+hero
disasm ls [--created | --new]
disasm check world+hero

DESCRIPTION

disasm 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. carma+doom puts doomguy in carmageddon. doom+carma puts max damage in doom.

COMMANDS

play
play a created combo in the browser. free.
create
burn $DISASM to create a combo. yours forever.
ls
list combos. 14 games, 182 combos.
check
run the test bot on a combo.

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% combo creators by playtime, 50% infrastructure (servers, game streaming). no buyback.

EXAMPLES

disasm play carma+doom
play as doomguy in carmageddon.

disasm play simcity+srb2
play as sonic in simcity.

BUGS

desktop only. phones get previews, not the player.

SEE ALSO

mix(0), play(1), combos(2), token(3), how(4)

disasm 1.0october 2026DISASM(1)