• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[FR/LG R/S/E] Repointing Cries and Custom Instruments

RedYoshi

Wah! Yoshi!
215
Posts
16
Years
Before anything, read DJG's tutorial first to figure out how
to insert cries.

IMPORTANT:You should also have a good understanding of how to use a Hex-Editor and PokeCryGUI

Hello everyone, this is a tutorial that'll teach you how to re-point cries using a Hex-Editor and a nifty way to use custom instruments!


WAV file requisites:
The Wave file should be in 8bit format, with 11k hz frequency. I'm not sure if being Stereo or Mono will affect the encoding process.

Here are the 2 Programs I mainly use for sound editing.

Audacity - Very useful for practically anything. Good for Pitch/Volume adjusting.
http://audacity.sourceforge.net/

FlexiMusic Wave Editor - Simple to use WAV file editor which makes it simple to export in 8bit 11khz format, however it costs $20. The free trial lasts for a Week
http://www.fleximusic.com/waveditor/overview.htm

Re-Pointing Cries
Well, from what I've read from DJGs PokeCry tutorial, the Sample Size has to be bigger than the Sample WAV, which can make importing some cries a hassle. By re-pointing you will avoid any errors caused by overwriting existing data, as in screwing up the cry data of another Pokemon because of the newly inserted Cry Data being longer than the original.


CRY TABLES
Ruby US v1.0
0x452590

Sapphire US v1.0
0x4525EC

FireRed US v1.0
0x48C914

LeafGreen US v1.0
0x48C1F0

Emerald US v1.0
0x69DCF4


Let's Begin.
Choose the cry you will be re-pointing, in this case I'll use Bulbasaur's cry. I will be importing Shieldon's cry. The WAV file is much larger than the Sample/Original one.

PART ONE: Inserting Your Cry
Important Note: Load the Cry Table in PokeCryGUI and where it says PokeID type in the ID of the Pokemon whose cry you will be re-pointing
and hit SAMPLE. Now write down the SAMPLE OFFSET, it will be needed in a much later step.

FIrstPICturs.png

So for me, Bulbasaur's SAMPLE OFFSET is 50 FB C4

So to begin with, insert your cry to an empty offset, please note that the encoded cry will take a good amount of free space.

For this tutorial I will use the offset 0x800000.
So set your "Sample Offset" to the offset you will be using; I will use 800000. MAKE SURE TO UNTICK "USE TABLE"
offset0x800000.png



Now hit encode.


PART 2: Re-Pointing the Offset
Now that you've inserted the cry, its time to find the CRY POINTER
of the Pokemon whose cry you will be re-pointing. The cry uses 12 bytes (correct me if I used the wrong term here)
(example: FF FF FF FF FF FF FF FF FF FF FF FF)



The way to find your cry pointer in a hex editor would be by searching for this string in your hex editor

20 3C 00 00 (SAMPLE ID offset in REVERSE HEX)08 FF 00 FF 00

Use the code below:
Code:
20 3C 00 00 XX XX XX 08 FF 00 FF 00

My SampleID offset is: 50 FB C4
So my offset would be: 20 3C 00 00 C4 FB 50 08 FF 00 FF 00
and you should come up to your cry data pointer


So the data for Bulbasaur's cry in FireRed will look like this.

POINTER111.png


THE RED IS WHAT WE REALLY NEED TO LOOK AT
20 3C 00 00 C4 FB 50 08 FF 00 FF 00

See whats in red? It is your Sample Offset from PokeCryGUI, but in reverse hex.

Whats in red is your pointer to the Cry data, but again in Reverse Hex

This is what we will be editing in our Hex-Editor, for this step you will need to write the offset where you encoded the cry data (the free offset you used in the first part) in reverse hex.

I encoded the Cry data to the offset: 800000

So break this up into: 80 00 00 and flip it around to-> 00 00 80
now paste that in your hex editor where your pointer data is. (The part colored in Red...)

RepOinters.png


