**Known issues:**
- button menus do not show up with Windows Vista/7 theme
- snesreader's multi-file archive dialog box doesn't redraw itself on
Windows when you choose different games
Windows Qt is buggy as always. Nothing we can do but keep waiting. I'm
also going to hold off on including pixel shaders until Direct3D PS
support is in. It's just going to annoy the 98% of users who can't use
them if I include them now. Yes, Windows OpenGL support is that bad.
Anyway, from v058 wip10, the following changes were made:
- cheat code editor grays out the slot#s when they are empty. I can't
put "Empty" in the text boxes for various reasons.
- added "Clear Selected" button and multi-selection support to cheat
editor. This is meant to quickly erase all slots.
- settings and tools windows start at 600x360 when bsnes.cfg is not
found / empty
- fixed the emulationSpeed section to start with input. instead of
config.
- open-folder concept requires the folders to end in .sfc to work now,
once again doesn't care what the ROM inside is named
(this is meant to mimic OS X .app folders)
- 21fx API extended to map to $2200, $2201 for now; mostly as a test
for A-bus access (21fx->VRAM DMA, etc)
(old $21fx registers remain for now)
I intend to release this on Saturday as-is even if a few small bugs
are reported. But if there's something major we can make another RC
build.
We've tested the latest release on at least a dozen computers now, all seems to be in order for a release.
Changelog:
- added 21fx support (more on this later)
- added movie recording and playback support
- added rewind support (enable under Settings->Configuration->Advanced, use backspace key to rewind)
- added speedup (fast forward) and slowdown key bindings
- audio no longer stutters on Windows when moving or resizing the main window
- co-processors can now specify their own clock rates instead of sharing the S-CPU clock rate
- Super Game Boy 2 now runs at the correct hardware speed, and not 2.4% faster like the Super Game Boy 1 does
- added Vsync support to the Windows OpenGL driver (Intel graphics drivers do not support this option, because their engineers are lazy)
- OpenGL driver no longer re-initializes when changing video synchronization, helps pixel shaders
- refactored user interface compilation; now split into several object files, auto-generated MOC files placed under src/obj/
- worked around a bug in the PulseAudio sound server that was causing the ALSA output driver to lock up [BearOso]
- rewrote and simplified the save state manager, it is no longer a part of the core
- S-DD1 and SPC7110 can now access up to 256MB via their MMCs
- re-added background and OAM layer toggling under the tools dialog
- added config file options to adjust emulation speed levels (config.system.speed*)
- added snesreader, snesfilter and supergameboy support to the OS X port
- added a really neat pixel shader that can perform point scaling to non-even multiples, eg it looks great even with aspect correction [Fes]
- upgraded to Qt 4.6.0 official
Debugger changelog:
- added memory export and import to the memory editor
- added bus usage analyzer: logs opcodes, memory reads, memory writes and M/X states to usage.bin file
- added disassembler that can trace both forward and backward from the current execution address
- extended read/write breakpoints to the S-SMP
- re-added trace masking option
Errata: there is one known bug in Qt 4.6.0 that affects the Windows port: menus attached to buttons show up as invisible on Windows Vista and above. I only use this on the file load dialog options button, and only to toggle the information pane on and off. Given that this is less severe than the bugs in the beta versions, I've upgraded anyway. I'll submit a bug report to the Qt team for this shortly. Also, my sincerest thanks to Bradley Hughes from the Qt development team for quickly fixing this show-stopper bug that greatly affected performance in bsnes v056.
Starting with this release, I wish to take bsnes in a new direction. It has always excelled in accuracy, as the only SNES emulator to offer a full 100% compatibility rate with all known commercial software. But over the years, it has also gained an impressive array of features and enhancements not found anywhere else. It is also the only actively developed SNES emulator with rapid, periodic releases. Its only achilles heel is the steep system requirements, which is quickly being overcome by aggressive new optimizations and steadily-increasing hardware speeds.
In an effort to make bsnes even more accessible to everyone, starting with this release, bsnes is now fully open source software, licensed under the terms of the GNU General Public License. I would like to work toward positioning bsnes as a truly general use emulator, and would welcome any help with this.
Specifically, I am looking for an interested Debian maintainer to package bsnes for Linux users; as well as for anyone interested in helping to optimize and improve bsnes as a whole. It also seems that many still do not know about bsnes, I'd appreciate advice and help on spreading the word. Please leave a message on my forum if you are interested.
I would also welcome and support any forks that target specific areas: a speed-oriented version, a tool-assisted speedrun version, netplay bindings, and so on. As part of this targeting, I've also released a custom debugger-enabled version, which trades a bit of speed in turn for best-in-class debugging capabilities.
Please check back here over the following few days, I'll be writing up documentation explaining all of the various unique features of bsnes, as well as detailed compilation instructions for programmers.
Changelog:
- corrected a small bug in HDMA processing; fixes College Football '97 flickering
- corrected ROMBR and PBR SuperFX register masking; fixes Voxel demo [MooglyGuy]
- DSP-4 driver AI bug fixed [Jonas Quinn]
- added save state support to the S-DD1, S-RTC, DSP-1, DSP-2 and ST-0010 co-processors
- fixed a freeze issue when the S-SMP encounters STOP and SLEEP opcodes
- Cx4 save states no longer need floating-point values, and are thus fully portable now
- added new custom file loading dialog; allows non-modal usage, screenshot previews and ROM info summary, among many other benefits
- added support for IPS soft-patching
- added blargg's File_Extractor library
- added support for archives compressed using 7-zip, RAR and BZip2; which is in addition to existing support for Gzip, ZIP and JMA
- state manager now properly updates the timestamp column on saves [FitzRoy]
- added OpenGL renderer to OS X port
- fixed system beep issue with keyboard input on OS X port
- fixed menubar visibility issue on OS X port
- fixed a Display handle leak on Linux port [snzzbk]
- X-video driver now releases SHM memory properly upon exit [emon]
- fixed Direct3D rendering issue that was blurring video on some cards [Fes]
- enhanced window positioning code for all platforms
- debugger is now GUI-driven instead of via command-line
- memory hex editor is now fully usable
- added PPU video RAM viewer to debugger
- added S-CPU and S-SMP tracing capabilities to debugger
- Qt version upgraded to 4.5.2, and compiled with optimizations enabled; runs faster but makes the binary slightly larger
- too many code cleanups to list
This is a maintenance release, but it offers a lot of bug-fixes and speed-ups, so it should be well worth the update. The debugger is not finished yet, so use it at your own risk. It is disabled in the binary release because breakpoint testing impacts performance. Once it is ready, I will release a separate binary with the debugger enabled.
Changelog:
- Optimized S-PPU emulation, provides a ~10-15% speedup in normal games
- Cleaned up cheat editor user interface
- Added save state and export data path selections
- Added workaround for a strange issue that caused PAL games to run at 60 fps sometimes
- Fixed sprite caching issue; fixes SD F-1 Grand Prix
- Fixed PPUcounter reset issue; fixes Bishoujo Janshi Suchie-Pai [Jonas Quinn]
- Fixed scaling on scanline, Scale2x, LQ2x and HQ2x filters on hires and interlace screens
- Fixed sizeof(bool) serialization issue for PowerPC architecture [Richard Bannister]
- Fixed cheat code sort ordering
- Fixed a bug with centering in fullscreen mode
- Fixed an audio pitch bug when changing frequency
- Fixed a volume adjust bug when frequency was exactly 32000hz
- Fixed X-video RGB rendering bugs [thanks to tukuyomi for testing]
- Fixed a file open dialog issue on Linux when using QGtkStyle [jensbw]
- Fixed a memory corruption issue involving QApplication::main() [giovannibajo]
- Added a preliminary debugger (disabled in binary releases due to associated speed hit)
- Added S-CPU and S-SMP stepping and tracing support
- Added read/write/execute breakpoint support
- Added memory editor (currently it can only view memory)
- Added screenshot capture support [kode54]
- Save state archives are now ~60% smaller than before
- Various code cleanup work, as usual (note: the debugger code is messy, as it is in-progress)