Language…
18 users online: Adriel_Isaque, arantes, bravetoaster, Donb_Rgas, Eryck, EvanEMV, Hayashi Neru, Kerfuffle, Knetog, Koopster, MADMAN555555552,  Major Flare, Morsel, Nciktendo, Ringo,  sincx, Slimeman01, Soonstar - Guests: 99 - Bots: 148
Users: 55,573 (2,476 active)
Latest user: TJPlayz

Muting the original music

For Super Mario Odyssey 2.0, I plan to use external WAV music files, via the MSU1 add-on in bsnes. However, at the same time, I'd like to be able to enable or disable echo for the sound effects. How would I go about either muting the four music channels or repointing the sequence data to "nothing" in a couple of existing tracks, so the music doesn't play, but the echo settings and sound effects remain active? For example, choosing the "Here we go!" track in LM would disable echo, while choosing "Cave Drums" would enable it. Pretty simple.

I'd prefer not to install a bunch of music hacks in my ROM, if possible, since they'll never get used. I've manually repointed the original Special World track to start at the SMB theme via trial and error (see: Super Mario Odyssey's title screen), so hopefully this wouldn't be much more difficult.

Any help is greatly appreciated! :)
If you play the sound effect for pausing, it turns off music. If you want to avoid using addmusics. However if you want to avoid addmusic, you'll need to hijack/nop a ton of STA $1DFB and such.

It's probably easiest to just use addmusic and insert an empty song with the echo command, and one that turns it off. r1
I own a community of TF2 servers!

ASMT - A new revolutionary ASM system, aka 65c816 ASseMbly Thing
SMWCP - SMW Central Presents a Product- tion long name

frog

http://esolangs.org/wiki/MarioLANG
Actually, I plan on keeping various music cues intact (e.g. invincibility, death, game over), so I really wouldn't need to hijack any $1DFB writes. I'd just make sure to set each level to use one of the muted tracks (and I've removed the overworld, so no need to worry about that).
Holy crap! I don't know what's more shocking.

1) BMF is active.
2) BMF is active at SMWC.
3) BMF is actually working on SMW hacking.
4) BMF has apparently resumed the Odyssey project.
5) HOLY CRAP, IT'S BMF!
Originally posted by Smallhacker
Holy crap! I don't know what's more shocking.

1) BMF is active.
2) BMF is active at SMWC.
3) BMF is actually working on SMW hacking.
4) BMF has apparently resumed the Odyssey project.
5) HOLY CRAP, IT'S BMF!


Holy crap! I don't know what's more shocking.

1) Smalls didn't know he came back quite a while ago.
2) Smalls spammed (lol backseat modding).
3) Smalls is actually surprised about something.
4) Smalls has no contributed to helping BMF.
5) HOLY CRAP, IT'S A POST BY SMALLS!


Anyways, BMF if you wanted to, you could find out where the actual song data starts at hex edit (/make a patch) that changes the song data to a r1r1 and with a echo command enable/disable thrown in in hex. I don't know what r1 is in hex though, and you'd need to know a little bit more stuff.

Tag (i) was not closed.
Tag (i) was not closed.
I own a community of TF2 servers!

ASMT - A new revolutionary ASM system, aka 65c816 ASseMbly Thing
SMWCP - SMW Central Presents a Product- tion long name

frog

http://esolangs.org/wiki/MarioLANG
6) Smallhacker made a completely off-topic post.
7) Smallhacker didn't see the hack thread BMF made a couple months ago.

*shot*

Have you tried AddmusicM? It has an N-SPC command for writing any value to any SPC-700 register, I think, so if you know which one controls which channels are active, you could use that. Then again, that might not be quite what you want...look into $2140-$2143, maybe?

----------------

I'm working on a hack! Check it out here.
Like I said, I would prefer not to use any Addmusic patches. It seems silly to waste a bunch of space and potentially break my ROM just to silence two existing music tracks. :P

On a promising note, I found the echo commands for "Cave Drums" (EF F6 00 00 F1 04 6C 00). Changing the F6 to 00 silences the echo, so I know I'm on the right track. Now how do I go about looping back to this point ad infinitum? Is there a list of hex commands somewhere, aside from the few I found in the Music Porting tutorial?

I'm so close...
i don't really see how addmusic wastes a bunch of space unless you actually use it for inserting custom music. And you'd only need to use the tool once really.

iirc SNN made a list of every hex command, but it's for addmusic. Although, some are just the same as vanilla smw.

also italics
I own a community of TF2 servers!

ASMT - A new revolutionary ASM system, aka 65c816 ASseMbly Thing
SMWCP - SMW Central Presents a Product- tion long name

frog

http://esolangs.org/wiki/MarioLANG
Originally posted by Fakescaper
iirc SNN made a list of every hex command, but it's for addmusic. Although, some are just the same as vanilla smw.


Yeah, I think E9 is the loop command:

Quote
E9- Call Loop E9 XX YY ZZ ZZ is number of times YYXX is repeated


I'm not quite sure what you'd put in for YYXX, though...the lower two bytes of the location of data that you want to loop?

(Also, I got ninja'd in my previous post and couldn't edit it.)

----------------

I'm working on a hack! Check it out here.
may want to note that the loop command is not for something like looping back to the start of the song.
I own a community of TF2 servers!

ASMT - A new revolutionary ASM system, aka 65c816 ASseMbly Thing
SMWCP - SMW Central Presents a Product- tion long name

frog

http://esolangs.org/wiki/MarioLANG
This should do it:

02: Here we go!
Code
Song pattern pointers:
73624-7363D	[D6 18 C6 18 E6 18 F6 18 E6 18 F6 18 06 19 16 19 46 19 26 19 36 19 FF 00 AC 18]

Replace all of this but the first pointer(18D6) with zeroes. This makes only the intro portion of the song play without looping.

Channel pointers (1st part of pattern):
Code
73650-7365F	[95 49 F6 49 24 4A DE 49 C6 49 3A 4A 0C 4A AF 49]
In a similar fashion to what was done above, replace all of the bytes except for 95 49 with zeroes. This mutes all but the first channel.

Code
1st part of pattern, channel 0:
7670F-76728	[F0 DA 01 E2 36 DB 0A DE 00 00 00 30 6D BE 24 BA 0C B5 0C B4 C7 B5 B7 30 C6 00]

Here, zero out all but the first byte, #$F0. This should be kept because it's the command that disables echo.

06: Cave Drums
Code
Song pattern pointers
734EC-73501	[8A 17 9A 17 AA 17 BA 17 AA 17 BA 17 AA 17 CA 17 CA 17 FF 00 76 17]

You know the drill. Replace all of the bytes except for 8A 17 with zeroes.

For the last step, replace the bytes from 75FD2 to 75FD9 with this:
Code
75FD2-75FD9	[C7 C7 C7 C7 C7 C7 C7 00]
So, what is this for? A bug in SMW's SPC engine makes the echo very quiet if few "notes" are played. However, the problem goes away simply by adding rests(#$C7) to the end of the first part in the pattern.

If all of these steps are followed, the tracks should work exactly as you described, BMF. Choosing "Here we go!" in LM disables echo, while "Cave Drums" enables it.
Heheh...thanks, Mattrizzle, but I actually figured it out myself last night. ;)

My solution was pretty similar to yours, except for that string of rests in track 06. I did notice that the echo started really quiet and gradually got louder as more sound effects played; I guess this explains why. Thanks for the insight. :)