Hit save on your Hex-Editor and you're done! The cry has been re-pointed!
With re-pointing you can insert any size cry to any pokemon you want!

Now to move on to the funner parts of Cry Inserting.

Custom Instruments for Music
Quick example of a Custom Instrument:



Now, before anything, you should read AnimeX's tutorial on custom VoiceGroups to get a good idea on how instrument hex-data/pointer is written and such.

Important Note: This is still being experimented with, don't expect any perfect results your first time. I encourage others to try experimenting with this also, there are some instruments which aren't as easy to replace like the Strings and Timpani. Im guessing the Midi KeySplite table and Samples Type affect this.

Code:
[COLOR=#000000][FONT=Times New Roman][FONT=Verdana]*Samples Type (4 Bytes)
*Sample Pointer (4 Bytes)
*Midi key split table pointer (4 bytes)[/FONT][/FONT][/COLOR]

Well, by now you should know how cry data is written in hex
(20 3C 00...). It uses 12 Bytes (correct me if I used the wrong term here xD) and instrument data also uses 12 bytes. The way PokeCry encodes cry data is similar to the encoded Instrument data.

VoiceGroups use pointers for their Instrument Data similar to the way Cries use pointers for their Cry Data.

In a nutshell: VoiceGroups use pointers, the same way Cries use pointers, and through copy/pasting, we can use the Cries as Instruments and Vice-Versa.

So my Bulbasaur Cry Pointer is
[S-HIGHLIGHT]20 3C 00 00 C4 FB 50 08 FF 00 FF 00 [/S-HIGHLIGHT]

I'll use the trumpet here as an example. The pointer for the Trumpet data in hex is
[S-HIGHLIGHT]40 00 00 00 5C A5 48 08 E4 30 4A 08[/S-HIGHLIGHT]

See how they only use 12 bytes? If you were to paste your cry data over the trumpet data in any voice-group, the cry would be used as an instrument, and there you go, custom instruments. So here's a quick step guide.

1: Encode a cry/instrument sound to an empty offset.

2. Make a Pointer to your encoded data using the format below:
Code:
20 3C 00 00 XX XX XX 08 FF 00 FF 00
XX XX XX is where the offset you used should be (Reverse Hex!)


3. Go to the address of a VoiceGroup in your hex editor.
(List of VoiceGroups in Fire-Red)
(List of VoiceGroups in R/S/E)

4. Paste your Cry/Instrument Pointer over an instrument of your choice in any voicegroup.
Find the instrument pointers (Under the section titled "Hex Values")on AnimeX's Custom Voicegroup Tutorial
[S-HIGHLIGHT]
Important Note: You may have to adjust the Pitch of your WAV file for instruments in order for them to sound right in your Rom.

My best guess would be that the WAV file encoded is the C5 key (Middle Key in a Piano), though I don't have proof of this as of yet...
[/S-HIGHLIGHT]

There you go, custom instruments! The end result should be similar to the video.



CREDITS:

DJG - For the tutorial on Cry Inserting
AnimeX - The tutorial on Custom Voice groups + the Instrument Hex Values
Magnius - The list of FireRed VoiceGroups
HackMew - The list of Cry Tables for PokeCry


DO NOT TAKE WITHOUT PERMISSION
 
Last edited by a moderator:

NTA

Where?
264
Posts
16
Years
  • Age 30
  • Seen Feb 10, 2012
having a little troublle finding it in my hex editor im using hex workshop >_>
 

NTA

Where?
264
Posts
16
Years
  • Age 30
  • Seen Feb 10, 2012
this always happens i tell someone it isnt working then i do it again and it works >.>

i was searching for this: 20 3C 00 00 and i was more than sure it said something about not being found but i just did it again and it worked :D thnx for the um tutorial

also if i reversed 8002F8 would it be F82008 right?
 

RedYoshi

Wah! Yoshi!
215
Posts
16
Years
this always happens i tell someone it isnt working then i do it again and it works >.>

i was searching for this: 20 3C 00 00 and i was more than sure it said something about not being found but i just did it again and it worked :D thnx for the um tutorial

also if i reversed 8002F8 would it be F82008 right?

Break it up into this, 80 02 F8

flip it around to F8 02 80
 

NTA

Where?
264
Posts
16
Years
  • Age 30
  • Seen Feb 10, 2012
lol thanks :) i was close
if i have any more problems ill let u know if i cant understand ;)
 

