ROM Hack [change music request] OOT3D Ocarina of Time 3D (Seriously trying to change the music)

richardZeldaModder

Well-Known Member
OP
Newcomer
Joined
Sep 11, 2018
Messages
47
Trophies
0
Age
34
XP
237
Country
United States
Hi everyone,

I've searched the site, (and Google in general)... and it seems like we haven't found a way to change the music for Ocarina of Time 3D. I'm determined, so lets discuss it here.

I'm working on changing all of the music for Majora's Mask 3D, using orchestrations. Once that's done, I'll share. The method for this is to replace the [dot]bcstm files. These are easy to find after decrypting MM3D. For OOT3D, they can't be found. It seems like the code only refers to the original N64 music files. So, is there anyone here that's more advanced than me? Is there a way to hex edit or something?
 

richardZeldaModder

Well-Known Member
OP
Newcomer
Joined
Sep 11, 2018
Messages
47
Trophies
0
Age
34
XP
237
Country
United States
So, I managed to replace most of the music in Majora's Mask 3D. There are [dot]bcstm files that can be replaced. I'm trying to do the same thing with Ocarina of Time. It looks like when Grezzo worked on these.... they modified the [dot]bcsar files. It seems like they changed the code so that the game will play back [dot]bcstm files instead of whatever the original files are. For MM3D, they did this with all the songs. For OOT3D, they only did this for the credits/staff roll.

I'll keep looking at this, but I don't understand much about hex editing. Is anyone interested in helping me with this? It may never work, but I wonder if we can change the OOT3D [dot]bcsar file to be a "dummy" file like the MM3D file.

I've attached images of the files, and what they look like in a hex editor. You can see on the right where the code seems to reference the [dot]bcstm files...
note_oot3D.png
note_mm3D.png
hex_oot3D.png
hex_mm3D.png
 

HelpTheWretched

Well-Known Member
Member
Joined
Feb 4, 2010
Messages
320
Trophies
1
XP
1,636
Country
Canada
This might not help, but you could try checking out the hcs64.com message board. Some time ago, a few users there were working on understanding bcseq files and even made a prototype bcseq-to-MIDI converter. I haven't checked that site in ages, but with the goal being to edit and/or play back bcseqs, they may have made some good progress.
 

templeofhylia

homo supreme
Member
Joined
Sep 6, 2014
Messages
189
Trophies
2
Age
28
XP
1,296
Country
Canada
i don't have the slightest idea where to start tackling this, or if what you and i want to do is even possible. my forte is with making the actual music itself and not ROM hacking so my input is likely useless.
if i had to make a noobish guess, QueenStream.BCSAR needs to have its 3 partitions properly expanded (STRG, INFO, and FILE) to include tables and references to our BCSTM files like MM's JokerStreaming.BCSAR does. the layout and function of these partitions is documented on 3dbrew, and the FILE partition in MM is blank so maybe we can ignore that one. then whatever it is that triggers the game to play a specific CSEQ file needs to be modified for every area and cutscene so that it points to the respective BCSTM file instead. of course, i have no idea how any of this would be done.
maybe we should search for references to QueenStream.BCSAR or STRM_QUEEN_ROLL.BCSTM within files related to the credit sequence, since the game actually switches from a CSEQ of the original credit theme to a BCSTM of the new addition.
 

richardZeldaModder

Well-Known Member
OP
Newcomer
Joined
Sep 11, 2018
Messages
47
Trophies
0
Age
34
XP
237
Country
United States
When I extract the bcsar file (sound), there's a file called "GROUP_BGM_ALL.bcgrp"

Does anyone know what .bcgrp is and if this can be changed?

--------------------- MERGED ---------------------------

This might not help, but you could try checking out the hcs64.com message board. Some time ago, a few users there were working on understanding bcseq files and even made a prototype bcseq-to-MIDI converter. I haven't checked that site in ages, but with the goal being to edit and/or play back bcseqs, they may have made some good progress.

I haven't found any bcseq files when extracting OOT3D, have you?

--------------------- MERGED ---------------------------

