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

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
  • Age 28
  • 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
5
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
  • Age 24
  • 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
  • Age 36
  • 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
  • Age 36
  • 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