Ys: The Oath in Felghana

Ys: The Oath in Felghana

Not enough ratings
How to replace music
By corven
A simple guide/reference to where the music files are and what the corresponding titles are. You don't need to struggle over what the song name is because I did it for you.
   
Award
Favorite
Favorited
Unfavorite
Music files location and file naming
You'll find the music to replace here
path/to/steam-install/steamapps/common/Ys The Oath in Felghana/release/music

There's three types of naming conventions
Style
Version
y3bg##p.ogg
PC-88 music
y3bg##x.ogg
X68k music
Y3BG##.ogg
Oath in Felghana music

File format has to be ogg (didn't test if others will work), and you can choose to replace any one of the three styles. I replaced X68k with the Wanderers from Ys versions by Yonemitsu Ryo because they're freaking amazing.
Corresponding song titles
And here's the corresponding song titles (using the Felghana naming convention and a text file found in the same folder).

The notes column is just to identify if that song exists in the Wanderers from Ys PCE ost collection I had. When that song didn't have a Wanderers PCE version, I used ones from Perfect Collection Ys III (Pc3 in the table), because those were also by Yonemitsu Ryo and I just love his stuff. Bonus points because there are some good vocal tracks as well.

Id
File
Title
Notes
1
Y3BG01
Dancing On The Road
Pc3
2
Y3BG02
A Premonition Styx
3
Y3BG03
Trading Village Of Redmont
Pc3
4
Y3BG04
Quiet Moments
Pc3
5
Y3BG05
Welcome!!
Pc3
6
Y3BG06
Prelude To The Adventure
7
Y3BG07
The Boy's Got Wings
8
Y3BG08
Be Careful
(the X68k is damn good too but the solo on pce shreds)
9
Y3BG09
Dark Beasts As Black As The Night
The reason I started playing Ys games
10
Y3BG10
Illburns Ruins
11
Y3BG11
A Searing Struggle
Pc3 is really good too
12
Y3BG12
Snare Of Darkness
the one song I hate, Pc3 Disc 2 to the rescue
13
Y3BG13
Shock Of The Death God
14
Y3BG14
Quickening Dream
15
Y3BG15
Steeling The Will To Fight
16
Y3BG16
Tearful Twilight
Pc3, Disc 2
17
Y3BG17
Valestine Castle
The bridge in the middle aaaah
18
Y3BG18
Prayer For Love
Pc3
19
Y3BG19
Radiant Key
Pc3
20
Y3BG20
Sealed Time
21
Y3BG21
Beat Of Destruction
The second reason I started playing Ys games
22
Y3BG22a
Tower Of Destiny
Both are good, but pce because flute
-
Y3BG22b
Unused?
23
Y3BG23
Behold!!
Disc 2 has a great jazz section
24
Y3BG24
The Strongest Foe
(but with a roar at the start in the Felghana version)
25
Y3BG25
Departure At Sunrise
Thousand Year Love, vocal version cus why not. All versions are great
26
Y3BG26
Wanderers From Ys
Unfortunately pce rip has voice lines
27
Y3BG27
Dear My Brother
Pc3
28
Y3BG28
Lovely Elena
Pc3, vocal version
29
Y3BG29
Introduction!!
Pc3
30
Y3BG30
The Theme Of Chester
Pc3
31
Y3BG31
Chop!!
Another irritating song, Pc3 Disc 2 to the rescue with a great rendition
32
Y3BG32
Believe In My Heart
Pc3, vocal version. Tough as non vocal is great as well
33
Y3BG33
The Oath In Felghana - A Premonition =styx=
Pc88 just seems to be a loop of 2. Pc3, Disc 2
34
Y3BG34
Farewell My Dear Brother but at the end probably with lots of SFX
X68k version. Unsure where this plays since it's been a while since a playthrough
-
35
Y3BG35
Intro sound with A Premonition. only around 10 seconds
Felghana version
-
Y3BG36
Not in the folder?

That table is essentially all you need to switch out the music as you want. Just manually rename files. Or you can also use a small and simple script from the next section which I wrote for myself. Nothing fancy.
A python script to handle the renaming/converting for you


Can I post code in a guide? shrugs

Dependencies: pydub[github.com] (for audio conversion), tqdm[github.com] (for pretty progress)
# convert and rename ys 3 music files to <format>.ogg import os import tqdm import glob import shutil import argparse from pydub import AudioSegment NAME_STYLE = "X68000" # PC-88, X68000, Fel MUSIC_DIR = "../music-to-rename" OUTPUT_DIR = "converted-files" rename_dict = { "PC-88": ["y3bg", "p"], # prefix, number, suffix "X68000": ["y3bg", "x"], "Fel": ["Y3BG", ""] } def main( name_style: str, music_dir: str, output_dir: str ): files = sorted(glob.glob(music_dir + "/*")) assert len(files), "No files in the directory to convert" assert len(files) == 35, "You should have 35 music files to convert. otherwise keep ogg dummies, they're skipped" os.makedirs(output_dir, exist_ok=True) for file_num, file_path in tqdm.tqdm(enumerate(files), desc="Songs converted", total=len(files)): file_loc, file = os.path.split(file_path) _, file_ext = os.path.splitext(file) renamed_file = rename_dict[name_style][0] + f"{file_num + 1:02}" + f"{'a' if file_num == 21 else ''}" + rename_dict[name_style][1] + ".ogg" if file_ext == ".ogg": # no conversion necessary shutil.copy2( file_path, os.path.join(output_dir, renamed_file) ) else: sound = AudioSegment.from_file(file_path) sound.export( os.path.join(output_dir, renamed_file), format="ogg" ) if __name__ == "__main__": parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("--name-style", "-s", type=str, default=NAME_STYLE, help="Naming style of converted files.", choices=rename_dict.keys()) parser.add_argument("--music-dir", "-i", type=str, default=MUSIC_DIR, help="Directory with exactly 35 music files in ascending order, no trailing slash") parser.add_argument("--output-dir", "-o", type=str, default=OUTPUT_DIR, help="The output directory") args = parser.parse_args() main( args.name_style, args.music_dir, args.output_dir )

Usage:
  • Put exactly 35 files in a folder, their format doesn't matter as long as it's music and can be handled by ffmpeg.
  • Their order should be the same as that from the table earlier (just use your file explorer and sort name ascending to verify).
  • Set this folder as MUSIC_DIR in the code.
  • Run.

You should be able to figure the rest out, its nothing complicated. Though I'll add details here if someone asks for more in the comments. If anyone even uses this.

Thanks for reading and have fun~
1 Comments
Aifread 26 Feb, 2024 @ 4:22am 
The PCE soundtrack you had was probably just the Redbook audio (CDDA) from the game disc itself which is the easiest to rip because it works the same as any audio CD. The other tracks are in the game but they're all done with the internal PCE sound chip (wavetable synth) and require a bit more work. But for consistency's sake I like your idea of filling in the blanks with the Perfect Collection so you get more Yonemitsu.