You do not really want to disassemble the whole game (and pick through the "junk" so I suggest using VBA (try the SDL version) or one of the other emulators inbuilt one with either the assembler from devkitpro or goldroad as the assembler to turn it back into stuff.
Of course there are a few standalone disassemblers as well:
http://www.postbox.javamaster.co.uk/downloads.html
An ARM7 disassembler (normally commercial) will do the trick, some links here (among some other useful tools):
http://www.devrs.com/gba/software.php
There was a hack of pokemon red on the GB titles that did the same thing (added dark and steel types), z80/8080 assembly is different enough to ARM stuff but it should provide an idea of how to accomplish it:
http://www.romhacking.net/hacks/238/
Bear in mind as well if you are using one of the GUI based hacking apps you will need to tweak it if you add new types (I personally suggest if you are going this route change an uncommon one (ghost perhaps?) to space and add the uncommon one in before changing the few ghost pokemon back to ghost). There are many guides to hacking pokemon as well, a few are here:
http://www.pkmncommunity.com/
edit: I still think you will find devkitarm or one of the ones from devrs.com better but here is goldroad:
http://www.romhacking.net/?Category=18&Con...action=utillist