• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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.

[ASM & Hex] Changing SFX ID Hidden Item Fire Red

  • 47
    Posts
    12
    Years
    • Seen Apr 22, 2025
    I don't suppose this has been asked as of yet as I cannot locate any such thread: Does anyone know the address for which the fanfare for finding a hidden item is in Fire Red upon finding said item? It seems to share the same ID# as finding a regular item but changing the value in that routine for a regular item does not affect hidden items (implying that though they share the same ID value, they are separate routine calls). So, any help would be appreciated, thanks.

    I'm not looking to create new SFXs, merely to change the ID value for hidden items to something else. Thanks.
     

    Thanks, that is kind of what I was looking for except I was wrong. Regular items and hidden items share the same address for the song ID (value 101). Is there a way to make hidden items call a different song ID instead of sharing the address with regular items? So, in the end, I'd have regular items having an ID apart from hidden items. Thanks.
     
    Thanks, that is kind of what I was looking for except I was wrong. Regular items and hidden items share the same address for the song ID (value 101). Is there a way to make hidden items call a different song ID instead of sharing the address with regular items? So, in the end, I'd have regular items having an ID apart from hidden items. Thanks.

    You would probably have to rewrite the routine for it and I can't help you there.
     
    You would probably have to rewrite the routine for it and I can't help you there.

    Thanks for trying. My goal here was to use a separate theme for finding items like in R/B/Y (which I was able to do thanks to your link). But I was also hoping to use ID 0x103 for finding hidden items, just like how R/B/Y uses something like that one. It is similar to when a Pokemon is finished evolving and that final jingle after the evolution music plays, if that makes sense. Thanks again for your help.
     
    Thanks for trying. My goal here was to use a separate theme for finding items like in R/B/Y (which I was able to do thanks to your link). But I was also hoping to use ID 0x103 for finding hidden items, just like how R/B/Y uses something like that one. It is similar to when a Pokemon is finished evolving and that final jingle after the evolution music plays, if that makes sense. Thanks again for your help.

    You could use a debugger and put a breakpoint on fanfare_play (0x08071C60) and see where it's called from, then change the assembly there to your liking.
     
    You could use a debugger and put a breakpoint on fanfare_play (0x08071C60) and see where it's called from, then change the assembly there to your liking.

    Well, this is a good start but can you be a little more specific, please? Which debuggers are available for GBA? I tried no$GBA but I can't seem to find the debugger. Also, when I find a good debugger, what type of breakpoint should I use? A read, correct?
     
    Well, this is a good start but can you be a little more specific, please? Which debuggers are available for GBA? I tried no$GBA but I can't seem to find the debugger. Also, when I find a good debugger, what type of breakpoint should I use? A read, correct?

    In this case you would use a thumb breakpoint. A break on read is used if you want to find when a piece of data you specified is loaded into a register, a thumb breakpoint is used if you want to find out when it runs the specific function you put a breakpoint on.
    I recommend VBA-SDL-H, it's the one I use: https://www.romhacking.net/utilities/297/
     
    Back
    Top