Well, this thread inspired me to start playing around with widescreen aspect ratios, and I was actually able to get it to work! I have a patch at
http://groups.google.com/group/mupen64plus/files for the ricevideo plugin that lets you play games in widescreen.
After patching and building, you need the following setting in your RiceVideo.cfg:
You will now see the full area of the screen that you could before, plus whatever else is needed on the sides to fill out your aspect ratio. This works well enough for regular geometry, but the flat elements on the screen, such as the HUD, don't always look great when they are supposed to make a border around a 4:3 screen. Thus, I have a second option that you can toggle:
This will cause anything that gets drawn flat to be stretched instead of centered on the screen. A HUD will get stretched so that it stays around the edges of the screen. More importantly, some skies (Super Smash Bros is a good example) also get drawn in this way and they won't fill up the entire background if this isn't turned on. Fade to black/white effects also look better with this turned on as well, otherwise only the middle 4:3 section of the screen fades.
WidescreenStretchHUD is turned on by default for these reasons, but in games with very minimalistic HUDs that also use skyboxes to draw the sky, you could turn it off so your HUD isn't stretched.
Unfortunately, there are some games where this won't work very well. If you try to play Mario Kart, you will find that the sky is just a 4:3 square that won't get stretched even with WidescreenStretchHUD turned on. You will also notice that in games that combine flat objects with polygons, things might be out of place. For example, the arrows over players in Smash Bros don't quite line up.
This should work for any widescreen aspect ratio you throw at it, although if you get too wide (as in span it across 3 monitors) you'll start to see a fish-eye effect.
If I could find a way to figure out which polygons always move with the camera, I might be able to improve support for more games. I don't know if this is even possible, but let me know if you have any ideas.
I think I'll attempt do do the same thing with Glide64 next, I just found the appropriate sections of code in Rice first.