Is select/poll necessary? I thought that the original game just placed stdin into raw + nonblocking mode, which I think was tested to work. Output is to an ansi screen and is from a practical point of view not blocking the game's event loop. Is there more work to do other than debugging the game?
Of course we need the wrappers for select and poll at some time, but for this game I think it is not needed.
./tetris > /dev/tty1