RedYoshi

Wah! Yoshi!
215
Posts
16
Years
Important Note:

One important note for those inserting new instrument sounds:

You may have to adjust the Pitch and Volume of your instrument sound. In some cases the sound will be a little off. I've included links to two programs which are IDEAL for Cry inserting. I am still looking for a free alternative for Fleximusic Wave Editor

 
Last edited:
224
Posts
16
Years
  • Seen Mar 8, 2016
Hmm... this is interesting.

A few months ago I imported FireRed instruments into Ruby. This, however, lets you import any instrument... The only problem for me is how on earth do you get the WAV file for an instrument?
 

RedYoshi

Wah! Yoshi!
215
Posts
16
Years
Hmm... this is interesting.

A few months ago I imported FireRed instruments into Ruby. This, however, lets you import any instrument... The only problem for me is how on earth do you get the WAV file for an instrument?

Well, you can rip sounds from other games using the "Record Sound" feature (This is where I recommend using Audacity to edit the sound clip), or you could try some sound packs for Fruity Loops Studio. There's tons of them out there and most are in WAV format. In fact, that's how I got the sample sound for the "Custom Instrument" video.
 

Great Mazinger

nope.avi
85
Posts
14
Years
  • Age 32
  • Seen Nov 27, 2013
Programs such as GBA2MIDI and VGM Trans can export samples from compatible GBA and DS games. It's also possible in a slightly more roundabout way to extract samples from PSF and PSF2 music files.
 

RedYoshi

Wah! Yoshi!
215
Posts
16
Years
Programs such as GBA2MIDI and VGM Trans can export samples from compatible GBA and DS games. It's also possible in a slightly more roundabout way to extract samples from PSF and PSF2 music files.

Yea, theres this program called "Nintendo Ds Sound Extractor" or NdsSndExt. Its a pretty useful program which rips Voice Clips, Instrument Sounds, and Midi Compositions from a Nintendo Ds Rom

Here's the attachment below.

Also there's this program which lets you save WAV samples from an SNES rom, but most of the sounds are just voice clips and sound effects. Not so much instruments.

http://www.zophar.net/utilities/rippers/snessor95.html
 

12345

Sky
157
Posts
16
Years
  • Seen Aug 18, 2016
This isn't work with all free offset. I found many free spaces and only some of them work. In Emerald, there aren't many free space, and can I reponit it with offset that have 7 number, such as 1011FB3....
 

rokrdude

POKEMON : SINNOH QUEST CREATOR
135
Posts
14
Years
  • Seen Oct 2, 2016
Thanks a million for the tutorial
I was looking everywhere for it and finally i found it.
 
Last edited:

thechurchofcage

a.k.a. The Cancer Fairy
124
Posts
15
Years
  • Age 54
  • Seen Jul 24, 2023
This is a great tutorial, and explains why my Dialga cry sounded like this in game:
View attachment 51677(Creepy)
Just one question, though:
With Audacity, how do you change it to 8-bit?
 
Last edited:

RedYoshi

Wah! Yoshi!
215
Posts
16
Years

thechurchofcage

a.k.a. The Cancer Fairy
124
Posts
15
Years
  • Age 54
  • Seen Jul 24, 2023
It's rather complicated to explain how to do it on Audacity. You're better off using
this program right here. This one is not as complicated
http://www.voxengo.com/product/r8brain/

Brilliant! Thanks for the help!

Sorry to bother you, but I have one more question - how do you change the cries of the ? Pokemon in between Celebi and Treecko? Because If I try to repoint one, it repoints all of them, including Unown's.
 
Last edited:
Back
Top