Next Page

Twilight Princess: Disable sound effects for complete OST rip? by valiant at 12:12 PM EDT on October 15, 2007
Hey hcs, I think I need some input on that.
I'm trying to do a complete rip of the Twilight Princess music at the moment.

For previous recordings, I used the Action replay mute codes from Twilight Spectre (GCN Hacker87) to disable the sound effects. Unfortunately, they don't work as well as they should. They take effect only after entering a menu and sounds coming from enemies/Epona/etc. aren't affected by the codes at all.
I've managed to record quite a few of the tracks, but I guess I've met my limits with that trick now.

Since I'm returning to ripping tracks again, I've been thinking of other methods. So I first tried to swap the BMS files in "Z2SoundSeqs.arc" manually, through a hex editor. I yaz0-decompressed the archive, then tried to swap the file names in the archive with a hex editor, then yaz0-encoded it back and replaced the old archive on the ISO. Unfortunately it didn't work (the same track was still loaded, although the file names were swapped).

I then tried to look at the RARC specification to figure out how to swap the BMS files but haven't gotten into it since it's very time consuming to swap files manually.

A third possibility was disabling the sound effect archives, which are "Audiores/Waves/Z2SeWave_X.aw", but replacing those files or simply renaming them locked the game up.

So my question is:
1. Can you tell me in which AW files the sound effects are and what I have to do in order to mute them (I thought you checked some of the files since you've been working on the AW format a little, lately)?
OR
2. Could you provide a simple RARC file exchanger to swap the individual BMS files in the archive? The plan is to make... let's say "Lake Hylia.bms" play in place of "Shop.bms" because in shops, no sound effects are played.

I think it'd be for the collective good. I've used the file swap method before to make a complete rip of the Resident Evil remake and it worked like a charm. But this one is a lot harder to pull off, help is very much appreciated!

edited 12:13 PM EDT October 15, 2007
by hcs at 1:37 PM EDT on October 15, 2007
Assuredly possible. I'd say that you'd want to zero out the AW files you want to silence. There is a fairly good chance that some of them contain both instruments and sound effects, though, as was the case with Wind Waker. The best solution would be an AW reader like I put together for Wind Waker, which would let you decide for each sample if you want to keep it or not.
I'll take a look at it tonight to see if I can do something like that.

edited 1:38 PM EDT October 15, 2007

Hmm, upon brief examination, it appears that the AW files are neatly divided into SE and BGM. If this division is accurate (and I have no verified this yet) you should be able to just zero out the SE files. I have put together a utility that fills with zeros all files on the command line. It isn't likely that I'll have anything more complex anytime soon, so you might give this a try with something like:

zerout.exe Z2SeWave_*.aw

edited 4:13 PM EDT October 15, 2007
by valiant at 5:04 PM EDT on October 15, 2007
Thank you very much!
I'll give it a try right now. I so hope it works...
by ugetab at 5:08 PM EDT on October 15, 2007
The sound file addresses may be referenced in "Z2SoundSeqs.arc", instead of the filenames.

If there are address references in the first part of the file(addresses that are different by the size of the blocks of sequences), then you may be able to switch them around to change the music played.

If the file is small enough, I can inspect a copy to some degree.
by valiant at 5:13 PM EDT on October 15, 2007
I'm zeroing out the AW files right now.

Just in case that won't work, I'll upload the Z2SoundSeqs.arc. It's already yaz0-decompressed.

Z2SoundSeqs.arc

edited 5:13 PM EDT October 15, 2007

Dear God! It worked! I haven't been able to try it for Twilight Princess yet, since I didn't succeed in loading it with GC Simulator (I tried this before and it worked). Don't know what causes this, I'll try to work around it later.
However, I was able to test the method with Four Swords Adventures and the result is amazing! I wouldn't have thought it's so easy to disable the sound effects. Many thanks, hcs! :-)
I guess it will work just as good for Twilight Princess and other AW-BMS-games.
Expect high quality soundrips of Four Swords Adventures, Twilight Princess and Super Mario Sunshine in the near future. :-)

Get your awesome music here!

edited 6:53 PM EDT October 15, 2007
by ugetab at 7:08 PM EDT on October 15, 2007
I've been working on the files I have a bit, and I've figured out a little about how they work.

File identifiers start at address 0x60

Each file identifier is 0x14 bytes long. Each seems to require an endian conversion to be computer readable, but it is more human readable this way.

