Skip to content

jiangzhengwenjz/gbadisasm

 
 

Repository files navigation

GBADISASM

This is a simple disassembler for Game Boy Advance games.

Usage

gbadisasm rom_file -c config_file -l link_address -s

  • rom_file: the GBA rom to disassemble.
  • -c config_file (optional, but necessary for good output): a config file that gives hints to the disassembler.
  • -l link_address (optional): where the rom is linked to -- defaults to 0x8000000.
  • -s (optional): assume there's no rom header when present.

Config File

The config file consists of a list of statements, one per line. Lines beginning with # are treated as comments. An config file alttpafs.cfg for The Legend of Zelda: A Link to the Past and Four Swords (U) is provided as an example.

Config File Statement Format

Note: <> means optional. [] means you need to replace with your own address/name/number.

  • arm_func [function_address] <[function_name]> <f>: specify an ARM function. The letter f means you're sure this is a function (so it will never be changed to a normal label).
  • thumb_func [function_address] <[function_name]> <f>: specify a THUMB function. The letter f means you're sure this is a function (so it will never be changed to a normal label).
  • arm_label [label_address]: specify an ARM label. It may be changed to a function during analysis.
  • thumb_label [label_address]: specify a THUMB label. It may be changed to a function during analysis.
  • arm_far_jump [jump_target_address]: specify an ARM far jump target (i.e. a BL target but not a function).
  • thumb_far_jump [jump_target_address]: specify a THUMB far jump target (i.e. a BL target but not a function).
  • jump_table [jump_table_address] [count]: specify a jump table with count targets. This only works with jump tables generated by agbcc variants.
  • pool_label [pool_label_address] [count]: specify a pool label with count of 32-bit words.
  • data_label [data_label_address]: specify a data label. This results in .byte output.

Output Format

The program prints assembly code to stdout. The output should work with this header, with .syntax unified specifed.

About

Game Boy Advance disassembler

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 94.6%
  • Python 4.1%
  • Makefile 1.3%