bsnes v030 released

Archived bsnes development news, feature requests and bug reports. Forum is now located at http://board.byuu.org/
Locked
byuu

bsnes v030 released

Post by byuu »

2008-03-23 - bsnes v0.030 released

I didn't want to release a new version so soon, however there is a rather serious bug in bsnes v029 where the path information for the save RAM files is discarded when one has not selected a default save RAM / cheat path from the path settings tab in the configuration settings window. Because of this, it gets stored to the base directory. For Windows users, this is c:\, and for Linux users, this is /

This bug forced my hand, so I'm releasing v030 to correct this issue. I also cleaned up the S-DSP emulation code to be more consistent with my programming style -- it gets bit-perfect matches to v029's wave output, so I don't foresee there being any problems.
Thanks to orwannon for the bug report.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Re: bsnes v030 released

Post by Verdauga Greeneyes »

byuu wrote:I didn't want to release a new version so soon, however there is a rather serious bug in bsnes v029 where the path information for the save RAM files is discarded when one has not selected a default save RAM / cheat path from the path settings tab in the configuration settings window. Because of this, it gets stored to the base directory. For Windows users, this is c:\, and for Linux users, this is /
Heh, I noticed this but forgot about it, sorry. Glad you got the bug report, and thanks for the release. What do you plan to work on now?
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Yep, noticed this too, just didn't think about it. :x
[url=http://www.eidolons-inn.net/tiki-index.php?page=Kega]Kega Fusion Supporter[/url] | [url=http://byuu.cinnamonpirate.com/]bsnes Supporter[/url] | [url=http://aamirm.hacking-cult.org/]Regen Supporter[/url]
ShadowFX
Regular
Posts: 265
Joined: Thu Jul 29, 2004 8:55 am
Location: The Netherlands

Post by ShadowFX »

I just wanted to report that this version still has these mysterious slowdowns for me. Thanks for the new version though.

Version 0.028 is still working fine here.
[i]"Change is inevitable; progress is optional"[/i]
byuu

Post by byuu »

Looked at v028, it uses the new libco, so it was some other change.

I don't have the hosting space to post every WIP, so let's figure it out in log N then.

Code: Select all

http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip10.zip
Does this version run at the speed of v028 or v029 for you?
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

byuu wrote:Looked at v028, it uses the new libco, so it was some other change.

I don't have the hosting space to post every WIP, so let's figure it out in log N then.

Code: Select all

http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip10.zip
Does this version run at the speed of v028 or v029 for you?
My Core 2 Duo laptop (which I was hesitant to test 'cuz it's been unstable, but it should be valid) apparently has the same problem that ShadowFX is experiencing.
Between 0.028 and 0.028 wip 10, SMB all stars intro (with everyone talking in the background):
0.028 gets ~52 fps
0.028 wip 10 gets ~32 fps (!)
ShadowFX
Regular
Posts: 265
Joined: Thu Jul 29, 2004 8:55 am
Location: The Netherlands

Post by ShadowFX »

byuu wrote:Does this version run at the speed of v028 or v029 for you?
This WIP version does not solve the slowdown problem here.
[i]"Change is inevitable; progress is optional"[/i]
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

byuu wrote: I don't have the hosting space to post every WIP
Might be faster to upload them all to a fileshare site as a zip and then FirebrandX can run through them all and determine which one it was that broke his speed.

Vegas guess so far: the new stretch-to-fit fullscreen changes are wreaking havoc on nvidia drivers!
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

A binary search may be fast enough at this point ;) We already know the change happened before (or in) WIP10.
byuu

Post by byuu »

Speed this up a bit, won't be able to post more until later tonight though.

Code: Select all

http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip03.zip
http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip05.zip
http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip08.zip
ShadowFX
Regular
Posts: 265
Joined: Thu Jul 29, 2004 8:55 am
Location: The Netherlands

Post by ShadowFX »

byuu wrote:Speed this up a bit, won't be able to post more until later tonight though.

Code: Select all

http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip03.zip
http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip05.zip
http://byuu.cinnamonpirate.com/temp/bsnes_v028_wip08.zip
WIP 03 still has the slowdowns here
WIP 05 crashes on ROM load
WIP 08 crashes on ROM load
[i]"Change is inevitable; progress is optional"[/i]
byuu

Post by byuu »

