Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anmart/gbdprog
Gameboy Disassembly Progress Calculator
https://github.com/anmart/gbdprog
disassembly gameboy
Last synced: 1 day ago
JSON representation
Gameboy Disassembly Progress Calculator
- Host: GitHub
- URL: https://github.com/anmart/gbdprog
- Owner: anmart
- License: unlicense
- Created: 2019-10-10T00:22:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-10-31T21:28:33.000Z (about 5 years ago)
- Last Synced: 2024-11-23T07:29:17.455Z (2 months ago)
- Topics: disassembly, gameboy
- Language: Python
- Size: 30.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gbdprog
Gameboy Disassembly Progress Calculator## About
gbdprog is a small python3 script meant to give a rough estimate of how far along a gameboy disassembly is. It was originally written for [poketcg](https://github.com/pret/poketcg), but it has been adapted to work with other disassemblies (such as those automatically generated through [mgbdis](https://github.com/mattcurrie/mgbdis)).Written in Python 3
## Features
- **Report amount of bytes being included from a baserom**
- Can use the project's Map file to generate a percentage of bytes accounted for
- Lists a breakdown of what bank bytes are included from
- **Report unnamed symbols** (i.e. symbols that have their own location in the name)
- can list banks by the amount of unnamed symbols they have
- Shows a percentage of unnamed vs named symbols
- Can show a list of unique label prefixes (Any text before the location of the symbol)
- Can be fed a list of banks to name every single unnamed symbol in that bank.
- **Report magic/unnamed Words** (straight hex 16 bit nonzero values)
- Shows a count of how many 16 bit words are written in the code with no symbol or constant.
- Shows a breakdown of what files contain how many magic words
- Has a(n overly) strict mode that hides certain values
- Minimal run mode
- Good for quick webhook messages## Setup
There are a few values that are stored in the py file to make things run a bit smoother.- `grepDir`
- Default: `"."`
- Directory for grep to run in by default. Ignored if `-d` flag is used.
- `incPrintFormat`
- Default: `"04x"`
- Format string passed to python's [format function](https://docs.python.org/3/library/string.html#format-string-syntax) for certain printed values.
- `banks`
- Default: `0x40`
- Amount of banks in the game, used for incrom percentage. Ignored if gbdprog is told about a valid map file.
- `unusedBanks`
- Default: `0`
- banks that have absolutely nothing in them, used for incrom percentage. Ignored if gbdprog is told about a valid map file.## Usage
usage: gbdprog.py [-h] [-e MAP] [--auto_map] [-i] [-d DIRECTORY] [-a ADD] [-m]
[-p PRINT_FORMAT] [-n] [-s SYMFILE] [-f] [-o]
[-l LIST_FUNCS [LIST_FUNCS ...]] [-w] [-t]
Progress checker for poketcg
optional arguments:
-h, --help show this help message and exit
-e MAP, --map MAP The project's Map file. Used to find various bank data
if not already defined. Use --auto_map to assume the
map file
--auto_map Assume the project's map file using the sym file
-i, --inc Turns on include report
-d DIRECTORY, --directory DIRECTORY
Override include search directory. Ignored if include
report is off
-a ADD, --add ADD Number of bytes that are inc'd using unsupported
methods.
-m, --minimal Runs reports minimally where possible, using fewer
lines than normal
-p PRINT_FORMAT, --print_format PRINT_FORMAT
Format string for printing byte amounts in include
report. Ignored if include report is off
-n, --no_warn Suppress warnings about unsupported inc methods.
-s SYMFILE, --symfile SYMFILE
Turns on Unnamed Symbol report using given sym file
-f, --function_source
Shows a breakdown of what bank each unnamed function
comes from. Ignored if symfile report is off
-o, --other_unnamed Shows all other unnamed symbols and a count of how
many there are. Ignored if symfile report is off
-l LIST_FUNCS [LIST_FUNCS ...], --list_funcs LIST_FUNCS [LIST_FUNCS ...]
Lists every unnamed function in the given banks. WILL
BE LONG. ignored if symfile report is off
-w, --words Turns on Word report, which shows all nonzero magic
number words
-t, --strict Caused Word Report to be more strict, only allowing
end of line or ] at the end NOTE: NOT RECOMMENDED DUE
TO LINES WITH COMMENTS
Examples:
Simple useful run:
gbdprog -mis game.sym --auto_map
Full report with too much info:
gbdprog -ifow -l home -s game.sym