By "latest" Winamp, I'm referring to 5.093 (I didn't test 5.091, but 5.09 worked fine).
For a Winamp version history, see here:
http://www.winamp.com/player/version_history.php
By "broken", Winamp simply crashes in in_notsofatso.dll.
I'll gladly test any debug builds if you need a guinea pig, Disch.
I've more or less put NotSo on indefinite ice. I considered picking it up again, but if I do I'm moving away from WinAmp (foobar2k is a likely candidate, but I can't say I'm thrilled about it).
Winamp simply doesn't do it for me anymore. And I see more and more people moving from it these days (mostly to fb2k -- but to other things as well).
I might be more motivated if I could work solely on the back end music generation and have someone else code the GUI/Player interface. That's the main thing keeping me from working on my emu as well -- I have a blast with the emulation... but I just hate making the UI.
So, basically Notso Fatso is dead, is what you're saying. I'm glad it's open-source so someone can "possibly" pick it up, but the author of the code always knows the code best... :-(
I don't mind the idea of fb2k, but I've run into too many little tweaky UI-related bugs, which I myself can't even fix because the core UI of fb2k isn't open-source. I've reported them to no avail...
I'm now left wondering what people are going to use for NSF playback, without having to rely on standalone applications.
Either way, good luck with future endeavours :)
P.S. -- problem persists with Winamp v5.094 (came out a few days ago).
I was thinking of making a standalone NSF player library out of NotSo Fatso, so it could be easily used in various players (actually I might use the sound engine from Schpune since it used band-limited synthesis). I know someone who might be interested in writing a basic plug-in for Foobar2000 if a simple library is available.
I spent most of this morning and early afternoon tracking this bug down. All I can say is thank god for VMWare and the latest Microsoft Visual C++ Express Beta 2 (which has some seriously gigantic bugs, but, helped me clean up portions of Notso Fatso).
Anyways, I now have a working Notso Fatso plugin again.
Disch, your code is good, but horrendous in some parts :P. I also urge you to get friendly with the "const" directive in C/C++. It would've caught this bug from the get-go. It's amazing this plugin worked at all. You pretty much were running on pure luck with allocated memory pages...
Let me know if you want a patch or updated source/header files (which also work with the later VC++), so you can release 0.852 as a pure bugfix. Otherwise I can outline the problem here in detail, and let other people deal with building their own DLL (not my recommendation).
Oh, also, one other thing: Disch, can you please provide me some links to some "NSF Shadow" files? Whatever the heck those are...
Thanks.
NotSoFatso works fine for me in WinAmp 5.094... I haven't tried 5.1 yet.
Actually, it's working purely by chance (depends on where pages of memory are being allocated). :-)
For the fixed DLL (and updated readme):
http://jdc.parodius.com/NotsoFatso_0851-fixed.rar
Have fun.
Awesome koitsu =D.
Sorry if I seemed like I lacked interest... it's just that maintaining old work isn't my most favorite of things. I don't want to seem unappreciative though... I really am thankful for the fix =D
No problem. I may actually take over the project, but anything relating to audio is -- by far -- one of my worst subjects.
I'll have to see if blargg will come out with some sort-of audio API which I could use. :)
BUMP
There's another bug that's been rubbing me the wrong way for quite some time, but I've been too lazy to actually fix it. Could I perhaps snag the source for your bugfix, koitsu? Or could you tell me what you changed? Or... better yet... can't you throw this line in there and recompile for me because I'm lazy? :
Code:
mWave_TND.bTriLengthEnabled = !(v & 0x80);
Goes in CNSFCore::WriteMemory_pAPU, in the 0x4008 case. Line ~229 of NSF_Core.cpp
Stupid oversight that's been there forever -- without that line the Tri Length counter is always disabled -- went unnoticed for a long while because most games use the linear counter instead, but in nsfs like RC Pro Am, it's very noticable.
No problem man.
Re: The code changes I did previously:
They're quite vast. There were about 250+ warnings and a few hundred errors when building Notso Fatso with VS2005 (yes, the Beta, but likely the compiler warning checks are going to remain); just common coding issues which should've been done differently, etc. Generally very minor things, but took a lot of time to fix up since there were a lot of them...
I still have the code laying around, of course, but I don't think the vcproj will work on older Visual Studios. :-( And I don't know how to use the IDE to create the equivalent of a diff/patch which you could apply.
I'd *really* love to port all of Notso Fatso to something like MingW or (ugh) Cygwin, since I really don't like the Visual Studio environment. I'm pretty sure this is possible to do, and it's on my TODO list.
Re: Triangle Length counter fix: I'll fix this up in my local copy, rebuild, and post a zip/rar as well. Probably will call it -fixed2 (I refuse to increment the version number as I'm not the author and don't want to confuse people in regards to future builds...)
koitsu wrote:
Probably will call it -fixed2 (I refuse to increment the version number as I'm not the author and don't want to confuse people in regards to future builds...)
Or call your fork "Koitsu Fatsu"
tepples wrote:
Or call your fork "Koitsu Fatsu" :)
Ha, that's a cute one. I think I'll stick with the original name; I don't want to make a "fork" of anything, because forking software usually ends up confusing the living daylights out of end-users (all the MAME spinoffs are a great example).
But it still put a smirk on my face ;-)
Mainly for Disch, but others interested as well:
I went ahead and applied your triangle length counter fix to the code and uploaded a new binary/rar set (referred to as "fixed#2"):
http://jdc.parodius.com/NotsoFatso_0851-fixed2.rar
Feel free to snag it; I can tell an audible difference in R.C. Pro-Am song #6 (using the zophar.net NSF archive version).
You don't notice the difference in track 1? ;D
Anyway, excellent! Thanks a bunch.
Feel free to do whatever with the version number or anything else. It's growing more and more unlikely that I'll ever work on this again.
Disch wrote:
You don't notice the difference in track 1? ;D
I didn't listen to it long enough. Don't get me wrong, R.C. Pro-Am rocks -- except for the yellow car that fucking CHEATS! ;)
Quote:
Anyway, excellent! Thanks a bunch.
Feel free to do whatever with the version number or anything else. It's growing more and more unlikely that I'll ever work on this again.
No sweat.
There are some outstanding bugs which I'd like to track down and squash, but I'm not all that familiar with the code (obviously). I'll see if I can come up with a list, and maybe you can help point me in the right direction.
One major one which comes to mind: disable the Highpass filter, then play Gimmick (from Kevin Horton's NSF archive: Famicom\Sunsoft\Gimmick.nsf), song #4. You'll notice there's some completely, uh... I don't even know how to describe what's going on. :-)
Just on the odd chance that anyone's working on any aspect of Notso!Fatso anymore, I just thought I'd mention that there seems to be something seriously wrong with the NSFE shadowing under every version of WinAmp I've tried on an AMD64 machine running 32-bit Windows XP. It's fine on every other computer I've tried, but the shadows just will not work on my AMD64 box.
Among the things I've tried are enabling / disabling execution protection and the page address extension, and trying it in winamps from good old 2.x up to the latest 5.2.
The playback and everything else is okay, it's just the shadowing results in tracks that either play or are ignored basically at random, sometimes going from playing right to not working between doubleclicks.
I dunno... just find it weird that it'll work fine on 32-bit windows on my laptop, but won't in 32-bit windows on a system with an AMD64 chip.