<stella-emulator> — playing Oystron

This whole emulator is one custom element. The simplest usage — with the built-in toolbar so you can load your own cartridge:

<script type="module" src="stella-element.js"></script>
<stella-emulator controls></stella-emulator>

How to play Oystron

You command a spaceship defending the planet Stella's energy belt. Click the screen to focus it (this also enables sound), then press Enter — or the Reset button — to start.

The goal. Space oysters and enemies drift in from the right. Shoot an oyster repeatedly until it turns into a pearl. Your ship glows when it's carrying one — fly into the Pearls Zone (the grid of white dots) and press Space to drop it. Complete a row of eight pearls to earn a bomb.

Watch out: enemies that reach the left edge will try to steal your pearls — shoot the thief to rescue them before they get away.

The Oystron. Near the end of each level the screen flashes and the giant Oystron appears, and your normal shots stop working. Drop your bombs (Space) and lure it over them to destroy it for a big bonus, then survive the high-speed Warp phase into the next level.

Scoring: oyster hit = 10 · enemy formation = 30 · Oystron killed with a bomb = 1530 (+100 for each bomb you have left). You earn an extra ship every 4,000 points.
Tip: hang out on the right side shooting left and right to harvest pearls, then dash down to complete a whole row at once.

The component emits lifecycle events — here's a live log of them from the emulator above (load a ROM to see stella-load fire):

waiting for events…

Or point it straight at a ROM URL and it autoplays (click once to enable sound, per browser autoplay rules):

<stella-emulator src="games/yourgame.bin" width="400px"></stella-emulator>

Controls. Click the screen to give it focus, then: arrow keys + Space for the joystick; for paddle games (auto-detected) move the mouse/trackpad over the screen and click to fire. Gamepads work too.

You can also drive it from JavaScript:

const el = document.querySelector('stella-emulator');
await el.loadURL('games/yourgame.bin');
el.gameReset();          // press the Reset switch — starts most games
el.pause(); el.play();   // transport
el.powerCycle();         // cold reset
// override auto-detected controllers if you like:
el.forceControllers('PADDLES', 'PADDLES');

The game above is Oystron © 1997 Piero Cavina — freeware, included here with its documentation. ROMs are processed entirely in your browser and never uploaded. Powered by Stella, compiled to WebAssembly.