Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

Reply
 
Thread Tools
  #26    
Old November 17th, 2014 (3:23 PM).
daniilS's Avatar
daniilS daniilS is offline
busy trying to do stuff not done yet
     
    Join Date: Aug 2013
    Age: 18
    Gender: Male
    Posts: 409
    Quote:
    Originally Posted by Synchronous View Post
    Another thing to mention, this project will come with mobile support baked in, so it will be more accessible to everyone.
    Amazing! Now if we get an assembler and a disassembler/debugger for Android, life will be complete ^-^.
    __________________
    Reply With Quote

    Relevant Advertising!

      #27    
    Old November 20th, 2014 (6:31 PM).
    Akiba's Avatar
    Akiba Akiba is offline
    • Crystal Tier
     
    Join Date: Mar 2011
    Location: in a gap
    Age: 18
    Gender: Female
    Nature: Brave
    Posts: 4,268
    Progress Report:

    It's been a few days since the last report. I've been pretty busy with school, so expect fewer updates during weekdays.

    Editing functionality is, for the most part, implemented, and all that's left is to propagate edits to the server. I would like to note that editing is very smooth and aesthetically pleasing.

    Before moving on to the database, I would like to spend some time finalizing client side article and tree models.

    Again, changes made can be viewed at the incremental release.
    __________________
    Reply With Quote
      #28    
    Old November 28th, 2014 (3:42 PM).
    Sisyphean Sisyphean is offline
       
      Join Date: Nov 2014
      Location: California
      Gender: Male
      Nature: Bold
      Posts: 16
      Hello Happy (belated) Thanksgiving

      I would classify this as Information about Music Hacking

      Inserting Midi Files into Firered:
      Spoiler:
      Hello my friends, I'm Magnius and I'm going to teach you today how to insert ANY song you like, into the GBA Pokemon games. For this particular tutorial we will be using Pokemon Fire Red, but it can be done on almost any Pokemon GBA game. However, before we start you're going to need a few things...

      - 2 Pokemon Fire Red Roms(Don't ask me where to get the roms).
      - An emulator to play the rom on(I use VisualBoyAdvance myself).
      - Sappy and mid2agb which you can both get here.
      - A midi that you want to insert into the game.
      - A backup of the Pokemon Fire Red rom incase anything goes wrong.

      Got all that stuff downloaded? Good. Once everything is downloaded make sure to extract everything into the same folder, trust me, it'll make things much easier later on. Now let's move on to the tutorial.

      Step 1 - Convert your midi to a ".s" file
      In this first step we're going to use Mid2Agb to convert our midi file that we want to insert into the game, to an ".s" file. Before we move on, make sure your midi is in the same folder as Mid2Agb. Once you've made sure of that, open up the folder that Mid2Agb is in and click on your midi. After you've clicked on your midi drag it over to the Mid2Agb file and Mid2Agb will automatically convert the midi into a ".s" file. There is another way to convert the midi using the command prompt, but that just makes the whole process harder than it has to be.

      Step 2 - Assemble the song using Sappy
      Alright, now that you've got your ".s" file, we're going to put it to use in Sappy. So first, open up Sappy. After you've opened up Sappy, go to file and then click on "Open". Now find your first Pokemon Fire Red rom and open it. Now once you've opened your rom in Sappy you'll notice that in the upper left corner of the program a dropdown box will appear with a song name in it. Click that dropdown box and you'll see a list that you can scroll, of songs from the game. The song you click will be the song you'll be modifying in game. You can change any song, but for this tutorial find a song on the list called "Pokemon Theme", since it's one of the first songs you hear when you turn on the game. After you find that, click on "Assemble song" which is in the left part of the program. After that a box will pop up that says "Assemble .S file" at the top. Click the button next to the first box and then to open your ".S" file. The second box, is where you'll write your base offset, but don't worry about that too much now. For now just type the offset "0xEB0B20" in the base offset box. Third is the Voicegroup offset box which will already be filled in. Now click on "Assemble that ugly thing!" and wait for the program to finish assembling the song. Congrats, you've assembled the file. If the song plays already in the game by now, then congratulations, you're done, but if it doesn't, don't fret, move on to Step 3.

      Step 3 - Getting the file to work in game
      So now you've assembled the file and it plays in Sappy, but you see that it doesn't play in game. Well slow down there guy, there's still a ways to go before we can get the file playing in game. Now that you've assembled the file we're going to export the tracks. In order to do this, go to "Export Tracks". You'll then see a bunch of unchecked boxes which are basically the offsets of the tracks, check all of them. In the 2nd box, you can either put $T or $P, don't know worry too much about what they mean, for this tutorials sake just type in "$T". After that click on "Ok". The songs tracks will now be dumped to your folder and since you picked "$T" the tracks will be numbers like one tracks file name will be 0, the next tracks file name will 1, it's pretty simple. So after that close out Sappy and reopen it. Now that you've reopened Sappy, open the unmodified Pokemon Fire Red rom and find the song you modified in other rom, which should be "Pokemon Theme" in the case of this tutorial. Now go to "import tracks" and check all the "numbered" files, which are basically the tracks we dumped earlier. Next to the "First track" box basically type in an offset where there's a lot of free space, for the sake of this tutorial just put "0xEB0B20" there. Then press OK. Now open up your emulator, open up the rom you just modified and you'll see that the song works in game. Congratulations, you've done your first successful music hack.

      And yep, that's how you insert music into the GBA Pokemon games. But I know some of you are asking, what if I want to import music from one Pokemon GBA game to another? Well, I'll explain that in this extra step.

      Importing Music from one Pokemon GBA game to another
      Importing music from one Pokemon GBA game to another is easy. First open the Pokemon GBAgame you want music from like for instance, if I wanted to take music from Ruby and put it in Fire Red, I would open Ruby. Then I'd simply select the song I want to put into the other game and go to export tracks. Once you're in the export tracks window, check all the tracks, type "$T" in the second box and all your tracks will be exported to numbered files(1, 2, 3, 4, 5 you get the point). After that, open the game you want to insert the music into and find the track you want to replace. After that choose import tracks and import the numbered tracks you dumped and press okay. Congrats, you've successfully taken music from one GBA Pokemon and inserted it into another.

      And that concludes this tutorial. Hope it helped you guys out.

      Credit:
      Magnius


      Ensuring High Quality Audio for Firered:
      Spoiler:
      Hello, this is Magnius here with another document on GBA Music Insertion. In my previous documents, I covered how to insert a midi into a GBA game. But the problem is, when inserting just any regular midi without modification, it might not sound the best on the GBA. In this tutorial, I'm going to basically give you guys some info on the GBA's music limits and how to make your music sound the best it can in your Pokemon hack. Before you read this document though, it is REALLY recommended you read and understand the first before you read this one.

      1. Some information on the GBA's Music Limits

      I'll start this document off with some information on the GBA's Music Limits that Clonex25 informed me of. Here's a direct quote on the limits from a PM that he sent me which best explains them...
      Quote:
      - You can use up to 10 tracks per song: 5 for DirectSound (D/S), and 5 for GB Waveform (GB).
      - You can use any instrument in the D/S tracks, provided that you must limit the playing instruments to 6 (including the drums).
      - You may reserve a D/S track for the drums.
      - You can use the GB tracks for the following: 1) Square1, 2) Square2, 3) Wave, 4) and 5) Noise.
      - Two GB tracks are used for the Noise part because Applause (126) has a "smoother" effect than Gunshot (127).
      - You may maximize the 5 D/S tracks for town/city/route/cave music.
      - You must limit the battle music D/S tracks to 4. This gives a track that the GBA uses for the attack SFX. Maximizing 5 D/S tracks may sacrifice the drums upon execution of attacks like Surf, or when there's a stat change (+ATK, -DEF).
      So those are mostly the limits of the GBA, music wise and if you surpass those limits, the song might not sound as good as it could on the GBA. Now, I know some of you might be confused now by all the DirectSound and GB Waveform business, so I'll explain it. DirectSound instruments are basically any instruments that aren't GB Synth. So a trumpet would be a DirectSound instrument, a flute would be a Direct Sound instrument and so on. GB Synth is basically any instrument that uses the GB's internal Waveform. The original Game Boy and Game Boy Color only used Waveform and Direct Sound was added to the GBA.

      2. Voicegroups

      Every different song in each of the Pokemon GBA games uses a certain voicegroup and this can effect how good or bad the song might sound on the GBA. For instance, in Sappy you could assemble your .s file to "Encounter 1" and it might sound great, but then you assemble it to say... "Pallet Town" and it sounds horrible. This is because those songs use different voicegroups. Now, I know it's possible to change voicegroups through Hex Editing, but seeing as I've not tried that yet, I won't cover it here. So basically, what'd I reccomend is toying around with assembling your song to different songs and seeing which one sounds the best.

      3. Balance

      Sometimes the midi you've inserted into your GBA Pokemon hack, won't sound good if it's unbalanced. You know, if one instruments playing too loud and all the others are playing too soft or overall, the whole midi is just too loud. Balancing your midi can really help it sound better on the actual GBA. How I like to do this is I go into Anvil Studio(A program that let's you edit midi tracks) and just toy around with the volume of different instruments. You know, turning certain instruments up and turning certain instruments down and seeing what happens. But yeah, balancing the volume of your midi tracks can really help your midi sound better on the actual GBA.

      4. Commonly used instruments in GBA Pokemon games

      Here I will cover instruments that are commonly used in the GBA Pokemon games. Now, if you want to use an instrument not on the list, you can try to, but most of the time instruments that aren't common result in the instrument being converted to GB Synth. Overall, don't look at this as the definite list as you can try and use other instruments if you like and see if they work.

      Commonly used DirectSound Instruments:
      1 - Bright Acoustic Piano
      2 - Electric Grand
      5 - Electric Piano 1
      13 - Xylophone
      14 - Tubular Bells
      17 - Percussive Organ
      21 - Accordian
      24 - Acoustic Guitar Nylon
      25 - Acoustic Guitar Steel
      29 - Overdriven Guitar
      36 - Slap Bass 1
      38 - Synth Bass 1
      45 - Pizzicato Strings
      46 - Harp
      47 - Timpani
      48 - Strings
      53 - Voice Oohs
      56 - Trumpet
      59 - Tuba
      60 - French Horn
      73 - Flute
      78 - Whistle

      Direct Sound also has a drum track, but I'm not sure which one it is.

      Commonly used GB Synth Instruments:
      4, 6 and 7 = Not necessarily Square instruments, but are used as Sqaure's.
      80 - Square(As Melody or Bass)
      81 - Sawtooth(Mostly used as Bass)
      82 - Calliope
      83 - Chiff
      84 - Charang
      85 - Voice
      87 - Bass + Lead
      88 - Pad 1 (New Age)
      91 - Pad 4 (Choir)
      92 - Pad 5 (Bowed), mostly used as a Wave instrument
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      So yeah, those are the commonly used instruments in the GBA games. Now the numbers are the instrument numbers as they appear in Sappy. To get these instruments in most common midi programs, just add 1 to the instrument number. For instance 56 = Trumpet in Sappy, but to get a trumpet in a midi program, you'd look for track 57. I know this is all very confusing but bear with me here.

      Read all that? Good because the last portion of this document is going to get a bit complicated and is really only recommended if you REALLY want your midi to sound great on the GBA. Basically, in the last document I'll be covering the Program Change. It's not really that hard to do, just hard to explain.

      5. Program Change

      Open Sappy and then open a rom of Pokemon Fire Red or Leaf Green. Then scroll down the songs list in Sappy and find "Route Theme 4". Click the box with the check beside it next to Location, to turn all of the tracks off. Now that you've done that, select the click on the second track. Now press play. If you watch closely, you'll immediately notice that within in the first 2 seconds, the track starts as strings(48), then the SAME TRACK changes into a French Horn(60) and then changes to a Trumpet(56). This is something I like to call Program Changing, which is when ONE track changes into another instrument on the fly. Learning how to do a Program Change will really help you compress the number of instruments a midi uses.

      First, download and install Anvil Studio. Once you've done that, open Anvil Studio, find your midi and open it. Now turn off all but one track(Prefferably the Melody Track). Now go up to View and click on it and then click on "Piano Roll Editor". Then go to the part of the song where you want to change the instrument. But wait, before that, I have to tell you something very important. In order for a program change to work on the actual GBA there must be 4 blank notes before it. Once you've found a spot with 4 blank notes before it though, click on the beggining of the blank notes and go up to "Edit". Once you've clicked on that go down to "Insert Midi Controller Event...". The picture below shows you what I mean by "4 blank notes".



      After that first make sure the "Show all controller events" box is selected and then go up to the "Kind of Event" box and find "Program Change". Once you've done that, it will probably already be on the correct channel number and all you have to do is change the control value(The value of the instrument you want to change to). So say for instance, you had strings and you wanted to switch to a trumpet, you'd put "57" as the control value.

      And that's the end of a long tutorial guys. I know a lot of things in here are confusing, but it's really advanced stuff and is hard to explain.

      Credit:
      Magnius


      Firered VoiceGroups and Corresponding Instruments:
      Spoiler:
      Hey this is Magnius here and in this document, I'm gonna list all the voicegroups in Fire Red as well as the instruments each voicegroup can play. But first, what are voicegroups? My definition would be a group of instruments stored in a particular value in a rom. Voicegroups are one of the biggest deciding factors in whether the midi you insert sounds good or not. For instance, if you insert a midi, but you notice one of the DirectSound tracks gets turned to GBSynth, this is probably because the instrument isn't in the particular voicegroup of the song you assembled. This could also be though, because of the GBA's music limits, which are explained in Part 2 of my Music Hacking document. Luckily for you you can change the voicegroup before assembling, but what instruments can each particular voicegroup play? That's what I'm mostly gonna cover in this document. After much research I've produced an accurate list of instruments that each voicegroup can play and if an instrument isn't in that particular voicegroup, it probably won't play correctly.

      However, before we move onto that, a little information on how some tracks are used on the GBA. First off, know that every track after 80 is mostly going to transfer into GBSynth, when assembled into Sappy. Channel 81, the sawtooth, is commonly used as the bass instrument in most GBA tracks, although sometimes DirectSound basses can be used if the voicegroup supports it. GBSynth tracks can be used in any track, so if I forget to list them in one voicegroup, that doesn't mean you can't use them. Second of all, I won't be covering what particular drums each voicegroup supports. Also a note to add about track 62 "SynthBrass1" though it says SynthBrass, this track is generally used to make a heavy low guitar sound.

      0x48ABB0

      2 - Electric Grand
      13 - Xylophone
      46 - Harp
      47 - Timpani
      48 - Strings
      56 - Trumpet
      60 - French Horn
      73 - Flute
      82 - Calliope
      83 - Chiff
      84 - Charang
      85 - Voice
      88 - Pad 1 (New Age)
      100 - Brightness
      101 - Goblin

      0x48B078

      47 - Timpani
      60 - French Horn
      80 - Square
      81 - Sawtooth
      82 - Calliope
      83 - Chiff
      84 - Charang

      0x48B474

      01 - Acoustic Grand
      4, 5, 6 and 7 - Not Square instruments, but used as Square instruments in GBA Pokemon games.
      47 - Timpani
      48 - Strings
      56 - Trumpet
      60 - French Horn
      80 - Square
      90 - Pad 3 (Polysynth)

      0x48B8B8 (Used for the second RSE battle theme)

      01 - Bright Acoustic
      4, 5, 6 and 7 - Not Square instruments, but used as Square instruments in GBA Pokemon games.
      17 - Percussive Organ
      33 - Electric Bass (Fingered)
      47 - Timpani
      48 - Strings
      56 - Trumpet
      60 - French Horn
      81 - Sawtooth
      82 - Calliope
      83 - Chiff
      90 - Pad 3 (Polysynth)

      0x48F974

      1 - Bright Acoustic
      2 - Electric Grand
      24 - Acoustic Guitar Nylon
      80 - Square
      81 - Sawtooth
      127 - Gunshot(Used as Drum Noise)

      0x48FF74

      14 - Tubular Bells
      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      47 - Timpani
      56 - Trumpet
      73 - Flute
      80 - Square
      81 - Sawtooth
      87 - Bass + Lead
      127 - Gunshot(Used as Drum Noise)

      0x490574

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      29 - Overdriven Guitar
      30 - Distortion Guitar
      38 - Synth Bass 1
      48 - Strings
      56 - Trumpet
      78 - Whistle
      80 - Square
      81 - Sawtooth
      83 - Chiff
      120 - Guitar Fret Noise
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x490B74

      47 - Timpani
      48 - Strings
      56 - Trumpet
      60 - French Horn
      80 - Square
      81 - Sawtooth
      84 - Charang
      85 - Voice
      87 - Bass + Lead
      88 - Pad 1 (New Age)

      0x490FAC

      21 - Accordian
      80 - Square
      81 - Sawtooth

      0x491390

      29 - Overdriven Guitar
      30 - Distortion Guitar
      38 - Synth Bass 1
      62 - SynthBrass 1
      80 - Square
      81 - Sawtooth
      83 - Chiff
      84 - Charang
      85 - Voice
      86 - Lead Fifths
      87 - Bass + Lead
      88 - Pad 1 (New Age)
      89 - Pad 2 (Warm)
      125 - Helicopter
      127 - Gunshot(Used as Drum Noise)

      0x491990

      14 - Tubular Bells
      47 - Timpani
      48 - Strings
      56 - Trumpet
      58 - Trombone
      60 - French Horn
      80 - Square
      81 - Sawtooth
      125 - Helicopter

      0x491F90

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      48 - Strings
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x492590

      10 - Music Box
      17 - Percussive Organ
      21 - Accordian
      24 - Acoustic Guitar Nylon
      48 - Strings
      58 - Trombone
      78 - Whistle
      80 - Square
      81 - Sawtooth

      0x492B90

      02 - Not really a square instrument, but used as such in the game.

      0x492BC0

      01 - Bright Acoustic
      13 - Xylophone
      17 - Percussive Organ
      21 - Accordian
      24 - Acoustic Guitar Nylon
      56 - Trumpet
      73 - Flute
      80 - Square
      81 - Sawtooth
      83 - Chiff(Used here as Wave)
      84 - Charang
      85 - Voice(Used here as Wave)

      0x4931C0

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      38 - Synth Bass 1
      80 - Square
      81 - Sawtooth
      83 - Chiff

      0x4935B0

      01 - Bright Acoustic
      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      48 - Strings
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x493BB0

      01 - Bright Acoustic
      17 - Percussive Organ
      38 - Synth Bass 1
      48 - Strings
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)

      0x4941B0

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x4947B0
      01 - Bright Acoustic
      13 - Xylophone
      24 - Acoustic Guitar Nylon
      48 - Strings
      78 - Whistle
      80 - Square
      81 - Sawtooth
      83 - Chiff
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x494DB0

      01 - Bright Acoustic
      24 - Acoustic Guitar Nylon
      48 - Strings
      80 - Square
      81 - Sawtooth

      0x4951A0
      13 - Xylophone
      39 - Synth Bass 2
      48 - Strings
      58 - Trombone
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x4957A0

      1 - Bright Acoustic
      2 - Used as a Square in GBA Pokemon games
      9 - Glockenspiel
      13 - Xylophone
      46 - Harp
      47 - Timpani
      48 - Strings
      56 - Trumpet
      58 - Trombone
      60 - French Horn
      68 - Oboe
      73 - Flute
      80 - Square
      81 - Sawtooth
      82 - Calliope

      0x495BFC

      78 - Whistle
      80 - Square
      81 - Sawtooth
      83 - Chiff
      126 - Applause(Used as Drum Noise)

      0x4961FC

      47 - Timpani
      48 - Strings
      56 - Trumpet
      80 - Square
      81 - Sawtooth
      84 - Charang

      0x49661C

      14 - Tubular Bells
      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      47 - Timpani
      48 - Strings
      60 - French Horn
      80 - Square
      81 - Sawtooth
      92 - Pad 5 (Bowed)
      127 - Gunshot(Used as Drum Noise)

      0x496C1C

      14 - Tubular Bells
      46 - Harp
      47 - Timpani
      48 - Strings
      56 - Trumpet
      60 - French Horn
      73 - Flute
      81 - Sawtooth
      83 - Chiff
      127 - Gunshot(Used as Drum Noise)

      0x49721C

      14 - Tubular Bells
      47 - Timpani
      48 - Strings
      58 - Trombone
      60 - French Horn
      80 - Square
      81 - Sawtooth

      0x497678

      4 and 5 - Not Squares, but interpreted by the GBA Pokemon games as such.
      14 - Tubular Bells
      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      29 - Overdriven Guitar
      30 - Distortion Guitar
      47 - Timpani
      48 - Strings
      60 - French Horn
      62 - SynthBrass 1
      83 - Chiff
      89 - Pad 2 (Warm)
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x497C78

      17 - Percussive Organ
      21 - Accordian
      29 - Overdriven Guitar
      30 - Distortion Guitar
      33 - Electric Bass (Fingered)
      56 - Trumpet
      62 - SynthBrass 1
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x498278

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      33 - Electric Bass (Fingered)
      48 - Strings
      80 - Square
      81 - Sawtooth
      87 - Bass + Lead
      92 - Pad 5 (Bowed)
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x498878

      4 - Used as synth by the game.
      14 - Tubular Bells
      24 - Acoustic Guitar Nylon
      29 - Overdriven Guitar
      30 - Distortion Guitar
      31 - Guitar Harmonics
      48 - Strings
      53 - Voice Oohs
      56 - Trumpet
      60 - French Horn
      62 - SynthBrass 1
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x498E78

      4 - Used as synth.
      5 - Used as synth by the game.
      24 - Acoustic Guitar Nylon
      48 - Strings
      80 - Square
      81 - Sawtooth
      83 - Chiff

      0x499478

      14 - Tubular Bells
      24 - Acoustic Guitar Nylon
      48 - Strings
      80 - Square
      81 - Sawtooth

      0x499898

      01 - Bright Acoustic
      21 - Accordian
      48 - Strings
      58 - Trombone
      73 - Flute
      80 - Square
      81 - Sawtooth
      83 - Chiff
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x499E98
      4 - Used as synth
      14 - Tubular Bells
      17 - Percussive Organ
      48 - Strings
      80 - Square
      81 - Sawtooth

      0x49A2F4

      01 - Bright Acoustic
      05 - Used as synth.
      46 - Harp
      56 - Trumpet
      58 - Trombone
      73 - Flute
      81 - Sawtooth
      92 - Pad 5 (Bowed)
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x49A8F4

      04 - Used as synth.
      05 - Used as synth.
      12 - Marimba(Used as synth here).
      24 - Acoustic Guitar Nylon
      46 - Harp
      48 - Strings
      73 - Flute
      80 - Square
      81 - Sawtooth

      0x49AEF4

      01 - Bright Acoustic
      14 - Tubular Bells
      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      58 - Trombone
      73 - Flute
      75 - Pan Flute
      78 - Whistle

      0x49B4F4

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      31 - Guitar Harmonics
      48 - Strings
      62 - SynthBrass 1
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x49BAF4

      17 - Percussive Organ
      21 - Accordian
      24 - Acoustic Guitar Nylon
      56 - Trumpet
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x49C0F4

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      45 - Pizzicato Strings
      48 - Strings
      60 - French Horn
      73 - Flute
      80 - Square
      81 - Sawtooth

      0x49C6F4

      17 - Percussive Organ
      75 - Pan Flute
      80 - Square
      81 - Sawtooth
      127 - Gunshot(Used as Drum Noise)

      0x49CCF4

      47 - Timpani
      56 - Trumpet
      58 - Trombone
      73 - Flute
      81 - Sawtooth
      82 - Calliope
      83 - Chiff

      0x49D0E4

      45 - Pizzicato Strings
      47 - Timpani
      48 - Strings
      56 - Trumpet
      60 - French Horn
      73 - Flute
      81 - Sawtooth
      82 - Calliope
      83 - Chiff
      85 - Voice
      86 - Lead 7 fifths
      89 - Pad 2 (Warm)

      0x49D528

      4 - Electric Piano 1
      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      48 - Strings
      73 - Flute
      80 - Square
      81 - Sawtooth
      92 - Pad 5 (Bowed)
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x49DB28

      1 - Bright Acoustic
      4 - Electric Piano 1
      17 - Percussive Organ
      25 - Acoustic Guitar Steel
      48 - Strings
      80 - Square
      81 - Sawtooth
      83 - Chiff
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x49E128

      1 - Bright Acoustic
      30 - Distortion Guitar
      38 - Synth Bass 1
      80 - Square
      81 - Sawtooth
      82 - Calliope
      83 - Chiff
      92 - Pad 5 (Bowed)

      0x49E884

      13 - Xylophone
      24 - Acoustic Guitar Nylon
      80 - Square
      81 - Sawtooth
      87 - Bass + Lead

      0x49F16C
      13 - Xylophone
      24 - Acoustic Guitar Nylon
      80 - Square
      81 - Sawtooth

      0x49F58C

      1 - Bright Acoustic
      2 - Electric Grand
      56 - Trumpet
      60 - French Horn
      80 - Square
      81 - Sawtooth
      83 - Chiff

      0x4A01E0

      47 - Timpani
      48 - Strings
      56 - Trumpet
      58 - Trombone
      60 - French Horn
      81 - Sawtooth

      0x4A0600

      24 - Acoustic Guitar Nylon
      35 - Fretless Bass
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x4A1008

      14 - Tubular Bells
      29 - Overdriven Guitar
      30 - Distortion Guitar
      33 - Electric Bass (Fingered)
      48 - Strings
      53 - Voice Oohs
      60 - French Horn
      62 - SynthBrass 1
      78 - Whistle
      81 - Sawtooth
      127 - Gunshot(Used as Drum Noise)

      0x4A1C08

      01 - Bright Acoustic
      24 - Acoustic Guitar Nylon
      48 - Strings
      56 - Trumpet
      60 - French Horn
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x4A2208

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      48 - Strings
      80 - Square
      81 - Sawtooth
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x4A2808

      17 - Percussive Organ
      24 - Acoustic Guitar Nylon
      48 - Strings
      80 - Square
      81 - Sawtooth
      82 - Calliope
      126 - Applause(Used as Drum Noise)
      127 - Gunshot(Used as Drum Noise)

      0x4A0C00

      14 - Tubular Bells
      31 - Guitar Harmonics
      38 - Synth Bass 1
      80 - Square
      81 - Sawtooth
      85 - Voice(For once, it's actually not used as Synth)

      0x4A1608
      01 - Bright Acoustic
      81 - Sawtooth
      127 - Gunshot(Used as Drum Noise)

      So yeah, that was the list. Next I'm gonna cover choosing the right voicegroup for your song.

      Choosing the Right Voicegroup

      When the choosing the voicegroup you want to use, you should generally pick a voicegroup that has a lot of the same instruments that are in your midi. For instance, if your midi uses strings, trumpets, but also guitars, you want to find a voicegroup that has all of those. If you find a voicegroup with most of the same instruments, you can either try your luck or change some of the instruments in that midi, so that they're all in that particular voicegroup. If a particular instrument isn't in any voicegroup, it will probably have to be substituted for some other instrument.

      But I'm confused, my tracks have different numbers than the ones used on the GBA...

      If you have standard midi software, the track numbers are probably going to be different than what's used on the GBA. I don't know if this'll work for your particular midi program but to get the GBA track number, I take the general midi track number and subtract it by one. So say my general midi program has 57 for the track number of the trumpet, it would be track number 56 in the Pokemon games. Your midi program might also have different names for instruments than mine, but it's generally gonna be in the same order. Hopes this helps you guys gain an understanding.

      And yeah, that's the tutorial guys... Hoped it help you out.

      Credit:
      Magnius


      Fire Red Music Values in Hex:
      Spoiler:
      Are you like me and wanted to change Fire Red's map music in AdvanceMap, but had no idea what the values where? Well, worry no more. In this documentation, you will find a list of Hex Values for EVERY song in Pokemon Fire Red. These Hex Values have been tested in game, so I know that each and every last one of them is the right music value. So yeah, if you ever wanted to change the games music, but didn't know the correct hex values, here they are. All the names are taken from Sappy, with minor add ons and corrections.

      Quote:
      0105 = Healing (RS)
      0106 = Level Up
      0107 = Evolution Start
      0108 = Evolution/Safari
      0109 = Battle 1
      010A = Battle 2
      010B = Unknown/Not listed in Sappy
      010C = Fanfare 1
      010D = Fanfare 2
      010E = You Fail It!
      010F = You Fail It Again!
      0110 = Follow Me
      0111 = Game Corner
      0112 = Evil Lurks
      0113 = Gym
      0114 = Jigglypuff's Song
      0115 = Introduction
      0116 = Pokemon Theme
      0117 = Cinnabar Island
      0118 = Lavender Town
      0119 = Healing
      011A = Bicycle
      011B = Encounter 1
      011C = Encounter 2
      011D = Encounter 3
      011E = You're In The Hall of Fame!
      011F = Viridian Forest
      0120 = Mount Moon
      0121 = Abandoned Place
      0122 = End Credits
      0123 = Route Theme 1
      0124 = Route Theme 2/Intro
      0125 = Route Theme 3
      0126 = Route Theme 4
      0127 = Indigo Plateau
      0128 = Battle 3
      0129 = Battle 4
      012A = Battle 5
      012B = Battle 6
      012C = Pallet Town
      012D = Oak's Lab
      012E = Oak's Theme
      012F = Pokemon Center
      0130 = SS Anne
      0131 = Surf's Up
      0132 = Pokemon Tower
      0133 = Silph Co.
      0134 = Cerulean City
      0135 = Celadon City
      0136 = Victory 1
      0137 = Victory 2
      0138 = Victory 3
      0139 = Vermillion City
      013A = Viridian City and Pewter City
      013B = Gary's Theme
      013C = Gary's Theme (bis)
      013D = Fanfare 3
      013E = Fanfare 4
      013F = You caught a Pokemon!
      0140 = Trainer Card Photo
      0141 = Gamefreak
      0142 = Victory 2 (bis)
      0143 = Intro Message 1
      0144 = Intro Message 2
      0145 = Intro Message 3
      0146 = Game Corner (+1)
      0147 = Game Corner (+2)
      0148 = Net Corner
      0149 = Mystery Connection
      014A = Game Corner (+3)
      014B = Mount Ember
      014C = Follow Me (alt)
      014D = Water Labyrinth
      014E = Tanoby Ruins
      014F = Islands 1-3
      0150 = Islands 4-5
      0151 = Islands 6-7(AKA Violet City Theme from GSC)
      0152 = PokeFlute
      0153 = Battle - Deoxys
      0154 = Battle 5 (+1)
      0155 = Battle 5 (+2)
      0156 = Encounter 4
      0157 = Deoxys Encounter
      0158 = Trainer Tower
      0159 = Pallet Town (fame mix)
      015A = Teachy TV
      So there you go, that's the list. Hope this helps people out.
      Credit:
      Magnius


      Inserting High Quality Cries with Sappy:
      Spoiler:
      All of the other tutorials I've seen on cry inserting tell you to lower the quality of the cry to 11050Hz or 11025Hz. That is completely unnecessary, and simply serves do severely downgrade the quality of the cry. The Game Boy Advance can handle more than that.

      While inserting new instrument samples with Sappy, I realized that if I can insert these samples at 13379Hz without any problems, then surely I can insert cries the same way. And so, my theory turned out to be true.

      Yes, I am going to show you how to insert new Pokémon cries using Sappy, a program that was designed for a completely different purpose XD

      Here's what you'll need:
      *Sappy Mod 15 (get it here)
      *Free Space Finder
      *any random hex editor
      *.wav files of your cries (All 649 cries download, credit to Pokerealm.com)
      *Pokémon Game Editor (optional if you know what you're doing)

      IMPORTANT: If you don't know how to use a hex editor, or if you don't know what a pointer is, then I'm afraid this tutorial is too advanced for you.

      ~~~~~~~~~~~~~~~~~~~~~~~~~

      1. Open your ROM in Free Space Finder, find a really huge amount of free space (under the "Needed Bytes" label, I just type in 9999 even though I don't actually need 9999 bytes of free space)

      ------

      2. Make sure your free space offset ends in 0, or 4, or 8, or C. If it doesn't, just go forward 1 byte until it does. KEEP TRACK OF THE OFFSET.

      ------

      3. Open your ROM in Sappy

      ------

      4. Go to Tasks ---> Import Sample


      ------

      5. Select the cry you're going to insert, and insert at the free space offset you found earlier. You don't have to change any settings, just click "Import" right away.


      Even though you just inserted the cry, still keep track of the offset.

      ------

      6. READ: This step if for having a Pokémon's cry offset change to the new offset you just inserted a new cry at. If you know where the offset is by a method other than Pokémon Game Editor, then simply change the offset and skip this step. This step covers how to do it with Pokémon Game Editor.

      Now open up Pokémon Game Editor, and go to the Pokémon that you're going to change its cry. Change the cry offset to the offset of the cry you inserted earlier.


      However, there's a minor issue: This method will only work correctly if you're editing a Pokémon that's from Generation I or Generation II.

      If you want to change the cry of a Generation III Pokémon, read this:
      Spoiler:


      ------

      7. Now that we've changed the cry offset, there's one last thing we need to do. Open up your ROM in a hex editor, and search for the pointer to your new cry. I inserted my cry at 0x7BC664, so the pointer I'm searching for is 64 C6 7B 08.


      ------

      8. The search for the pointer should now take you to exactly where the offset is in the first cry table. Now go four bytes before that offset, and you should see the bytes "20 3C 00 00"


      Change "20 3C 00 00" to "00 3C 00 00".

      Congratulations, you just inserted a high-quality cry. Now test your cry in-game, and it should be in unbelievably high-quality, much higher than Pokecry will ever let you. You'll never have to use Pokecry again!

      Credit:
      Chaos Rush

      __________________
      Though I'm far from a pro, I try can help you on your ROM with scripting, ASM, mapping WHATEVER.

      Just ask
      Reply With Quote
        #29    
      Old November 30th, 2014 (10:14 AM).
      Akiba's Avatar
      Akiba Akiba is offline
      • Crystal Tier
       
      Join Date: Mar 2011
      Location: in a gap
      Age: 18
      Gender: Female
      Nature: Brave
      Posts: 4,268
      Thanks for the work again. I've been busy with homework, but expect good progress in the next few weeks.
      __________________
      Reply With Quote
        #30    
      Old December 23rd, 2014 (9:58 PM).
      Akiba's Avatar
      Akiba Akiba is offline
      • Crystal Tier
       
      Join Date: Mar 2011
      Location: in a gap
      Age: 18
      Gender: Female
      Nature: Brave
      Posts: 4,268
      Um, lol. I need to work on this.

      I've been terribly sick in the past few weeks, and missed a lot of school. I'm behind on a lot of other work, too.

      I'll try my best to find time for this during the break.

      Sorry for the delay again.
      __________________
      Reply With Quote
      Reply
      Quick Reply

      Sponsored Links
      Thread Tools

      Posting Rules
      You may not post new threads
      You may not post replies
      You may not post attachments
      You may not edit your posts

      BB code is On
      Smilies are On
      [IMG] code is On
      HTML code is Off

      Forum Jump


      All times are GMT -8. The time now is 8:27 PM.