This project is a human-guided, largely AI-executed workflow.
A work-in-progress, byte-exact and reassemblable disassembly of Taito's Arkanoid (アルカノイド, 1986) for the MSX — a 32 KiB unmapped cartridge (product MSX-10).
The goal is a readable, commented, buildable source that reproduces the original ROM exactly, so the game can be understood and modified.
Arkanoid.asm master file: one PHASE over the linear 32 KiB window
Arkanoid.sha1 SHA-1 of the original 32 KiB ROM (`make verify`)
banks/banks_0123.asm banks 0-3 @ 4000-BFFF (always mapped; not a Konami triplet)
banks_0123.blocks z80dasm code/data map for the window
data/psg_hdr.asm Taito PSG index + 5-byte records
data/psg.asm Taito PSG streams (`silence`..)
data/pat_*.asm SCREEN 2 play / Doh / title tiles
data/wall.asm playfield filigree (ids 70–7F)
data/col_*.asm packed colour (`sub_4389h`)
data/spr.asm 8×8 sprite generator (ids 00–8F)
data/spr16.asm 16×16 SAT figures from id 90 + unused tail
data/sprcol.asm cone overlay planes (ids C0–DF)
data/nt_title.asm title nametable + credit strings
data/rounds.asm 32 playfield layouts (nibble-RLE)
data/rnd_obj.asm per-round obj lists + 11×12 bit masks
data/story.asm attract-mode crawl
data/ending.asm post-Doh crawl
music/ BGM WAV previews (`make music`)
sfx/ SFX WAV previews (`make sfx`)
gfx/ PNG sheets (`make gfx`): tilesets, sprites, metatiles,
and per-round SCREEN 2 composites (`gfx/rnd_NN`)
tools/workbench/ MSXDAW submodule (regen, romscan, gfx, taitoplay)
docs/ reverse-engineering notes (`game-notes.md`, `progress.md`)
Makefile build / verify / gfx / music / sfx
A clean checkout can assemble and verify with no leftover INCBIN bins.
You need sjasmplus, built from source
(z00m128/sjasmplus) and placed at
tools/sjasmplus. No original ROM is required to assemble or verify once
banks are source. (make banks and bank regen use the tools/workbench
submodule.)
make verify # assemble, then SHA-1 check against Arkanoid.sha1
make gfx # PNG tile / sprite sheets
make music # BGM WAVs from the rebuilt ROM
make sfx # SFX WAVsmake alone produces Arkanoid.rom in the repo root (gitignored).
32 KiB = 4 × 8 KiB banks at CPU 4000 / 6000 / 8000 / A000, assembled
as one window (banks_0123). There is no mapper. After every change the ROM
is rebuilt and SHA-1 checked so it stays byte-for-byte identical.
See docs/game-notes.md and docs/progress.md.
Original work in this repository (tools, comments, documentation, labels,
and project structure) is licensed under the Apache License, Version 2.0.
See LICENSE and NOTICE.
Arkanoid is © 1986 Taito. This project does not relicense the original game, ROM, graphics, or music.