Séance
Questions and answers about the cartridge and the neural networks inside it
The game
What is Séance?
A game for the Nintendo Entertainment System. You hold a séance: you spell questions on a spirit board, and a spirit answers through the planchette, one letter at a time. You have five nights to learn who it was. It was designed by Benj Edwards and coded using Claude Code with Opus 5.5, at BX Foundry, in 2026.
What was Benj's role in creating this game?
Benj Edwards directed it, and originated the concept and the story. He conceived the idea of putting an AI language model in an NES cartridge that runs on original hardware. He decided what the game should be and how it should feel, wrote the story's opening and its closing words, asked for changes as he played it, chose among the options Claude Code prepared (pictures, music, screens and endings), named the Ghost Chip, and tested the game, including on a real NES console with an EverDrive N8 Pro.
All of the design work in detail, the programming and the technical work were done by Claude Code, Anthropic's AI coding agent, running Claude Opus 5.5, with several Claude Code agents working in parallel. That includes:
- the game's 6502 assembly code and its systems: the spirit board, the journal, the nights, the battery memory, and the sound and music engine;
- the NES graphics made from public-domain engravings, and the arrangements of the music;
- the neural networks: their training data, their training on rented GPUs, and the code that runs them on the 6502;
- the Ghost Chip's FPGA core;
- some automated testing;
- this web page.
Is it a real NES game?
It is an ordinary NES ROM: an MMC3 cartridge (iNES mapper 4) with 512 KB of program ROM, 128 KB of graphics ROM and 8 KB of battery-backed RAM for your save. Nothing about it needs a modern computer; the page here runs it in an emulator in your browser. The game supports the Famicom's Family BASIC keyboard (HVC-007); on this page your computer's keyboard stands in for it. This is version 0.11a with the no-chip language model (build test18). It is experimental. So far it has been tested in emulators and on a real NES console with an EverDrive N8 Pro flash cartridge.
Where do the answers come from?
From a small neural network that runs on the NES's own processor, a 6502-compatible CPU at 1.79 MHz. It chooses every word of every answer while you watch. There is no server and no internet connection, and the spirit's answers are not stored in the cartridge as sentences: the network writes them. A few short replies are the game's own (it remembers your name, and notices when you come back or repeat yourself), and the game decides what happens on each night; everything else the spirit says comes from the network.
The neural network
What kind of network is it?
A recurrent language model that works in words: a GRU (gated recurrent unit), a network that reads one word at a time and carries what it has read in a fixed set of numbers, its state. It has about 405,000 parameters in all, and it is shaped to suit an 8-bit CPU:
- One recurrent layer of 176 units. Its state is 176 numbers of one byte each, kept in the cartridge's battery RAM, so the night's questions and answers so far are part of what it reads.
- Ternary weights: each of the recurrent layer's 126,720 weights is −1, 0 or +1. About 51,000 of them are not 0, and only those take any work.
- A vocabulary of 4,096 words and punctuation marks. Each word's embedding, 64 numbers (262,144 of the parameters in all), is stored as 4-bit codes, so reading a word is a table look-up; the same codes score the words when it writes.
- The stage of the night is part of what it reads.
How can a 6502 run it? It can't even multiply.
With weights of −1, 0 and +1 it doesn't have to: a weight of +1 adds an input, −1 subtracts it, and 0 skips it. Most of those additions are compiled into the ROM as code, a few instructions for each nonzero weight; the rest run from lists. Everything is integer arithmetic. The network thinks of a word in about 1.1 to 1.2 seconds (62 to 75 frames of the screen in MAME) and shows the word's letters one at a time while it thinks of the next. The music, the candles and the keyboard keep going meanwhile: the game handles them every frame.
How does it read my question?
While you type it: each word once you type the space after it. When you stop for a moment it guesses that the question ends with "?" and reads on (if you type something else, it goes back). So the first letter comes sooner if you pause a moment before asking: in MAME about half a second after you ask, or 1.5 to 2.5 seconds if you ask right after the last letter.
How does it pick a word?
The words are grouped in 64 classes. It scores the classes and draws one at random from those scores, then scores the 64 words of that class and draws one, with a 16-bit random number generator (a linear-feedback shift register). Within an answer it never says the same two words in a row twice, and it leans away from words it has just used. An answer is at most 40 words and marks, and 158 letters. Words you type that it doesn't know (a name, say) it can say back, up to four in a conversation.
What was it trained on?
On about 95,000 short séances written for this game by a larger open language model, gpt-oss-120b, run on rented GPUs: six questions each, phrased the way players type (with typos, text-speak and off-topic questions), with answers that stay in the spirit's world. The no-chip model learned from those séances and from the Ghost Chip's larger model (below): half of its training target was the larger model's predictions. It was trained on rented GPUs too.
How does the game notice the facts of the story?
It watches the words the network writes. When an answer names one of the facts, the game records it in your journal. From the second night on, the words that would tell a fact you haven't found yet get a small bonus when the network picks a word, a little more each night; on the first night it answers without it.
Does it understand me?
Not the way a person does. It has learned which answers tend to follow which questions in its world. Questions like the ones it was trained on get sensible answers; unusual ones get answers in character that may wander, and now and then it says something odd. That is part of a séance.
Is it a large language model like ChatGPT?
No. It is a very small language model: about 405,000 parameters, where large language models have billions. It works in words, remembers the conversation only as its 176-number state, and everything about it was sized to the NES.
How do you know the NES computes exactly what the model says?
A Python version of the network does the same integer arithmetic. The 6502's arithmetic matches it on test vectors, and in our tests in the MAME emulator every answer was bit-identical to the Python version.
The Ghost Chip
What is the Ghost Chip?
By default, the game does not use the Ghost Chip. But Benj thought it would be fun to have an even better AI language model in an NES cartridge.
The Ghost Chip is a new accelerator chip created for this game that helps channel the spirits of the dead. In reality, that means a custom core for the FPGA (a reprogrammable chip) in an EverDrive N8 Pro flash cartridge: the cartridge's usual MMC3 mapper plus a small vector engine that does the neural network's multiplications, reading the network's weights from the cartridge's memory.
It runs a larger version of the spirit, which you can choose under the screen on the emulated version on the web. Its network is a word-level transformer, the kind of network behind today's chatbots, only very much smaller: 5 layers, 4,096 words and about 1.45 million weights. It was trained on the same séances, about 95,000 of them, written by gpt-oss-120b on rented GPUs, and it was trained on rented GPUs too. The no-chip model above learned in part from it.
How does it work?
It runs on an EverDrive N8 Pro, a flash cartridge with an FPGA, using a custom core: mapper 102, which we call N8L, an MMC3 plus a vector engine. The model's weights, 8-bit integers, sit in the cartridge's 8 MB PSRAM, and the engine multiplies them with the model's inputs and writes the sums back. The NES's 6502 runs the game, turns your question into words, runs the model's smaller steps and the sampling, and turns its words back into letters. In our MAME model of the cartridge it writes about 0.3 seconds a word.
Has it run on a real cartridge?
Yes. The Ghost Chip runs on a real NES console with an EverDrive N8 Pro loaded with its core (first tried on October 30, 2026). Before that it ran in our own MAME model of the cartridge, where every answer was bit-identical to the model's Python reference, and the FPGA core ran in simulation.
How does this page run it?
The page's emulator runs the cartridge's MMC3 side, and the vector engine is emulated in JavaScript on the page. Each engine operation was checked against the model's Python reference: in a test session of 4,738 operations, every output byte was the same. Here the engine's work is instant, so the spirit answers faster than the cartridge would. The Ghost Chip loads 3.7 MB more than the no-chip ghost.
The original ghost
What did the first version use?
A character-level network: about 150,000 8-bit weights, run on the 6502, writing one letter at a time from a window of the last 24 characters, with a dictionary of the 648 words it was taught so that every word it wrote was real. It runs from a 256 KB cartridge. You can choose it under the screen on the main page as "the original ghost", and download it there (seance_benjedwards_v0.9.nes).
Playing
How do I play here?
Choose the ghost under the screen (the no-chip ghost unless you pick the Ghost Chip or the original ghost), then click or tap the screen. On a computer, your keyboard starts in keyboard mode, where it works as the game's Family BASIC keyboard: type your question (letters, space and . , ' ? ! - :) and press Enter to ask. Backspace erases a letter (DEL on the Family BASIC keyboard), Home clears the question (CLR), the up and down arrows bring back your past questions, Tab silences it while it answers (STOP), and Esc, F6 or F8 opens the menu. F1 and F2 open the controls and the journal, F3 and F4 turn the music and the sound effects on or off, and F5 saves.
The line under the screen switches to control pad mode, where your keys are the controller: the arrow keys are the d-pad, X is A, Z is B, A is Select, and S or Enter is Start. Nothing types in that mode. Click the line again for keyboard mode; the page remembers which you chose.
A gamepad works too, and on a phone the controller's buttons appear under the screen: there you spell your question on the board. With the controller, the d-pad moves on the spirit board, A writes a letter, B erases, Start asks or silences it, and Select opens the menu (Select with up or down brings back your past questions).
Does it save?
The cartridge's battery save is kept in your browser's storage on this site, one for each ghost. You can also save from the game's menu.
Can I play it on a real NES?
Yes. All three versions can be downloaded at the bottom of the main page, with notes. The Ghost Chip version runs on a real NES console with an EverDrive N8 Pro, using its own FPGA core (the .rbf file beside the ROM). The no-chip version and the original version are ordinary MMC3 ROMs. The ROMs are the game alone; they contain no other company's code or content, apart from the open-source EverDrive framework the Ghost Chip's core is built on (MIT License).
NES and Nintendo Entertainment System are trademarks of Nintendo. Séance is an independent game, not made or endorsed by Nintendo. Tendendo is fictional.