October 10, 2026 at 12:00:00 AM UTC
SMBC: enemy data interpreter
Ported the enemy data interpreter to SMBC, the atom that walks the enemy object stream and loads new enemies as the screen scrolls.
EnemiesAndLoopsCore handles an idle slot: ProcLoopCommand (world 7's three-part loop counts passes and correct positions separately), the frenzy queue, then ProcessEnemyData — page control rows, the page-select bit in d7 of the second byte, the right-boundary window (objects spawn between the right edge and 48 pixels beyond, wait further out, skip behind), hard mode gating on d6, goomba-to-buzzy mutation, group enemies spawning 24 pixels apart, row $0e area jumps, and the residual sixth-slot check. KillAllEnemies and ExecGameLoopback came along for the loop command path.
Deferred to later atoms: RunEnemyObjectsCore and the InitEnemyRoutines jump table — the dispatch stands, every entry currently behaves as NoInitCode.
23 test scenarios against smb.asm behaviour. Commits b936448 and 15710ba; full suite green.
all entries