0x60-0x61 = Filename array number. Sequentially increases up to the end of the array.
0x62-0x63 = Chunk CRC?
0x64-0x65 = Seems to be 0x11, 0x00 in all records..
0x66-0x67 = The byte index from 0x0DC0 where the filename starts. Name is null terminated.
0x68-0x6B = Start address(This number plus 17C0 gives you the file address)
0x6C-0x6F = Size of data
0x70-0x73 = 4 null bytes as a seperator
0x74-0x75 = Next filename array number.

With this, and potentially a little more work on the table details, you could re-arrange the file so that the preferred song takes up the position in the file that refers to the song you want it to. The same method could then also work for Wind Waker's .arc file, as I also used that in this comparison.

Since filenames aren't actually used, a lot of this should be trivial to the matter of switching around.

If anyone feels like checksuming a piece to see if my guess is correct, go ahead. It would likely be something I'd bring to the array anyways.

Just something I thought up... It may also be a matter that you could simply change the start and size locations to match up to the song you want to have play in the shop themes.

To help you figure out which arrays to use for filenames, here's a list. Just search for 00 and the hex code, and you should go right to it. Check for the null 4 bytes before the number to be sure you're at the start of a record.

00. 1vs1.bms
01. 1vs1_02.bms
02. 1vs1_03.bms
03. automata01.bms
04. automata02.bms
05. bajobattle.bms
06. boomboss.bms
07. cargogame_tw.bms
08. castle_town.bms
09. church01.bms
0A. church02.bms
0B. cowboy.bms
0C. deathmountain01.bms
0D. deathmountain02.bms
0E. demo10.bms
0F. demo13.bms
10. desert.bms
11. dungeon.bms
12. d_forest.bms
13. d_lv02.bms
14. d_lv03.bms
15. d_lv04.bms
16. d_lv05.bms
17. d_lv06.bms
18. d_lv07.bms
19. d_lv08.bms
1A. d_lv09_02.bms
1B. event01.bms
1C. event02.bms
1D. event03.bms
1E. event04.bms
1F. event05.bms
20. e_bossbaba00.bms
21. e_bossbaba01.bms
22. e_bossbaba02.bms
23. e_common.bms
24. e_common_twilight.bms
25. e_dekutoad.bms
26. e_dekutoad_d01.bms
27. e_dg01.bms
28. e_dg02.bms
29. e_dg_d01.bms
2A. e_dg_d02.bms
2B. e_fireman.bms
2C. e_fireman_d01.bms
2D. e_ganon01.bms
2E. e_ganon02.bms
2F. e_ganon04.bms
30. e_gg.bms
31. e_gg_d01.bms
32. e_goma01.bms
33. e_goma02.bms
34. e_goma_d01.bms
35. e_hg01.bms
36. e_hg02.bms
37. e_hg_d01.bms
38. e_hg_d02.bms
39. e_ib_d01.bms
3A. e_octaeel01.bms
3B. e_octaeel02.bms
3C. e_octaeel_d01.bms
3D. e_octaeel_d02.bms
3E. e_pz.bms
3F. e_snow_woman01.bms
40. e_snow_woman02.bms
41. e_snow_woman_d01.bms
42. e_tn.bms
43. e_variant.bms
44. e_yb_d01.bms
45. e_zant.bms
46. field.bms
47. field_link_day.bms
48. field_link_night.bms
49. filone_forest.bms
4A. fishing.bms
4B. fishing_bare.bms
4C. fishing_get01.bms
4D. fishing_get02.bms
4E. fishing_get03.bms
4F. fishing_hit.bms
50. fortune.bms
51. gameover.bms
52. heartutsuwa.bms
53. hiding_village.bms
54. hiding_village_d01.bms
55. holy_forest.bms
56. horsebattle_d02.bms
57. howl_hikari_duo.bms
58. howl_hikari_ok.bms
59. howl_hikari_stone.bms
5A. howl_iyashi_duo.bms
5B. howl_iyashi_ok.bms
5C. howl_iyashi_stone.bms
5D. howl_new01_duo.bms
5E. howl_new01_ok.bms
5F. howl_new01_stone.bms
60. howl_new02_duo.bms
61. howl_new02_ok.bms
62. howl_new02_stone.bms
63. howl_new03_duo.bms
64. howl_new03_ok.bms
65. howl_new03_stone.bms
66. howl_tamashii_duo.bms
67. howl_tamashii_ok.bms
68. howl_tamashii_stone.bms
69. howl_umakusa_ok.bms
6A. howl_zelda_stone.bms
6B. indoor.bms
6C. indoor03.bms
6D. indoor04.bms
6E. itemget.bms
6F. itemget_insect.bms
70. itemget_komonjo_intro.bms
71. itemget_mini.bms
72. itemget_pou.bms
73. itemget_smell.bms
74. kakariko.bms
75. korokoro_game.bms
76. lake.bms
77. lutera_01.bms
78. lutera_02.bms
79. magnegoron.bms
7A. magnegoron_d01.bms
7B. magnegoron_d02.bms
7C. midona_sos.bms
7D. minigame_before.bms
7E. minigame_win01.bms
7F. minigame_win02.bms
80. obachan.bms
81. postman.bms
82. ranch.bms
83. river_game.bms
84. river_game_00.bms
85. rodeo.bms
86. room_vol2.bms
87. shop01.bms
88. shop02.bms
89. shop03.bms
8A. shop04.bms
8B. snowboard.bms
8C. snowboard_lose.bms
8D. snowboard_win.bms
8E. snow_mount.bms
8F. staff_roll01.bms
90. staff_roll02.bms
91. statue_game.bms
92. sub_dungeon.bms
93. sumo.bms
94. sumo_d01.bms
95. sumo_d02.bms
96. taro_rescue.bms
97. temp.bms
98. tempo.bms
99. toalvillage.bms
9A. toal_night.bms
9B. tobikusa.bms
9C. toki_shinden.bms
9D. treasureme.bms
9E. treasureme_s.bms
9F. treasureopen.bms
A0. twilight.bms
A1. wcs_d01.bms
A2. wcs_game.bms
A3. wildgoat.bms
A4. zeldasong.bms
A5. zora.bms
A6. zora_d01.bms
A7. menu_select.bms