i don't have the slightest idea where to start tackling this, or if what you and i want to do is even possible. my forte is with making the actual music itself and not ROM hacking so my input is likely useless.
if i had to make a noobish guess, QueenStream.BCSAR needs to have its 3 partitions properly expanded (STRG, INFO, and FILE) to include tables and references to our BCSTM files like MM's JokerStreaming.BCSAR does. the layout and function of these partitions is documented on 3dbrew, and the FILE partition in MM is blank so maybe we can ignore that one. then whatever it is that triggers the game to play a specific CSEQ file needs to be modified for every area and cutscene so that it points to the respective BCSTM file instead. of course, i have no idea how any of this would be done.
maybe we should search for references to QueenStream.BCSAR or STRM_QUEEN_ROLL.BCSTM within files related to the credit sequence, since the game actually switches from a CSEQ of the original credit theme to a BCSTM of the new addition.

What do you mean by "QueenStream.BCSAR needs to have its 3 partitions properly expanded (STRG, INFO, and FILE)" ???

I tried using on method to extract the file, and it just gave me the folders "Banks" "Groups" "WaveArchives" with nothing in them. But "QueenSound.BCSAR" gave some .txt files and .bcwav files
 

richardZeldaModder

Well-Known Member
OP
Newcomer
Joined
Sep 11, 2018
Messages
47
Trophies
0
Age
34
XP
237
Country
United States
When I extracted the bcsar file, there is a file called "GROUP_BGM_ALL.bcgrp" - Does anyone know what this is and how to extract/repack it? (If possible...)

--------------------- MERGED ---------------------------

Hey "templeofhylia" , how did you find CSEQ files??? I haven't seen these in any methods I've used to extract files so far...

i don't have the slightest idea where to start tackling this, or if what you and i want to do is even possible. my forte is with making the actual music itself and not ROM hacking so my input is likely useless.
if i had to make a noobish guess, QueenStream.BCSAR needs to have its 3 partitions properly expanded (STRG, INFO, and FILE) to include tables and references to our BCSTM files like MM's JokerStreaming.BCSAR does. the layout and function of these partitions is documented on 3dbrew, and the FILE partition in MM is blank so maybe we can ignore that one. then whatever it is that triggers the game to play a specific CSEQ file needs to be modified for every area and cutscene so that it points to the respective BCSTM file instead. of course, i have no idea how any of this would be done.
maybe we should search for references to QueenStream.BCSAR or STRM_QUEEN_ROLL.BCSTM within files related to the credit sequence, since the game actually switches from a CSEQ of the original credit theme to a BCSTM of the new addition.
 

richardZeldaModder

Well-Known Member
OP
Newcomer
Joined
Sep 11, 2018
Messages
47
Trophies
0
Age
34
XP
237
Country
United States
Update: The best I've been able to figure out is to extract the bcwav files, and then the music notes can be changed. But it still sounds like midi music and is pretty difficult to do. I tried experimenting to get the code to play back bcstm files instead of bcseq files (like Midi). (By the way, these are all inside the bcsar file)

At first I used this tutorial on changing sounds:

So, when hex editing, you can find the location of the bcseq or bcwav files in the bcsar code. As I understand, when you change the file, it has to be the same size. And the same type of file. My best guess is that it could be possible to make a custom bcseq file that just plays one sound bcwav file. Then that custom bcwav file could be an entire song. The bcseq file would have to refer to a bcwav file that is in a folder outside of the original bcsar file... if that's possible.
 

Shazard1984

New Member
Newbie
Joined
Nov 10, 2019
Messages
1
Trophies
0
Age
40
XP
47
Country
United States
I've been trying to do this this past 4 hours. Stumbled upon your post after giving myself a massive headache. Any more updates? I think im about to throw in the towel.
 

TopCape

New Member
Newbie
Joined
Feb 15, 2021
Messages
4
Trophies
0
Age
24
XP
82
Country
Portugal
So this might be a bit late, but oot3d does music a bit different (from what I understand), where it has a bunch of sample instrument files and the bcseq files, according to the instruments specified in the respective bnk file, play the sounds with certain pitches and lengths. I don't know how mm3d works but I made a mod for oot3d that changed the fire temple music to the original one, and the process consisted in trying to fit necessary samples in the files (sped up so they could fit) and then slowing them down in the bnk file so they sounded normal. Then I altered the bcseq files to play the music correctly and voila.
I did all this with Citric-Composer and their documentation helped a lot. Note that that program was never finished though.
If you want to add rearranged tracks instead of the originals, its gonna be quite more challenging that simply putting in a music file. Either change the samples so they sound like the orchestral or if it is too different, see if its in any way possible to add the rearranged tracks and completely change all bcseq files to play each of those and loop at the appropriate times.

