Скромное описание
Почему поле не по центру? Цвета подобраны плохо (оранжевый на сером), а курсор лучше сделать из 4 спрайтов за пределами клетки, а не внутри, чтобы лучше смотрелось, типа такого:
Пара замечаний:
1. Чтобы не было такого глитча после включения игры, нужно палитру устанавливать всегда на VBlank, даже если выключен экран:
2. Чтобы не было такого скачка после нажатия Start, нужно ставить прокрутку PPU $2005 после использования PPU $2006 (
Set the scroll last):
--------
UPD: Нашёл баг: если поставить флаг на клетку с цифрой, то открыть её не получится снова.
UPD2: Странный у вас код инициализации. В начале мусорный код после SEI и CLD: LDX $FF и TXS. Т. к. ниже уже правильный LDX
#$FF и TXS.
Также может быть проблема из-за BIT $2002 ; BPL $C017. Как написано в
http://wiki.nesdev.com/w/index.php/Init_code, состояние VBlank флага неизвестно, поэтому нужно добавить ещё один BIT $2002, хотя обычно ждут 2 раз (BIT $2002 ; BPL), но всё равно возможен пропуск первого ожидания и не пройдёт нужных 30 000 циклов. В Init code выше хорошо то, что после 2-го ожидания VBlank можно сразу установить палитры.
Мудрёный код очистки RAM.