Due to the way that input is handled in Nintendo games on the 3DS and BizHawk's Encore core, there are certain frames where changes cannot be made to the button and touchsreen state. There are two files in the repository which relate to these "non-polling frames". (Technically speaking, the term "non-polling frame" is a misnomer, but I've decided to keep using the term for the sake of brevity.)
This file displays non-polling frames as lag frames in TAStudio. Note that only the circle pad, face buttons, and touchscreen inputs are displayed correctly, as other input methods of the 3DS (accelerometer, gyroscope, etc.) are polled differently. Additionally, this will only correctly display non-polling frames in certain Nintendo games. From our testing, it seems like the script works for most Nintendo games, but there are some exception.
Due to the complicated nature of the locations of the non-polling frames, the script uses a giant array of non-polling frames rather than finding them in some algorithmic way. Because of this, the script can stop working if the movie is too long (in which case, the script should spit out an error). This script provides a way to generate more non-polling frames if need be. The output of this script can then be directly copied into the first array of the nonpollingframedisplay.lua
file.
To run the script, open up a US ROM of New Super Mario Bros. 2, remove all save data from the game, and start running the script from frame 0 (the easiest way to do this is by opening and closing TAStudio before running the script, as this pauses the core on frame 0). Note that the script will not work if TAStudio is open.