News:

11 March 2016 - Forum Rules

Main Menu

Snes9x MSU-1 Support

Started by qwertymodo, November 10, 2016, 03:37:14 PM

Previous topic - Next topic

johnm

#80
Msu1 support is really good actually but theres a thing. Is there a easy way to add only certain custom songs to the rom. For example, theirs a rock version of Mega Man 7, and the msu patch makes all the bgm metal, which doesn't keep the variety is there a way to only add certain msu bgm.
EDIT: found a way, just remove the .pcm

Also if you want your own music to be added how do you do that simply, like a simple renaming to the track number and conversion to .pcm not some hardcore hex editing, I'm not really a hacker. If not, as a request if possible can someone make a custom bgm snes msu application.

DarkSamus993

Quote from: johnm on March 01, 2017, 02:48:35 PM
Also if you want your own music to be added how do you do that simply, like a simple renaming to the track number and conversion to .pcm not some hardcore hex editing, I'm not really a hacker. If not, as a request if possible can someone make a custom bgm snes msu application.
There is a very nice tutorial about creating looping pcm tracks included with the ALTTP MSU-1 hack. Two other sources for additional info here and here.

qwertymodo

Converting music is very simple, all you really need to do is convert your audio file into a 16-bit, 44.1kHz PCM WAV file, then run it through wav2msu (you might have to google a bit for a pre-compiled .exe).  However, if you do that, it will just loop from the end of the song to the beginning, as if you were just playing the song on repeat.  This probably isn't really what you want, so you'll want to actually find proper loop points.  I posted a guide on doing that here: https://www.youtube.com/watch?v=vU7nl1S8w6Q  Also, you'll probably want to adjust the volume of the file a bit.  If you do it in Audacity, it's the Effect>Normalize option.  I'd start with -12dB and play around with it a bit until you find a proper match.  That's pretty much all there is to it:

In Audacity:
-Trim the start and end points
-Determine a proper loop point
-Set the volume level
-Export as 16-bit 44.1kHz PCM WAV

In wav2msu:
-Just pass in the .wav file and the loop point sample number (e.g. msu2wav.exe mywav.wav -l 12345)

Kallisto

#83
So far for Non-msu1 games on the msu-version of Snes9x gx that it appears most non-msu1 games seem affected by the popping noise. I'm not sure if it is the version that was used as a base that had the bug originally or something else is causing it. Originally I never had this issue with the regular version, but this version seems to have it, and I remember the talks about this popping noise back in the past (which I thought it was fixed a long time ago).

By the way I've seen the tutorial for creating PCM files, but I've not seen a detailed tutorial on how to create the patch for X game, I was attempting to create one for Dragon Quest III, but I didn't get too far on it as I didn't even where to start when looking inside the files, basically from what I can tell that you need to locate the music source inside the game correct? (forgive my ignorance, I'm still learning how this works).

qwertymodo

Coding the patch is much more complicated, and requires dissembling the game to understand how it handles audio track loading, which is unique to each game's code, so there's no one-size-fits-all tutorial there. As for the popping, try v1.54.1 with the same config file and see if you still have that issue.

Bonk

Just an FYI, if the clipping is present in the audio file itself and not in the playback system. Then reducing the volume of said files will not remove clipping. Once something has been clipped in digital audio. It does not come back.

At this point some kind of patch that simply lowers playback volume with the MSU Present would probably be easier for a lot of people rather than trying to edit every single song again.

qwertymodo

Yes, I'm aware of the irreversible nature of clipping in the boosted files. Thankfully that hasn't really been much of an issue. The whole volume thing is a long and complicated ordeal, but suffice it to say that there will be no code patch or volume adjustment made available. Too many people have worked too hard for too long to finally very every existing implementation to match, we're not going to break it now. I know to a lot of people a volume adjustment seems like a simple fix, but you'll just have to take my word that there's a very good reason to not do that.  Yes, that means audio packs need to be re-normalized. I'm personally in the process of doing exactly that. You can find my progress over at zeldix.net in the msu-1 section (I'm on my phone, so no link, sorry, but it's stickied).

lexluthermiester

While BSNES has it's uses, it's never been a preferred emulator[for me anyway] because it lacks certain options. Snes9x is oh so better for general use, which makes this project a complete God-send!

Qwertymodo and Byuu, you both are a total bad-asses who deserve our gratitude. So on behalf of everyone who loves the MSU work and this emulator, please accept a hearty and sincere Thank You!

PS,

Qwerty, the creator of EX+ seems like a decent sort of guy. If you reach out to him, Robert would likely be onboard with working the MSU code into his emulator. His email can be found on the Google Play page.

qwertymodo

I didn't try reaching out to him because EX+ didn't seem to be under active development anymore, but I may give it a shot. If nothing else, retroarch supports it in their snes9x core, and that runs fine on Android.

lexluthermiester

Quote from: qwertymodo on March 02, 2017, 11:24:57 AM
I didn't try reaching out to him because EX+ didn't seem to be under active development anymore, but I may give it a shot. If nothing else, retroarch supports it in their snes9x core, and that runs fine on Android.

The last update was in July, but that's not surprising as it's a very mature emu. I believe the email is " info [at] explusalpha dot com ".

shadowAOD

Hey everybody :)
If you're looking for msu1 games with correct volumes

