ROM Hack Question Is there a simple way to remove music from XCI?

Elliander

Well-Known Member
OP
Member
Joined
Sep 16, 2011
Messages
634
Trophies
1
Location
Illinois
Website
elliander.etherealspheres.com
XP
1,449
Country
United States
In my setup, I have multiple TVs and sound bars near one another - 2 are even side by side. This is for LAN play of games like Splatoon 2 and Mario Kart, but there's a problem : The music is never synchronized across consoles even though the game is otherwise synchronized and Nintendo does not like sound settings while simultaneously requiring LAN play for local multi-player of Splatoon 2.

At present, the solution is to turn the audio off on all but one sound bar, but that means only one console gets to experience sound effects.

The simplest solution would seem to be exploring the contents of the XCI files I dumped myself from my own legit carts and then just delete the music tracks. Then all sound except music will work allowing a single music experience rather than a horribly layered track that drives everyone crazy.

For reference, attached is my current setup: two 55" 4K TV vesa mounted onto stands to stick over edge, two 36" 2.1 sound bars, and the furniture I designed and built myself to manage wires on the bottom with everything plugged into surge protectors that are plugged into a voltage regulator which has a single power cable in the back that plugs into a UPS in the basement. All ethernet plugged into a network switch, and the back has integrated power and ethernet ports while the front left has USB charging ports I hand carved in. The middle center has HDMI cable management with two HDMI switches for up to 14 consoles all leading to rear HDMI ports for TVs to plug into so everything works in a self contained environment on wheels that can be moved anywhere easily. Planning on adding additional HDMI controls so any device can play on any TV simultaneously, without going too long for 4k, and leave PSVR ports open, but for right now the Nintendo sound issue is what I'm trying to solve. I'll probably build an improved version next year once I get all the issues worked out.

I'm also planning on building a shelf setup for controller management and charging to free up space for more consoles likely sooner.
20190526_213253.jpg
 
  • Like
Reactions: Green Mii

Elliander

Well-Known Member
OP
Member
Joined
Sep 16, 2011
Messages
634
Trophies
1
Location
Illinois
Website
elliander.etherealspheres.com
XP
1,449
Country
United States
Deleting sound files may crash game.

Good point. I wondered about what would happen if the game looked for an audio file that wasn't present.

What you could do is instead of deleting files, use LayeredFS to replace the music files with dummy files.

Good idea. How would I identify all of the music files in a game, or are all the audio files in the same location? And what would you suggest I replace them with? If they loop the audio, without checking file size, I'm guessing any length empty audio file would do.

If that works it would take care of XCI games, with the exception of audio files in updates. Then I'd just mark the file with music turned off to mount when playing in LAN giving preference for the unmodified Switch to have the music.
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
I have not explored the Switch sound formats yet but most game console formats since... probably the GBA have had an internal volume level in the track itself or the setup for it. If you can find this then set it to zero then you have your silence patch, even if technically it is still playing in the background of the game.
If it is just LAN play or something it disables it in but it still has it for single player then you might be able to make a cheat using said single player and have the location transfer across.

After that then yeah deleting the track and hoping it does not crash things, making a track of silence and going that, or adding a section of silence right at the start (if there is not already one) and find the loop command (for games it usually exists for both the wave and the sequenced/tracker formats) before looping that 9999999....9999 times. If necessary you can combine both and find a suitable donor track and overwrite the others with that.

There is a third way we occasionally use for ripping audio tracks wherein sound is ripped, inverted and then used to cancel out whatever tracks or effects are playing that you can't otherwise work around or be bothered to work around. Not hard in theory at all here (rip track using headphone cable and something like audacity, press invert in said same, play back inverted track matching the start of the track in the game) but would be awfully tedious to do it for every time you want to play the game*, not to mention I don't know how accurate the Switch sound engine timer is to see if it drops a fraction of a note here and there (the DS one does, as do many other things) in a bid to speed things up.

*I suppose you could have it go into the laptop, have a program that takes the timing from the first few bars and then syncs it back into the speaker.

Of course this all assumes "get a set of headphones" is not an option.
 
  • Like
Reactions: Elliander

Elliander

Well-Known Member
OP
Member
Joined
Sep 16, 2011
Messages
634
Trophies
1
Location
Illinois
Website
elliander.etherealspheres.com
XP
1,449
Country
United States
Huh. That would be way easier if available. I hadn't considered that since I haven't messed with cheats or even game mods personally.

If anyone knows of any I'll check it out, otherwise this weekend I'll see if I can remove the music tracks from the XCI files.

I have more than one physical copy of each game, and therefore more than one header. Does anyone knows if it matters if I use the same header on more than one Switch in offline LAN, or should I inject the headers?
 

Green Mii

Well-Known Member
Member
Joined
Apr 12, 2015
Messages
206
Trophies
0
XP
2,154
Country
United States
Good point. I wondered about what would happen if the game looked for an audio file that wasn't present.



Good idea. How would I identify all of the music files in a game, or are all the audio files in the same location? And what would you suggest I replace them with? If they loop the audio, without checking file size, I'm guessing any length empty audio file would do.

If that works it would take care of XCI games, with the exception of audio files in updates. Then I'd just mark the file with music turned off to mount when playing in LAN giving preference for the unmodified Switch to have the music.

The location of music varies by game. I know that Mario Kart 8 Deluxe's is in Audio\Resource\Stream. As for what to replace it with, you could probably just replace it with an empty audio file. But if the game does check the size of the audio files, you could lower the volume of each song to 0 through Audacity and replace them like that, but that would also be rather tedious.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    HiradeGirl @ HiradeGirl: Have a nice day. Life. Week. Month. year.