This account is too recent to post a link but I have the mod in gamebanana if anyone is curious.
 

BlazeHeatnix

Well-Known Member
Member
Joined
Jul 4, 2015
Messages
168
Trophies
0
Age
31
XP
400
Country
United States
Decided to necro this since I've been looking into this for a few days now. There have been a few new tools released since 2018 and new methods of unpacking the game's files.

It should be possible to do exactly as richard and TopCape said: change a sample to an entire song, make a midi sequence that's a single song-length note, and then convert that midi sequence to bcseq. It's possible to do this with the PC port (I've seen it). But that's not enough for 3D; the new sample needs to be the same length as the original sample, so you'll need to do what TopCape did and make it as short as the original by increasing its speed. Then, convert the bcbnk to a .sf2, edit it to play this sample back at the original speed, then convert that back to bcbnk.

Those are the steps, but it certainly would not be easy and it would be quite tedious. For one thing, no tools exist for converting midi to bcseq and sf2 to bcbnk, only vice-versa, so any editing would need to be done via hex. Second, if the sample needs to be sped up to the original sample and then slowed down, that's probably going to mess with its quality if it's an entire song. Third, there couldn't be a universal speed to set the samples and bcbnk data to, so you'd have to go through this process for every single custom song you'd ever want to release as a mod.

In actuality, if you go the song-as-a-sample route, it would likely be more worthwhile to simply...make entirely new bcbnks and bcseqs. You'd need certain official SDK tools for that, but it CAN be done.
 
Last edited by BlazeHeatnix,

BlazeHeatnix

Well-Known Member
Member
Joined
Jul 4, 2015
Messages
168
Trophies
0
Age
31
XP
400
Country
United States
UPDATE:

Using a combination of Citric Composer, Caesar, ctr_WaveConverter32, and NW4C SoundMaker, it is definitely possible to add a custom soundtrack to OOT3D, despite Citric being held together with string and gum and prone to fucking up at any moment. I've already experimented with using Citric to replace the game's samples, as well as adding MORE samples to the wave archives and changing the banks to read from those instead, both of which I've confirmed can be done without too much hassle, and the game can read them just fine...mostly. See, filesize doesn't seem to be an issue, up to a certain point, but I've only accomplished this with SHORT samples so far. Replacing a bcwav with a shorter but bigger bcwav, so the archive is up by 1000kb, is no big deal. Replacing it with an entire two-minute bcwav? Game crashes. Even a 15-second sample is too much for it to handle.

This could probably be solved with editing the sequences, which is the next major hurdle. The goal is to have a sequence be one sustained note, on one track, and this could theoretically make the game accomodate bigger samples. But, uh...
IO1Scl2.png


I don't even know the first step of how to tackle this. It's basically a MIDI file converted to Assembly. SoundMaker actually comes with a manual explaining how to program sequence data here, but...someone smarter than me will have to figure out how to work this, because it's over my head, at least for right now.
 
Last edited by BlazeHeatnix,

BlazeHeatnix

Well-Known Member
Member
Joined
Jul 4, 2015
Messages
168
Trophies
0
Age
31
XP
400
Country
United States
A friend of mine has successfully rebuilt the game's entire .bcsar in the SDK. We now have full control over the game's sound; midis, samples, sfx, voice clips, you name it. Here's the title theme replaced with another midi:



Uncensoring the FIre Temple theme, for example, should be a cinch now.

The problem is that the game, like many 3DS games, has a hard limit on how large a .bcsar can be. This limit is defined somewhere in the game's code, but without reverse-engineering the game, I have no idea where it is. So unfortunately, this is where the dream of a full soundtrack replacement dies until someone smarter than me can bypass that final barrier.
 
  • Like
Reactions: Serph-DDS

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    kijetesantakalu042 @ kijetesantakalu042: https://www.youtube.com/watch?v=9Vl1EGGzVkw