The wip03 result is all we need, I'll post wip02 in the evening or tomorrow morning. I don't have wip01 (don't always make them.)

As for 05/08 crashing, I guess it doesn't really matter much since v030 doesn't crash for you either.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

Yep, same result on my laptop. For the record, 0.030 is about 2 fps slower than 0.028 WIP 3.

Edit: oh, and whatever's causing our Core 2 Duos to crash on 05 and 08 isn't happening on my Athlon 64.. but like you said, it doesn't really matter.
byuu

Post by byuu »

diff -ru wip00 wip03:

Code: Select all

     if(caps.stretchrect == true) {
-      device->CreateOffscreenPlainSurface(1024, 1024, D3DFMT_R5G6B5,
+      device->CreateOffscreenPlainSurface(1024, 1024, D3DFMT_X8R8G8B8,
         D3DPOOL_DEFAULT, &surface, NULL);
     } else {
-      device->CreateTexture(1024, 1024, 1, flags.t_usage, D3DFMT_R5G6B5,
+      device->CreateTexture(1024, 1024, 1, flags.t_usage, D3DFMT_X8R8G8B8,
         static_cast<D3DPOOL>(flags.t_pool), &texture, NULL);
     }
RGB565->RGB888 makes up 99% of the difference, so that's apparently the problem.

Maybe try setting your desktop to use 32-bits per pixel video output? It might help.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

Huh, that's odd. I'm already using 32-bit colour.. My laptop's graphics card is a GeForce Go 7700 with 512MiB RAM, which is still one of the faster ones around. (although I doubt it can compare to an 8xxx series card)
Paratech
New Member
Posts: 3
Joined: Sat Aug 12, 2006 4:39 am

Post by Paratech »

Thank you for making this emulator. I just upgraded my PC to a Dual Core 2.6 (Athlon 5000) and Arbee and KillerBee/Mitchell seemed to like the emulator, so I gave it a try!

Street Fighter Alpha 2 works WITHOUT a patch? COOL! Clayfighters play the music w/VOICE! COOL!

Megaman X3 works! COOL!

I'm sure what is left that isn't supported will work someday. I'll think Arbee "Be patient and cool things will happen!"

Thanks again!

:lol:
-Nintendo fanboy since 1994.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

So... nvidia's drivers hate the rgb888 conversion?
ShadowFX
Regular
Posts: 265
Joined: Thu Jul 29, 2004 8:55 am
Location: The Netherlands

Post by ShadowFX »

I'm already running desktop in 32-bit also.
Last edited by ShadowFX on Mon Mar 24, 2008 4:45 pm, edited 1 time in total.
[i]"Change is inevitable; progress is optional"[/i]
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

FitzRoy wrote:So... nvidia's drivers hate the rgb888 conversion?
Only on a Core 2 Duo, it seems.. atleast, my desktop has a GF6600 and an Athlon 64 X2, and it's fine.
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

Verdauga Greeneyes wrote:
FitzRoy wrote:So... nvidia's drivers hate the rgb888 conversion?
Only on a Core 2 Duo, it seems.. atleast, my desktop has a GF6600 and an Athlon 64 X2, and it's fine.
Are you running the same driver version in both boxes? If you are, then the bug might still be one of those driver bugs that manifests itself only on certain card models. I doubt the CPU has anything to do with it.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

FitzRoy wrote:Are you running the same driver version in both boxes? If you are, then the bug might still be one of those driver bugs that manifests itself only on certain card models. I doubt the CPU has anything to do with it.
It's possible I suppose. I think ShadowFX said he has a GeForce 7950 something, so it could be a 7-series thing. My laptop is using the latest leaked driver, 174.70, whereas my desktop is slightly behind at 174.16..
FitzRoy
Veteran
Posts: 861
Joined: Wed Aug 04, 2004 5:43 pm
Location: Sloop

Post by FitzRoy »

We should try to get 174.70 on all three boxes and see what the results are.
byuu

Post by byuu »

It's not a GeForce 7950 issue.

Roommate's PC we built uses GeForce 7950 GT with Core 2 Q6600, it gets ~3-5fps slower than my E6600. Nowhere near the dips you guys are seeing.

I would think the fact that we both are using Core 2 processors rules that out as well.

It's definitely the RGB888 conversion that's the culprit, now we just need to figure out why.
Verdauga Greeneyes
Regular
Posts: 347
Joined: Tue Mar 07, 2006 10:32 am
Location: The Netherlands

Post by Verdauga Greeneyes »

Is ShadowFX testing on a laptop? I can't remember.. Intel laptop chipsets generally run the FSB at a (much) lower speed than their desktop equivalents - could this become a bottleneck for the texture transfer into video memory at 32-bits? (I'm certain that my laptop's Core 2 Duo is a lot slower than a normal one - it runs at 2.0GHz, but just look at the speed I got even in 0.028)

Edit: by the way, why are you creating a surface/texture exactly 1024x1024 pixels in size? The code you posted is kinda out of context, so I suppose it might be obvious if I looked at the source code.
byuu

Post by byuu »

Edit: by the way, why are you creating a surface/texture exactly 1024x1024 pixels in size?
Max size is ~600x480 output, eg for NTSC filter with interlaced output. I rounded that up to the nearest power of two texture. Yes, 1024x512 is probably possible, but I'm not too worried about VRAM usage. It's also reserved in case one day I make something like hires HQ2x, or HQ4x (hahah.) We're at ~3-6MB total. Anything less, and you probably don't want to use bsnes anyway.

Voodoo 3 users and their 256x256 texture limit are out of luck.
Locked