how it works
two classic games become one. the first game is the world you play in. the second game is the hero you play as.
carmageddon
the game you play in
carmageddon runs in your browser, the real thing. its maps, its rules, its physics.
doomguy
the hero you play as, from doom
doomguy is dropped into carmageddon with its own moves, powers and health.
carma + doom
play as doomguy in carmageddon
one game, both rulebooks. damage, doors, pickups, explosions and cars work both ways.
order matters. doom + carma would put max damage in doom.view carma + doom
both ways
inside a combo the two games talk all the time. what happens in carmageddon reaches doomguy, and what doomguy does lands back in carmageddon.
| signal | world to hero | hero to world |
|---|---|---|
| damage | monsters, traps and falls hurt your hero | your hero's attacks hurt the monsters |
| doors | the world's doors, lifts and switches | your hero presses use and they open |
| pickups | health and armor lying around the world | your hero picks them up and heals |
| explosions | barrels and rockets throw your hero around | your hero's blasts break props and walls |
| cars | racing worlds bring roads, ramps and rivals | a car hero drives into any world |
that is the whole idea. now make one.
faq
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.
for nerds
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 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.
- 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.
for worlds that already draw with webgl2.
- 1the world draws its frame in its own gl context
- 2the runtime draws the hero into that frame
- 3the world draws its hud on top
- 4every gl state goes back the way it was
used by carma, hl, q3, simcity, srb2, tr + 6 more
for worlds with a software renderer.
- 1the world renders in software, no gl
- 2it hands over color, depth and hud as textures
- 3the runtime draws world and hero, depth tested
- 4the runtime owns the final canvas
used by diablo, doom
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.
man disasm
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.

