Если на NES и SNES достаточно посмотреть на биты нажатых кнопок в определённых байтах в памяти, то на Сеге в байте надо долбить один бит, выпрашивая у геймпада нажатые кнопки через соседние биты.
Плохо смотрел.
NES - 8 раз (для каждой кнопки) по 1 биту с порта $4016. (1 джойстик).
На MD 3 кн. - одно чтение выдает сразу 6 бит (UDLRBC), другое чтение выдает 4 бита (UDAS). Порт $A10003.
Что касается 6 кн., то выдается 4 бита (XYZM), но перед этим несколько команд, отсылается, а не одна, на получение этих кнопок.
Касаемо Z80, почти все игры, на время опроса джойстика, блокируют его, так как возможны какие-то проблемы, если этого не делать.
Но на NES (и Famicom), игры, использующие dpcm семплы, опрашивают порты джойстиков несколько раз (минимум 2 раза), так как они повреждают данные с портов. Проблема исправлена в европейском NES.