Hi all,
So a little while ago Ziming came to me with a problem that couldn't be solved.
There are two tracks for Shenmue 2, Dreamcast, that need to be recorded.
The intro tracks for Kowloon and Guilin.
However, those tracks can not be swapped with the main menu music for some odd reason.
Until now...
Here is my brain dump on this matter.
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
What we want to do
Be able to record these two music tracks:
0002_023.SND - Guilin
0003_001.SND - Kowloon
How do we do it?
We swap these tracks with the main menu music: X:/MISC/0017_012.SND
1. Rename the target song to 0017_012.SND
2. Overwrite the 0017_012.SND file in X:/MISC/
3. Test
What was the problem?
So every track (not 100% tested) in Shenmue 2 seems to work fine for this method, except for the two requested to me.
How do we solve this?
OK So I actually managed to get the Guilin track to play!
Here is the technique I employed to do this.
So when examining the files, I noticed that each track has its own header data.
Here is a comparison:
Main Menu Music:
Guilin Intro Music:
Now you see the difference in the first 16 hex block?
So all I did was take the first 16 characters from the main menu track and overwrote the first 16 blocks of the guilin track with it.
Then I renamed the Guilin track to 0017_012.SND and put it in the X:/MISC/ folder and voila.
Now there is a problem:
The track only plays up to 30 seconds on the main menu and then resets on real hardware.
I tested it on NullDC and it keeps playing after the 30 seconds but the song is distorted.
So I would like to make this hypothesis right now:
The way the track is played could be determined in the first 16 bytes of data.
NOTE: If you copy the second set of 16 bytes, the entire track breaks in the menu. Which shows me even more how these two weird tracks work.
So right now it works half and half. I am still looking for a more full solution.
Thoughts?