Mupen64 is a Nintendo 64 emulator useful for its customizability. There are many forks of Mupen64, the most documented of which is Mupen64-RR v0.5, which is nearly universally used for TASing Super Mario 64. To download Mupen64-rr (new Mupen), click here.
Mupen64plus (stylized as mupen64plus) is an emulator used for standard gameplay. It is generally preferred in this regard over Mupen64. Mupen64plus (and OpenEMU, a multiconsole emulator that uses the Mupen64plus core) is also allowed for Super Mario 64 speedrunning.
Mupen64-RR (stylized as mupen64-rr) is an emulator used for TASing. It is most commonly used to record TAS movies. The file type used for the movies are: ".m64" and ".st", m64 is the movie, which can be launched if you go to "Playback Movie" but if you have started from snapshot, you will need a .st file in order to make the movie work, otherwise the movie will not start.
TASing with Mupen64-RR
Open a Super Mario 64 ROM in Mupen64. Go to Utilities --> Movie --> Start Movie Recording. Type in a name, author, and/or description if you wish. You can also choose to start from the start (when you boot it up), or you can choose the star from a snapshot you have made. Click on OK, and your TAS will start. Press - or + to speed up or down whilst recording. You can also press \ (the slash usually above RETURN) to advance a single frame. To unpause/pause, press Pause. If you don't have a Pause button on your keyboard, go to the settings, and change the hotkey from Pause to something else. To continue from a TAS, put the movie settings in "read only" mode. Then when the TAS stops at the time you want to continue, then turn off the "read only" mode. After that, save a state and reload it to continue a TAS.
Hacked versions of Mupen64-RR
Because Mupen64 does not have perfect emulation accuracy, there are several hacked versions of Mupen to deal with this, as well as to allow for additional functionality.
Mupen64-Lua supports Lua scripting, which gives Mupen64-rr much more power for testing and brute forcing. It is used for TASing, as well as for testing and preparing.
Mupen64-PUs is a modified version of Mupen that crashes during certain float-to-short exceptions just like the Nintendo 64 console does. This is a useful alternative to console verification, but not as reliable, because there are still some unknown crashes.
Mupen64-WiiVC-RTZ is a version of Mupen that emulates the Wii VC Round-To-Zero oversight. It has been used, among other things, by pannenkoek2012 to TAS the Bowser in the Fire Sea 0x A presses run.