check out this post:
https://www.epforums.org/showthread.php?101813-Nintendo-SNES-Mod-ROM-SET-MSU-1-Patched-Games-for-SD2SNES

They've got quite a selection of custom tracks too
you'll need to login to see the links though

qwertymodo

Smokemonster is just repackaging and reposting my packs (with permission, of course), along with others he has found. If you don't want to sign up, you can also find most of those same packs here and here

shadowAOD

Quote from: qwertymodo on March 24, 2017, 01:27:31 PM
Smokemonster is just repackaging and reposting my packs (with permission, of course), along with others he has found. If you don't want to sign up, you can also find most of those same packs here and here
Oh Nice :D
I didn't know about that

pretty handy too since the website mega has a 1gb limit

Kallisto

#93
EDIT:

Nevermind! I got it to work! For some reason I was applying the MSU-1 patch improperly to LTTP, I think it was a file naming issue. Now if only if I can get the Redux Patch Edition to work next!

EDIT II:

*Issue Solved*

lexluthermiester

This comment is a bit off-topic, but related.

Patching MSU-1 support into ZSNES would be most excellent!.. Just a thought.

qwertymodo

No. Let it die.  I understand the nostalgia factor, but unless somebody wants to completely rip out the entire emulation engine and rebuild it from the ground up, there's simply no other way to bring it up to par with current levels of understanding in terms of accuracy.  It's hack jobs layered on more hack jobs.  And doing that work to fix it up would end up costing pretty much all of its benefits in terms of speed, without any real benefit aside from the aforementioned nostalgia factor. And the alternative, just throwing new features at it in its current state would only give the false impression that it's not a dead project, when that's exactly what it is.

lexluthermiester

Wish to qualify this response as statements of reasoning, not as attack or drama.

Quote from: qwertymodo on March 26, 2017, 03:28:56 PM
No. Let it die.
No. ZSNES is worthy of an update and for very good reasons; Functionality, fine-frained controls, options and UI appearance.
Examples;
1. Rewind function - Gameplay can be put in "rewind" reverting back a user defined number of frames. This can be useful when a player makes a mistake and only wants to go back a few seconds instead of going back to a save point or savestate.
2. Fine grained emulation speed options - ZSNES allows the player to setup a host of speed options which can fine-tune emulation to the player's liking.
3. Video filters - ZSNES is unparalleled in fine-grained video filtering options many of which are poorly implemented or not offered in other emulators
4. Fine grained audio controls - ZSNES has many options for controlling sound output, including master volume, interpolation and low-pass filtering. MOST of those options are not found in other emulators.
5. Cheat code options - The cheat engine ZSNES offers is second to none.
This list could go on, but those are the important highlights.

Quote from: qwertymodo on March 26, 2017, 03:28:56 PMI understand the nostalgia factor, but unless somebody wants to completely rip out the entire emulation engine and rebuild it from the ground up, there's simply no way to bring it up to par with current levels of understanding in terms of accuracy.
Perhaps that's true, but that doesn't change the fact that it is a well loved emulator that is still in wide-spread use.

Quote from: qwertymodo on March 26, 2017, 03:28:56 PMIt's hack jobs layered on more hack jobs. And doing that work to fix it up would end up costing pretty much all of its benefits in terms of speed.
As my programing experience is a bit lack-luster, I'll take your word for it.

