News: 11 March 2016 - Forum Rules, Mobile Version
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia

Author Topic: Removing sounds From a GBA ROM?  (Read 356 times)

Psycho Fox

  • Jr. Member
  • **
  • Posts: 16
    • View Profile
Removing sounds From a GBA ROM?
« on: December 15, 2017, 01:54:11 pm »
Hi.

I've been thinking about removing the annoying commentator voice samples during the race in F-Zero Climax.  However, I've never hacked a ROM in my life!  If I simply remove the speech will it break the ROM as the checksum would be different?  If so, what can I replace the speech with?

Sorry for this stupidly noobish question!

Psyklax

  • Hero Member
  • *****
  • Posts: 603
    • View Profile
    • Psyklax Translations
Re: Removing sounds From a GBA ROM?
« Reply #1 on: December 15, 2017, 03:55:20 pm »
First of all, of course the checksum will change, but it won't matter unless the system employs checksum verification like the Genesis.

Second, how are you going to find these voice samples, exactly? :) A ROM isn't like a folder on a hard drive with lots of little files, it's a continuous series of bytes, some of which will refer to the voice samples. Unlike graphics (which can usually be viewed in something like Tile Molester), voice samples are a different beast. Maybe someone on the forum has some experience in this area, but I wouldn't know where to start, really.

Perhaps just turn the sound off for now. :D

mz

  • Sr. Member
  • ****
  • Posts: 326
    • View Profile
Re: Removing sounds From a GBA ROM?
« Reply #2 on: December 15, 2017, 04:10:34 pm »
but I wouldn't know where to start
I've never done anything remotely similar to this, but maybe I'd start by trying to see what's writing to the sounds registers listed here: http://problemkaputt.de/gbatek.htm#gbasoundcontroller

Obviously, that would require you to know ASM and how to use a debugger. :D

If there's a sound test in the game, maybe you can just use a cheat/RAM search tool and replace the calls to the bad sounds with a 0 or something.

The final and simplest solution would be to corrupt the ROM randomly to find where the samples are, and just replace them with 0s or something.
There has to be a better life.

FAST6191

  • Hero Member
  • *****
  • Posts: 2267
    • View Profile
Re: Removing sounds From a GBA ROM?
« Reply #3 on: December 15, 2017, 04:51:33 pm »
What the others have said applies and will get you what you want, however the GBA has several shortcuts which may apply.

If you want GBA sound then while GBAtek will get you there I much prefer to link
http://belogic.com/gba/ (navigation at the top).

Many GBA games use the sappy sound format, there are a few more devs doing their own thing compared to the DS' sdat format but it is a good first port of call.
http://www.romhacking.net/documents/462/
There are also several utilities to handle it.
While you can consider essentially every NES, MS, Megadrive/genesis and SNES game to use a custom audio setup from the ground up that you would have to pull apart it is always worth trying sappy first on the GBA.
Once there you can set volumes to zero, loop the track (pokemon hackers are fond of looping and have several guides to it) before it plays a note (or make a silent note and loop that), break the samples it uses so nothing technically plays and probably a few other things you can do other than fiddling with assembly calls.

Offhand I am not sure about the GBA wave samples formats and what might be used here (it is not as nice as the DS, and the DS has such capabilities sort of in hardware and in many SDAT games). That said if the music is sappy then whatever handles that will likely also be handling the voice samples and thus you have a very nice jumping off point (set a break on read for anything that bothers the music, watch it back and forth to find where it calls the voice and stop that from happening).

There are some checksums on the GBA but they are mostly for the header which you won't be bothering. Outside of possibly some anti piracy and some anti intro removal none apply beyond that and that is not what is happening here.