another last-minute idea:
for twilight princess music, why not stuff all the sound files into Wind Waker and see if the playback system will cooperate with the file structure, and not destroy the sound. If the above suggestion can be made to work, this could be a feasable long-shot to try.

edited 7:17 PM EDT October 15, 2007
by hcs at 7:32 PM EDT on October 15, 2007
The file structure is quite different between TP and WW (at least for the main control file that you've looked up).
There was no question about erasing the audio working... hadn't considered it before, though. I look forward to these rips!

edited 7:34 PM EDT October 15, 2007
by valiant at 9:31 PM EDT on October 15, 2007
Tried it with Twilight Princess now. Works just as good! All the sound effects erased, wonderfully flawless music. I also figured out why the streaming didn't work, the game only supports 10MB Half/Full Duplex on GC Simulator.
And that's where the problem begins: Some kind of rest data is loaded into the system memory in some areas, what makes the first few seconds of a lot of tracks either garbled (as in "test1.mp3") or cut off altogether - because data transfer and sound playback cannot be simultaneous.

Thanks for the information, ugetab.
Just a request in case someone with the necessary programming knowledge can pull it off: A swapping tool for the RARC archive would be most helpful since the manual method would take one hell of a lot more time.

Some more teaser files:
Note that these are only preview rips! The sound quality sucks because of my bad on-board sound card and really lame editing. Issues will be fixed in the final rip.
by ugetab at 10:26 PM EDT on October 15, 2007
If the method I considered works, then I'll write the swapping tool myself.

If you can confirm that manual changes to the RARC table will work(and tell me what you did that worked), then I can program something to put the neccesary changes into place.
by valiant at 4:39 AM EDT on October 16, 2007
Okay!
I'll try to swap the start point and file size of "filone_forest" and "hiding_village" to confirm if it works. I'll report later.

EDIT: So I tried that method and it... kind of worked. See the result here. I took part in the mini game in the Hidden Village because I swapped that track with the Faron Woods theme. As you can hear, the first few notes of the Faron Woods are played but then it silences. The Hidden Village minigame theme isn't played in Faron Woods at all (however, Faron Woods are now totally muted).
I guess that is due to a problem with thakis's program yaz0enc.exe (well, his website states he didn't write it - as it would probably be without any bugs if it was, knowing that he is a great programmer). Because the edited and newly yaz0-compressed archive is different in more than just the edited space and it is also smaller than the original yaz0-compressed file.

I'll try to get in contact with him to get him to look into it.

In the meantime, it'd be cool if you could write a small utility for swapping the files in the RARC archive, ugetab. :-)

Thank you for both of your help, I know it's a little unnerving!

edited 5:46 AM EDT October 16, 2007

edited 5:50 AM EDT October 16, 2007

Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source
Generated in 0.0049s;