Skip to content

Repository files navigation

Arkanoid (MSX) — disassembly

verify

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.

What's here

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.

Building

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 WAVs

make alone produces Arkanoid.rom in the repo root (gitignored).

How it works

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.

License

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.

About

Arkanoid (MSX) disassembly

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages