Robert Posted January 2, 2007 Share Posted January 2, 2007 SNES emulator 2007-01-01 - bsnes v0.019 released I'm releasing bsnes v0.019 today. This version contains Bandai Sufami Turbo support, new IRQ emulation code, and some various bugfixes. Unfortunately, this release is not entirely cause for celebration. Due to fatal errors in Microsoft's "enterprise class" c++ compiler package, I am no longer able to compile bsnes with profile guided optimizations. I have tested v0.018 with and without these optimizations, and the difference is a 40% speedup when PGO is used, even more significant than I had previously believed. However, bsnes has now become too complex for Visual C++ to handle. Unfortunately, there is nothing I can do about this, except wait for Microsoft to fix their compiler. (Warning: this paragraph contains personal opinions, skip it if you can't handle that) As if this wasn't enough, I'm now doing my best to wean my dependence from Microsoft's line of operating systems, as I'm particularly concerned about the black box nature of Vista and its DRM control mechanisms. This isn't a road I wish to begin traveling down, and thusly have no interest in upgrading to future versions of Windows. Therefore, as of late, I've been writing a UI wrapper that will allow me to code applications that are truly platform independent. The biggest goal for this library is to design a GUI for bsnes that runs virtually identically on both Windows and Linux/BSD. This is mostly complete, however there were many tricks I used in bsnes using the win32 API that I simply cannot do with GTK+ on Linux/BSD, such as the memory editor window subclassing. I will be porting bsnes to use this new UI wrapper, and in turn this will lessen the attractiveness / functionality of the bsnes UI to a certain degree. Perhaps the most devastating news is that I am still contemplating the idea of designing a dot-based PPU renderer for bsnes. As if the loss of PGO wasn't bad enough, this will likely eat away an unimaginable level of performance as well. I can only estimate the speed loss being between 100-500%. Yes, it will be that bad. And despite weeks of planning, I cannot think of a way to allow a scanline-based and dot-based renderer to coexist as selectable options, given their massive differences in implementation. And let's not even joke about SA-1 or SuperFX support ... those processors are each four to eight times more powerful than the SNES' main CPU. All of these speed losses will basically make bsnes mostly irrelevant as an alternative to ZSNES, SNES9x et al. Although I believe I really came close to a viable alternative with v0.018, I know that I cannot both create a mainstream emulator, as well as keep with my original goal to emulate the SNES as accurately as possible. The past few months have been very tough for me; trying to decide which of the above two goals to pursue. I've still not absolutely made up my mind. But for now, I've been sitting on a mostly untouched version of bsnes for the last few months, and have decided to release it to the public, profile guided optimizations be damned. I'm once again asking for help, if anyone can figure out why bsnes won't compile with PGO support, please let me know. I'd very much like to get one last PGO build of bsnes released before starting on a dot-based PPU renderer. But given the usual response I get from these requests for help, I'd suggest no one getting their hopes up that bsnes will ever be as fast as it once was again. The new version can be downloaded at the usual place. I'm leaving v0.018 up, as it may very well be the last stable, fast version of bsnes ever released.Source / Download Link to comment Share on other sites More sharing options...
Robert Posted January 3, 2007 Author Share Posted January 3, 2007 2007-01-02 - PGO and pipelining While not exactly good news, it appears the benefits of PGO are almost completely mitigated on poorly architected CPUs that have ridiculously large pipelines such as the Pentium IV and Celeron. I could go into technical details as to why, but I'm sure it'd just bore everyone. So I suppose if you have one of these processors, you don't have to worry about much of a speed loss if you decide to give v0.019 a try. Athlon 64 and Core 2 Duo owners, unfortunately, will most certainly notice the loss of PGO. I should also mention a good point made by Nach. My 40% reference was against a game I directly profiled with bsnes. The differences in unprofiled games is less significant, but still averages at least 20% faster. As an aside, I appreciate the kind feedback regarding the latest release; it definitely helps. Oh, and I forgot to mention yesterday that to use the new Sufami Turbo support, you must create a "bios" folder (or edit the path inside bsnes.cfg), and place "stbios.bin" inside of it. If you do, be sure to check out Poi Poi Ninja World. Albeit simple, it's the only enjoyable game that was released for the ST.Source Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now