Closed Mte90 closed 4 years ago
There is an example given on the main page:
# '#' starts a comment line.
# Function names are not mandatory; unknown funcs are named sub_<ADDRESS> when output.
arm_func 0x80000D0
thumb_func 0x800024C AgbMain
# If 'thumb_func' or 'arm_func' is omitted, the type is assumed to be 'thumb_func'.
# A module path may also be provided. Each time a new module is encountered, output switches to that path.
# Omitting the module will continue outputting to the same path.
0x80003b0 main.s CallCallbacks
These are not necessarily the same per game, although generally AgbMain is.
The function file is just used to help Luvdis discover functions and distinguish them from non-executable data. It should find some on its own based on push-call analysis, but the more you find manually the better the guessing will be.
You can loosen the requirements on function matching by passing
luvdis --min-calls 1 --min-length 1 ...
Note that while Luvdis will ARM functions as such, I haven't finished the ARM decoder yet so it doesn't analyze them. The vast majority of GBA functions are THUMB, anyway.
The readme refer to a functions.cfg file, I guess that is file is generic based on the various game boy and not for a game. An example file can be helpful to investigate the roms :-)