• 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?".
  • 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.

Development: ipatix' High Quality Sound Mixer | V2.1 released!

17
Posts
8
Years
  • so idk how you're compiling this, probably with like make or something
    you can also use the compiler from this tut to achieve the same result
    just drag the .txt/.asm/.s/.whatever file onto the thumb.bat file and it will output your compiled routine

    or you could even run it using command prompt from the file path and then do
    Code:
    thumb [routinename].[filetype] [outputroutinename].bin
    i.e.
    Code:
    thumb hqmixer.asm hqmixer.bin

    Thank you, now I have the .bin

    but, there is a new problem, after I insert it to the ROM and do the repointing, my emerald just showing a white screen. I have already edit the "TODO" but it's still same :3
     

    ipatix

    Sound Expert
    145
    Posts
    15
    Years
  • So, sorry first of all for not responding earlier.

    Making the mixer work without knowing what's actually going is quite difficult. For helping you out, I need you to tell me EVERY SINGLE STEP (don't drop out details) you've done when you were trying to insert it.
     
    17
    Posts
    8
    Years
  • So, sorry first of all for not responding earlier.

    Making the mixer work without knowing what's actually going is quite difficult. For helping you out, I need you to tell me EVERY SINGLE STEP (don't drop out details) you've done when you were trying to insert it.

    1.) I copy your code
    2.) I edit the TODO list (I think there is something wrong when I editing the TODO list) and change the CHOOSE YOUR GAME with BPEE (because I'm using PKMN Emerald (U))
    3.) I compile the code to be a ".bin" using Thumb (thanks blurose to tell me how to compile it)
    4.) I insert it at 0x09500000 or 1500000
    5.) I repoint the old sound mixer offset like the tutorial you write it. but, I think there is something wrong too :3

    (there is a part of your tut that I don't know)

    sorry with my english, because I'm still learning it :v and sorry to many "I" :v
     

    ipatix

    Sound Expert
    145
    Posts
    15
    Years
  • Sorry for being so picky, but please tell me all steps you did at the repointing. This is probably the most critical part and I actually messed it up myself quite a couple times.
     
    17
    Posts
    8
    Years
  • ok, I'm sorry

    1.) replace all 0x03006380 with 0x203E000
    2.) paste the new mixer to the 0x9500000
    3.) repoint the old mixer at 0x082E00F0 with 00 00 50 09
    4.) replace all 0x3001AA8 with 0x203E000
    5.) the lenght of my new mixer is B24 and the result when I divided by 4 is 2C9, I replace "00 02 00 04" at 0x82E00F8 with "C9 02 00 04"
    6.) not change the configuration, because i dont know

    also, I don't know how to paste and copy the old mixer because i dont know how to edit IWRAM and EWRAM
     
    19
    Posts
    7
    Years
    • Seen Apr 14, 2017
    I must say this is pretty awesome. By far my favorite mod.

    I did get tripped up a bit on this step though:
    After doing that you need to set the new RAM pointer for the new code inserted. There is 2 pointers for that: One for the CpuSet to copy the code to the right RAM location and one for the actual program call. The one for the program call has the Thumb bit set, the other one doesn't.
    The original mixing code is located at the following addresses:

    • Fire Red (US): 0x030028E0
    • Fire Red (GER): 03002830
    • Emerald (US, GER): 0x03001AA8
    For repointing search for this pointer and replace it with the new pointer where the Main Sound Area has been.

    I forget what I tried for the new pointer first, but eventually I figured out this is the pointer that's supposed to be used for that step above:
    Main Sound Area locations:
    • Fire Red (US): 0x03005F50
    • Fire Red (GER): 0x03005E40
    • Emerald (US, GER): 0x03006380
     

    LukeeGD

    Mostly a Music Hacker
    50
    Posts
    6
    Years
  • This might not be very helpful, but I'll share it anyway:
    So I managed to get the music mixer working on Ruby and LeafGreen, not the v2.1 version, but the one on angelXwind's github. I also tried Sapphire, but stuff happens. I'll try to fix it later.

    Here are some offsets.
    Pointers to binary:
    Sapphire - 0x1DDE48
    Ruby - 0x1DDED0
    LeafGreen - 0x1DD090

    Main sound area locations (replace with 0x0203E000)
    LeafGreen - 0x03005F50 (exactly the same as FR, occurs 2 times)
    Ruby and Sapphire - 0x03005FD0 (occurs 3 times)

    FREE_IRAM_BPG, 0x03004200
    FREE_IRAM_AXV, 0x03002B00
    FREE_IRAM_AXP, 0x03002B00

    DECODER_BUFFER_BPG, 0x03100000
    DECODER_BUFFER_AXV, 0x03100000
    DECODER_BUFFER_AXP, 0x03100000

    AXVE_DELTA_TABLE, 0x0842FA08
    AXPE_DELTA_TABLE, 0x0842FA50
     

    GreasyGarlic

    Banned
    24
    Posts
    6
    Years
  • This works perfectly except for one problem whenever a Pok?mon cry occurs in game my ROM crashes. Would you happen to know how to fix this?
     

    Dinisk

    DinisK
    89
    Posts
    7
    Years
    • Seen Apr 27, 2019
    This works perfectly except for one problem whenever a Pokémon cry occurs in game my ROM crashes. Would you happen to know how to fix this?
    I increased the number of tracks from 10 to 16 and it helped me (if we are talking about a pokemon cry from the pokedex menu)
     
    12
    Posts
    5
    Years
    • Seen Dec 26, 2018
    I investigated Japanese ROM.

    Pointers to binary:
    FireRed(J) [BPRJ]
    Emerald(J) [BPRE]

    BPRE_DELTA_TABLE, 0x084899F8
    BPRJ_DELTA_TABLE, 0x0844E638
     
    12
    Posts
    5
    Years
    • Seen Dec 26, 2018
    Corrected.

    I investigated Japanese ROM.

    Pointers to binary:
    FireRed(J) [BPRJ] 0x1C1070 (ROM)
    Emerald(J) [BPEJ] 0x28E670 (ROM)

    BPRJ_DELTA_TABLE, 0x0844E638
    BPEJ_DELTA_TABLE, 0x085FD590
     
    Back
    Top