- 1,315
- Posts
- 17
- Years
- Seen Jun 11, 2024
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:
------
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!
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
![[PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here) [PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here)](https://i50.tinypic.com/28vstbd.png)
------
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.
![[PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here) [PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here)](https://i48.tinypic.com/3167rdv.png)
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.
![[PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here) [PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here)](https://i48.tinypic.com/2e5nrmd.png)
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:
Pokémon Game Editor lists the incorrect cry offsets for Generation III Pokémon. This is because in the ROM, there's a secondary cry table to assign cries for the Generation III Pokémon. This is further because the Generation III cries are not stored in index number order in the first cry table, instead they're stored in the order that Game Freak created the Generation III Pokémon, hence why Kecleon comes right after Celebi in the cry table. However, if my theory is correct, the "?" Pokémon that's right after Celebi should have Kecleon's cry pointer in Pokémon Game Editor. Right after Celebi, the cries are in this order:
251 - Kecleon
252 - Roselia
253 - Torkoal
254 - Electrike
255 - Manectric
256 - Duskull
257 - Latias
258 - Wynaut
259 - Seviper
260 - Sharpedo
261 - Zangoose
262 - Azurill
263 - Swablu
264 - Altaria
265 - one of the beta cries that was first discovered in that German Ruby Debug ROM (beta Shellos?)
266 - Taillow
267 - Swellow
268 - one of the beta cries that was first discovered in that German Ruby Debug ROM (beta Gastrodon?)
269 - Whismur
270 - Torchic
271 - Combusken
272 - Blaziken
273 - Treecko
274 - Grovyle
275 - Sceptile
276 - Mudkip
277 - Marshtomp
278 - Swampert
279 - Pelipper
280 - Wingull
281 - Banette
282 - Shuppet
283 - Lotad
284 - Lombre
285 - Ludicolo
286 - Seedot
287 - Nuzleaf
288 - Shiftry
289 - Carvanha
290 - Wurmple
291 - Silcoon
292 - Beautifly
293 - Cascoon
294 - Dustox
295 - Ralts
296 - Kirlia
297 - Gardevoir
298 - Slakoth
299 - Vigoroth
300 - Slaking
301 - Nincada
302 - Ninjask
303 - Shedinja
304 - Makuhita
305 - Hariyama
306 - Nosepass
307 - Glalie
308 - Plusle
309 - Minun
310 - Surskit
311 - Masquerain
312 - Skitty
313 - Delcatty
314 - Gulpin
315 - Swalot
316 - Numel
317 - Camerupt
318 - Barboach
319 - Whiscash
320 - Corphish
321 - Crawdaunt
322 - Spoink
323 - Grumpig
324 - Trapinch
325 - Vibrava
326 - Flygon
327 - Cacnea
328 - Cacturne
329 - Baltoy
330 - Claydol
331 - Lunatone
332 - Solrock
333 - Feebas
334 - Milotic
335 - Absol
336 - Meditite
337 - Medicham
338 - Spheal
339 - Sealeo
340 - Walrein
341 - Clamperl
342 - Huntail
343 - Gorebyss
344 - Lileep
345 - Cradily
346 - Anorith
347 - Armaldo
348 - Beldum
349 - Metang
350 - Metagross
351 - Bagon
352 - Shelgon
353 - Regirock
354 - Regice
355 - Registeel
356 - Castform
357 - Volbeat
358 - Illumise
359 - Poochyena
360 - Mightyena
361 - Dusclops
362 - Sableye
363 - Mawile
364 - Aron
365 - Lairon
366 - Aggron
367 - Relicanth
368 - Luvdisc
369 - Groudon
370 - Kyogre
371 - Rayquaza
372 - Salamence
373 - Breloom
374 - Shroomish
375 - Linoone
376 - Tropius
377 - Wailmer
378 - Zigzagoon
379 - Exploud
380 - Loudred
381 - Wailord
382 - Whismur
383 - Snorunt
384 - Latios
385 - Jirachi
386 - Deoxys
387 - Chimecho
So if you know what you're doing, it shouldn't be that hard to change a Gen III Pokemon's cry.
251 - Kecleon
252 - Roselia
253 - Torkoal
254 - Electrike
255 - Manectric
256 - Duskull
257 - Latias
258 - Wynaut
259 - Seviper
260 - Sharpedo
261 - Zangoose
262 - Azurill
263 - Swablu
264 - Altaria
265 - one of the beta cries that was first discovered in that German Ruby Debug ROM (beta Shellos?)
266 - Taillow
267 - Swellow
268 - one of the beta cries that was first discovered in that German Ruby Debug ROM (beta Gastrodon?)
269 - Whismur
270 - Torchic
271 - Combusken
272 - Blaziken
273 - Treecko
274 - Grovyle
275 - Sceptile
276 - Mudkip
277 - Marshtomp
278 - Swampert
279 - Pelipper
280 - Wingull
281 - Banette
282 - Shuppet
283 - Lotad
284 - Lombre
285 - Ludicolo
286 - Seedot
287 - Nuzleaf
288 - Shiftry
289 - Carvanha
290 - Wurmple
291 - Silcoon
292 - Beautifly
293 - Cascoon
294 - Dustox
295 - Ralts
296 - Kirlia
297 - Gardevoir
298 - Slakoth
299 - Vigoroth
300 - Slaking
301 - Nincada
302 - Ninjask
303 - Shedinja
304 - Makuhita
305 - Hariyama
306 - Nosepass
307 - Glalie
308 - Plusle
309 - Minun
310 - Surskit
311 - Masquerain
312 - Skitty
313 - Delcatty
314 - Gulpin
315 - Swalot
316 - Numel
317 - Camerupt
318 - Barboach
319 - Whiscash
320 - Corphish
321 - Crawdaunt
322 - Spoink
323 - Grumpig
324 - Trapinch
325 - Vibrava
326 - Flygon
327 - Cacnea
328 - Cacturne
329 - Baltoy
330 - Claydol
331 - Lunatone
332 - Solrock
333 - Feebas
334 - Milotic
335 - Absol
336 - Meditite
337 - Medicham
338 - Spheal
339 - Sealeo
340 - Walrein
341 - Clamperl
342 - Huntail
343 - Gorebyss
344 - Lileep
345 - Cradily
346 - Anorith
347 - Armaldo
348 - Beldum
349 - Metang
350 - Metagross
351 - Bagon
352 - Shelgon
353 - Regirock
354 - Regice
355 - Registeel
356 - Castform
357 - Volbeat
358 - Illumise
359 - Poochyena
360 - Mightyena
361 - Dusclops
362 - Sableye
363 - Mawile
364 - Aron
365 - Lairon
366 - Aggron
367 - Relicanth
368 - Luvdisc
369 - Groudon
370 - Kyogre
371 - Rayquaza
372 - Salamence
373 - Breloom
374 - Shroomish
375 - Linoone
376 - Tropius
377 - Wailmer
378 - Zigzagoon
379 - Exploud
380 - Loudred
381 - Wailord
382 - Whismur
383 - Snorunt
384 - Latios
385 - Jirachi
386 - Deoxys
387 - Chimecho
So if you know what you're doing, it shouldn't be that hard to change a Gen III Pokemon's cry.
------
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.
![[PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here) [PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here)](https://i47.tinypic.com/2nrg2mf.png)
------
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"
![[PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here) [PokeCommunity.com] How to insert HIGH QUALITY cries using Sappy (no Pokecry here)](https://i49.tinypic.com/radz0l.png)
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!
Last edited: