Принципов работы светового пера два.
1) Как было сделано на писюке. Видеоконтроллер в паре своих регистров знает какой именно пиксель по состоянию здесь и сейчас рисует луч. Кнопку нажал - координаты получил. Дисплей в данном случае нужен чисто как координатная сетка по которой стробирование делается, кнопку нажал, пиксель в нужном месте мелькнул, перо поймало/не поймало.
2) В момент нажатия на кнопку пера через весь экран (либо через конкретный обьект) пробегает световой маркер, который детектируется фотоэлементом в пере. Координаты вычисляются через тайминги (в какое время погасло-загорелось, в какое время вспышка зафиксирована). При таком раскладе чем выше точность, тем тормозливее работа пера (нужен не один кадр прогнать пару светящихся осей чтобы уточниться). Таким образом работает дендюковый (и не только) световой пистолет. На современных матричных (не ЭЛТ) телеках принцип развертки мальца отличается, поэтому и в Duck Hunt на них поиграть не удаецца.
На ямахе (по крайней мере MSX2) скорее всего комбинация этих двух способов. Там есть прерывание по строкам, поэтому выводимую строку посчитать можно. Но нет регистра по горизонтальной развертке, поэтому горизонтальное положение пера можно определить либо вторым способом (прогоняя по строке световой маркер), либо до такта расчитывая тайминги. На тайминги полагаться опасно (потому-что существует куча реализаций MSX2).
Спектрумисты (и NESовцы кстати тоже) через это дело очень мрачно заморочены на создание потактово точных клонов оригинальных машин. Потому-что когда из архитектуры отжимается все допоследнего клока синхронизация по времени начинает роялить очень большую роль.