New release posted. Perhaps the most important change was fixing a bug in the Windows port when the keyboard was used for input. For some reason, the IsDialogMessage() function I use for tab key support was causing the main window to emit the Windows error beep every time a key was pressed after a few minutes of use. I do not know why this is, so I have simply disabled the tab key support to prevent this from happening.
Other than that, lots of polishing went into this release. UPS soft-patching will work with the recently released Der Langrisser v1.02 translation, for those curious. You can also store the UPS patches in GZ/ZIP/JMA support, and bsnes will detect this and decompress the patches first. Use the same ".ups" file extension for this, as it detects via file header.
If you wish to try out the newly added OpenGL support: start bsnes, go to Settings->Configuration->Advanced and set system.video to "wgl" (or "glx" for Linux users), and then restart the emulator. Please bear in mind that ATI's OpenGL drivers are an industry-wide joke, so I'd only recommend trying this on an nVidia or Intel video card.
• Fixed bug and re-enabled HDMA bus sync delays
• Emulated newly discovered IRQ timing edge case
• Optimized offset-per-tile rendering
• Added state-machine implementation of S-DSP core, ~5% speedup
• Added SPC7110 detection, will now warn that this chip is unsupported
• Fixed very annoying Windows port OS beeping noise when using keyboard for input
• Linux port will now save most recent folder when no default ROM path is selected
• Added OpenGL rendering support to Windows port [krom]
• Fixed Direct3D pixel mode scaling bug [krom, sinamas, VG]
• Improved SNES controller graphic [FitzRoy]
• Added UPS (not IPS) soft-patching support; UPS patch must be made against unheadered ROM
• As always, cleaned up source code a bit
:: bsnes Official Site