Quote from: qwertymodo on March 26, 2017, 03:28:56 PMAnd the alternative, just throwing new features at it in its current state would only give the false impression that it's not a dead project, when that's exactly what it is.
That's a matter of opinion. It's not dead if it's still in use. And Fusoya released an update of his 8MB version not to long ago. So it's hardly dead. Every person I know[irl] who emulates in Windows or Linux prefers ZSNES. The sole exception to that is a friend who does tinkering in No$SNS and Higan.

Your point of view is understandable. SNES9x is a very good emulator, no one can easily argue against that point. However, it is lacking a great many features that make ZSNES truly shine. Maybe it needs some code cleanup and maybe MSU-1 would fit right in. Who knows if it's not tried. I'd do/try it myself, but the required skill is beyond my level of expertise. Thus the suggestion..

qwertymodo

#97
I'm not looking to start a flame war, so I'll stick to objective statements here:

1. Rewind function - Snes9x supports this
2. Fine grained emulation speed options - Again, Snes9x supports this, although I think it is broken in the latest builds.  It's been awhile since I've touched ZSNES, so there may be some minor differences depending on your specific definition of "fine-grained".
3. Video filters - ZSNES is FAR from unparalleled here.  They offer various resolutions, stretching modes, and a whopping FIVE interpolation filters.  They don't have any of the far superior xBRZ filters, CRT emulation (aside from basic scanlines, but no NTSC filter), and here's the big one: no shader support.  Snes9x runs circles around it in this regard.  Even higan/bsnes have better shader support, although they are stuck with integer scaling (unless the non-integer scaling patch made it into the main codebase, I can't remember), which some people find annoying.
4. Fine grained audio controls - Ok, fine, a few extra filtering options, nothing earth shattering
5. Cheat code options - Again, you're making claims that just aren't true.  ZSNES's cheat engine is exactly par for the course.  Absolutely nothing special about it.  Higan/bsnes have a far more robust cheat engine with features like multi-part cheats that no other SNES emulator has.  ZSNES has... well, it has cheats.  They work.

As for it not being a dead project.  That's not really a matter of opinion.  FuSoYa's build is the only public activity the entire project has seen in TEN YEARS (literally, v1.51 was the last official release, dated 24 Jan 2007).  That's dead.

lexluthermiester

#98
Quote from: qwertymodo on March 26, 2017, 04:37:37 PM
I'm not looking to start a flame war, so I'll stick to objective statements here:
Same here, just debating.

Quote from: qwertymodo on March 26, 2017, 04:37:37 PM
1. Rewind function - Snes9x supports this
Just looked in each version of SNES9x available. Not there. And the rewind function is a deal-breaker by itself. Now if it is there, can someone point out were it can be set?
EDIT; I have to beg your pardon and retract this point as well. Rewind is there in the newest version of SNES9x[1.54.1]. It is missing in the older versions which includes FuSoYa's 8MB version.

Quote from: qwertymodo on March 26, 2017, 04:37:37 PM
2. Fine grained emulation speed options - Again, Snes9x supports this, although I think it is broken in the latest builds.  It's been awhile since I've touched ZSNES, so there may be some minor differences depending on your specific definition of "fine-grained".
Just opened both SNES9x and ZSNES side-by-side and did a comparison. ZSNES has many more options than SNES9x. Even editing the snes9x.conf file just doesn't have as many options and they are not as refined.

Quote from: qwertymodo on March 26, 2017, 04:37:37 PM
3. Video filters - ZSNES is FAR from unparalleled here.  They offer various resolutions, stretching modes, and a whopping FIVE interpolation filters.  They don't have any of the far superior xBRZ filters, CRT emulation (aside from basic scanlines, but no NTSC filter), and here's the big one: no shader support.  Snes9x runs circles around it in this regard.  Even higan/bsnes have better shader support, although they are stuck with integer scaling (unless the non-integer scaling patch made it into the main codebase, I can't remember), which some people find annoying.
Ok, those are some good points. And after looking through the options currently available in SNES9x it seems clear I haven't looked at SNES9x in enough detail as of late. So I retract that portion of my above statement.

Quote from: qwertymodo on March 26, 2017, 04:37:37 PM
4. Fine grained audio controls - Ok, fine, a few extra filtering options, nothing earth shattering
This is where you're just completely incorrect. Maybe you just don't know? Open them both up side-by-side and then open the Sound Config in ZSNES and the Sound settings in SNES9x. The difference is very clear. ZSNES options for sound are much better. The volume level, Guassian interpolation and Dynamic Hi-Quality Lowpass are options that are simply beautiful to the ears.

Quote from: qwertymodo on March 26, 2017, 04:37:37 PM
5. Cheat code options - Again, you're making claims that just aren't true.  ZSNES's cheat engine is exactly par for the course.  Absolutely nothing special about it.  Higan/bsnes have a far more robust cheat engine with features like multi-part cheats that no other SNES emulator has.  ZSNES has... well, it has cheats.  They work.
Um again, open up ZSNES and any other emu and you'll see the differences. Code search function is excellent. Higan has a few interesting options, but BSNES is a read only situation. No comparison.

Quote from: qwertymodo on March 26, 2017, 04:37:37 PM
As for it not being a dead project.  That's not a matter of opinion.  FuSoYa's build is the only activity the entire project has seen in TEN YEARS (literally, v1.51 was the last official release, dated 24 Jan 2007).  That's dead.
ZSNES is open source so literally anyone can dev it. And FuSoYa's latest update was Dec 2015. And that's just FuSoYa's project. There are a few others as well including one on the ZSNES forums which was updated in 2015 as well. So if it's being worked on and the most recent two versions were less than 2 years ago, is that really dead? Nesticle is a dead project. ZSNES is still being actively, if slowly, worked on. That says, to me, not dead.

qwertymodo

Quote from: lexluthermiester on March 26, 2017, 06:21:07 PMJust looked in each version of SNES9x available. Not there.  And the rewind function is a deal-breaker by itself. Now if it is there, can someone point out were it can be set?
Yes it is.  Right here.




QuoteJust opened both SNES9x and ZSNES side-by-side and did a comparison. ZSNES has many more options than SNES9x. Even editing the snes9x.conf file just doesn't have as many options and they are not a refined.
Snes9x supports setting the frame-skip rate to the individual frame, as well as several different built-in speed increments.  If you *really* need to run the game at exactly x%, you're not going to be able to, but the differences really aren't significant for 99% of all use cases.

QuoteThis is where you're just complete wrong. Maybe you just don't know? Open them both up side-by-side and then open the Sound Config in ZSNES and the Sound settings in SNES9x. The difference is very clear. ZSNES options for sound are much better. The volume level, Guassian interpolation and Dynamic Hi-Quality Lowpass are options that are simply beautiful to the ears.
Ok, sure, but the APU emulation is pretty lousy, so even though you get nice filtering, the actual source audio isn't accurate to begin with.  Which is just part of the larger problem with ZSNES and accuracy.  You're hearing high-quality, incorrect sounds.  And you could achieve VERY similar results with a decent EQ without the emulator needing to support it.

QuoteUm again, open up ZSNES and any other emu and you'll see the differences. Code search function is excellent. Higan has a few interesting options, but BSNES is a read only situation. No comparison.
Snes9x has way better search functions than ZSNES.  And if you really want unparalleled, that would be bsnes-plus.  I stand by my statement.  ZSNES has cheat support, it is not in any way remarkable or "unparalleled" in that regard.

QuoteZSNES is open source so literally anyone can dev it. And FuSoYa's latest update was Dec 2015. And that's just FuSoYa's project. There are a few others as well including one on the ZSNES forums which was updated in 2015 as well. So if it's being worked on and the most recent two versions were less than 2 years ago, is that really dead? Nesticle is a dead project. ZSNES is still being actively, if slowly, worked on. That says, to me, not dead.
Just because a couple of people have messed around with it in the last 10 years is a far cry from active development.  Nobody has gone anywhere near the emulation core, which is in dire need of a complete overhaul.


Frankly, there's not really much point in continuing this conversation.  Back to the actual point, as you pointed out, ZSNES is open source.  Anybody can add MSU-1 support if they want to.  But they won't.  Because it's dead.  Also, because a lot of the guys related to the ZSNES project seem to have a vendetta against anything that byuu touches.