For the GBA, I am under the impression that there are two ways to detect a button event:
Enable IRQs and set up a handler for the button event
Check a button's state during the vblank period
Which of these two techniques was typically used, and why? What factors would lead a game developer to choose one technique over the other, if neither one of them is "the one right way"?
Did this also apply to older Nintendo handhelds like the GB/GBC, and newer ones like the NDS?