summaryrefslogtreecommitdiff
path: root/tools/section2cpp.py
diff options
context:
space:
mode:
authorJulgodis <>2021-01-29 22:51:25 +0100
committerJulgodis <>2021-01-29 22:52:35 +0100
commit7cc16872fc1080f375d1295a5b9f03c9ab486d2f (patch)
treea7a1d6c2b20b714511b39cc7f129bbe24d2efb4a /tools/section2cpp.py
parentb27de6e351448e413ed28cfbb4893a66b9163168 (diff)
added option for frameworkF.map
Diffstat (limited to 'tools/section2cpp.py')
-rw-r--r--tools/section2cpp.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/tools/section2cpp.py b/tools/section2cpp.py
index 788886ebfc..eb8415c26f 100644
--- a/tools/section2cpp.py
+++ b/tools/section2cpp.py
@@ -52,7 +52,7 @@ parser = argparse.ArgumentParser(description="Extract section data and generate
parser.add_argument(
"--section",
dest="section",
- type=str,
+ type=str,
metavar="SECTION",
help="SECTION to extract data from.",
required=True
@@ -61,7 +61,7 @@ parser.add_argument(
parser.add_argument(
"--file-offset",
dest="file_offset",
- type=lambda x: int(x,0),
+ type=lambda x: int(x,0),
metavar="OFFSET",
help="OFFSET in the baserom for the SECTION."
)
@@ -69,12 +69,21 @@ parser.add_argument(
parser.add_argument(
"--object",
dest="object_name",
- type=str,
+ type=str,
metavar="OBJECT",
help="OBJECT filename to extract data from. (e.g. JKRSolidHeap.o)"
)
parser.add_argument(
+ "--map",
+ dest="map_path",
+ type=str,
+ metavar="MAP",
+ help="frameworkF.map path",
+ default="frameworkF.map"
+)
+
+parser.add_argument(
"--baserom",
dest="baserom",
type=str,
@@ -289,7 +298,7 @@ class ObjectFile:
last_symbol.padding = self.end - (last_symbol.addr + last_symbol.size)
def find_symbols():
- file = open('frameworkF.map', 'r')
+ file = map_path.open('r')
lines = file.readlines()
in_section = False
@@ -576,6 +585,7 @@ section = args.section
object_name = args.object_name
file_offset: Optional[int] = args.file_offset
baserom = Path(args.baserom)
+map_path = Path(args.map_path)
file_offsets = {
".rodata": 0x80003000,
@@ -594,6 +604,10 @@ if not baserom.exists():
print("error: baserom '%s' not found!" % args.baserom)
sys.exit(1)
+if not map_path.exists():
+ print("error: frameworkF.map '%s' not found!" % args.map_path)
+ sys.exit(1)
+
object_map: Dict[str,ObjectFile] = {}
find_symbols()