Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fire Emblem Ultimate Tutorial.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.86 Mб
Скачать

Part 12: Credits & Thanks

My last part, I would appreciate credits and thanks for this tutorial. I sacrificed a ton of time creating this and learning how music works and stuff. I’m not trying to complain butaAll I ask is that if you use it, you put my name (Blazer) and Charon the Ferryman somewhere obvious, like in the credits. Thanks for your understanding – I hope this guide helped you.

Special Thanks To:

Atrius – Lots of information about music editing, helped me insert WAV’s (which is NOT explained here)

Charon the Ferryman – her tutorial on music editing helped and inspired me to make my own tutorial. She also gave me some one-on-one help with how to hack music and I took her method and just expanded on it and stuff like that.

Chapter 25: Music Editing with Zahlman’s Song Editor

First of all, you need to download Zahlman’s song editor to do this. I suggest going to this topic- http://www.feuniverse.net/forums/index.php?showtopic=7874&st=0

Next, download and install Python. It’s necessary.

Once that’s done, extract the files from the download. Read the README and transcript just to give some background. Who knows if it’ll actually help, but it wouldn’t be included if it wasn’t meant to be read, right? XP

Now, double-click cli.py, and some stuff’ll happen. Mainly a screen will come up with a disclaimer and a comment saying that if you need ‘help’ you should press ‘help’.

If you actually do type in help and press ‘enter’ on your keyboard, it’ll give you a list of commands, and tell you some stuff. Here’s the important stuff:

  • Commands are not case sensitive. Filenames, probably yeah, just stick with doing proper capitalization always, to limit the chance for problems.

  • Decimal doesn’t have a prefix, while hexadecimal (AKA ‘hex’) has the 0x prefix. We know this already (if you don’t, then this might be hard for you…).

  • Don’t include extensions or quotes with filenames

  • You can use relative paths or absolute paths. To make things easy, when the program needs to access a file, make sure the file is in the same folder as the program. That way you just type the file name—no fuss, no mess.

  • (some other stuff you can read if you want to—isn’t completely necessary to know when using the program, but a good read anyway)

Now, onto actually using the program. To start, you should know how to find more information on a command. Simply type ‘help commandname’. So for example, to find out how the ‘open’ command works, type ‘help open’.

The open command is the easiest. Just type ‘open nameofrom’. So if my game is called ‘fireemblem8.gba’ I’d type ‘open fireemblem8’. It’ll say “Loaded ROM from disk”.

Now, what to do with this ROM… Well, let’s say I want to extract a song from this game and put it into Fire Emblem 7. First we need to know where the song is in Fire Emblem 8. This is where Sappy can actually be useful. You can have it locate the song table for you and grab the offset from it.

That being said, open Sappy 2005 and then load the ROM you want to export from. It’ll (hopefully) find the song table of the game you are trying to hack—if it doesn’t, then something tells me the game doesn’t use the Sappy engine, so you can’t hack its music with these methods. On the left it’ll say the offset of the song table.

For FE8, the song table is at 0x224470. Now, in the FE8 nightmare modules is a music list. This will actually prove very useful because it tells us which song is which. One day I was feeling nice and I uploaded this song list here, for your reference- http://www.feshrine.net/hacking/downloads/fe8_music_list.txt

Let’s rip Truth, Despair, and Hope (TDH for short) because it’s an awesome song. It’s song 0x0D. Since each entry in the song table is 8 bytes, we need to do (0x0D x 0x08) + 0x224470 to find where the pointer to the song is. We can use Microsoft calculator or an online hexadecimal calculator to do this.

If you don’t see options for hex in MS Calculator, set your view to scientific (View-> Scientific). Then hit “hex” at the top left.

D x 8 = 68, according to MS Calc. + 224470 (the program knows it is hex because it is in hex mode, so no need to put ‘0x’ in MS Calc) is 2244D8. So we’ll go to 0x2244D8 in a hex editor.

I see 5C 2A 55 08. That’s a pointer. It has little endian, i.e. byte reversal, so let’s flip it and we get 08552A5C. Take off the ‘08’ (only the game needs to know about the ‘08’) and we have 0x552A5C. Finally, we have the offset we need.

Back to Zahlman’s Song Editor. All we’ve done so far is ‘open fireemblem8’ to open our FE8 game (or in your case, whatever game you’re using). Next we’ll do rip 0x552A5C to rip the song we want.

Great! All 7 tracks were ripped. Let’s consider ourselves lucky that the program supports those kind of tracks.

Now we can do two things. We can A) save the data in a binary file or B) burn the data to another ROM. Let’s save it and then burn it, for teaching matters.

Type in ‘save songname’ to save the data to a binary file. Since I just ripped TDH, this is what I did:

Now it says we can still burn it if we want. So let’s do that. First, we’ll open up the ROM we want to burn it to. Mine is called ‘sc.gba’ so I’ll do ‘open sc’. Then I’m going to burn the song. I need two offsets—one offset where the pointer to the song will go, and another offset for where the song is going to be inserted to. I know I have some free space at 0xD40000, so that’s solved.

But how do I know which pointer to replace? I have to go to FE7 and do the same thing I did with FE8 to find a song. We’ll say I am trying to replace song 0x5A, which is the main theme. 0x5A x 8 + 0x69D6E0 (offset for FE7’s song table) = 69D9B0. So that is where my pointer is going to go.

So I have to type ‘burn 0x69D9B0 0xD40000’ to make it repoint the song at 0x69D9B0 to the new song I am importing to the offset 0xD40000.

Burning successful! Now I just have to save my game. WAIT, DON’T USE THE SAVE COMMAND. Remember, the save command is to DUMP SONG DATA. We’re trying to save our ROM. Do “close romname”. In this case, I just opened ‘sc.gba’, so I do ‘close sc’.

YESZ. Saved ROM to disk. Alright, I’m going to go test my song out now.

(*Tests…*)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]