View Single Post
Old December 15th, 2012 (12:40 PM).
Chaos Rush's Avatar
Chaos Rush Chaos Rush is offline
    Join Date: May 2007
    Gender: Male
    Posts: 1,303
    In the 1st Generation Pokémon games (Red, Green, Blue, and Yellow), whenever you found an item, it plays a fanfare that is currently known as the level-up sound (in the Gen I games, it actually wasn't the level-up sound, but it became the official level-up sound in G/S/C and all later games).

    Then in G/S/C and all later games (except FR/LG), there were new fanfares. The level-up sound from R/G/B/Y became the official "found-item" sound, while the found-item sound from R/G/B/Y became the level-up sound. And TM's had a completely new sound. Then in R/S/E, a new fanfare was introduced for berries, which was used again in D/P/Pt (and I think HG/SS with the berry pots, but I don't really remember. The Unova games don't have this sound)

    In FireRed/LeafGreen, they made it so that it plays the level-up sound for all items to try and make it more like the Generation I games. However, all the fanfares from Ruby/Sapphire still exist in the FireRed ROM!

    Here is a new item script, that is identical to the giveitem command in XSE. If you want to use R/S/E fanfares, use this script instead of the giveitem command:
    #include stditems.rbh
    #dynamic 0x800000 //Change this offset to whatever free space you feel like
    #org @main
    checkitemroom ITEM_POTION 0x1
    bufferitem 0x1 ITEM_POTION
    compare LASTRESULT 0x0
    if 0x1 goto @Fail
    pause 0xB
    fanfare 0x102 //Change this value to change the fanfare that you want it to play
    hidesprite 0xFFFF //Change this value to the OW number of the item in AdvanceMap
    preparemsg @Msg3
    additem ITEM_POTION 0x1
    msgbox @Msg4 MSG_KEEPOPEN
    #org @Fail
    msgbox @Msg3 MSG_KEEPOPEN
    msgbox @Msg2 MSG_KEEPOPEN
    #org @Msg3
    = [player] found one [buffer2]!
    #org @Msg4
    = [player] put the [buffer2] away in\nthe BAG's ITEMS POCKET.
    #org @Msg2
    = Too bad!\nThe BAG is full[.]
    Make sure you change the FFFF in "hidesprite 0xFFFF"

    Also, notice the part that says, "fanfare 0x102". Change this value to change the song:
    0x100 = R/S/E Pokémon Center Healing
    0x101 = Level-up
    0x102 = R/S/E item sound
    0x103 = R/S/E "You caught a Pokémon"
    0x104 = R/S/E badge sound
    0x105 = R/S/E TM sound
    0x106 = R/S/E Berry sound

    As I said earlier, all of the Ruby/Sapphire fanfares are already in the FireRed ROM, they're just never heard in-game. The values I posted above will play them, in all of their R/S/E glory.

    Now I know that this takes up a lot more space than simply just the giveitem command, but I don't know how to modify the scripts that the command itself accesses, but I'm sure it's possible. Since the R/S/E fanfares are already in the FireRed ROM, it should be possible to change the scripts that the giveitem command accesses so that it plays the R/S/E fanfares instead of the level-up sound, but until those scripts are found, the script I posted above is identical to the giveitem command, except you get to choose which fanfare plays.
    Reply With Quote