summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/free_space.awk13
-rw-r--r--tools/lzcomp.c1
-rw-r--r--tools/md5.c2
-rw-r--r--tools/scan_includes.c14
-rwxr-xr-xtools/sort_symfile.sh9
-rwxr-xr-x[-rw-r--r--]tools/toc.py0
6 files changed, 34 insertions, 5 deletions
diff --git a/tools/free_space.awk b/tools/free_space.awk
new file mode 100644
index 000000000..1f2b04415
--- /dev/null
+++ b/tools/free_space.awk
@@ -0,0 +1,13 @@
+#!/usr/bin/awk -f
+
+# Usage: tools/free_space.awk pokecrystal.map
+
+BEGIN {
+ total = free = 16384 * 128
+}
+/^ SECTION: \$[0-7]/ {
+ free -= strtonum("0x" substr($3, 3))
+}
+END {
+ printf "Free space: %d/%d (%.2f%%)\n", free, total, free * 100 / total
+}
diff --git a/tools/lzcomp.c b/tools/lzcomp.c
index e0a88e44a..7d3e0b8fc 100644
--- a/tools/lzcomp.c
+++ b/tools/lzcomp.c
@@ -310,6 +310,7 @@ void optimize (struct command * commands, unsigned short count) {
break;
case 1:
if (commands -> value != next -> value) break;
+ // falls through
case 3:
if ((commands -> count + next -> count) <= 1024) {
commands -> count += next -> count;
diff --git a/tools/md5.c b/tools/md5.c
index 45562330a..6f4f58d2d 100644
--- a/tools/md5.c
+++ b/tools/md5.c
@@ -39,7 +39,7 @@ void md5_wikipedia(uint8_t *data, int length, uint8_t *result) {
uint8_t *message = calloc(length + 64, sizeof(uint8_t));
memcpy(message, data, length);
- long orig_bitlength = length * 8;
+ int64_t orig_bitlength = length * 8;
message[length++] |= 1 << 7;
diff --git a/tools/scan_includes.c b/tools/scan_includes.c
index 2babdcfb5..63af3bcfb 100644
--- a/tools/scan_includes.c
+++ b/tools/scan_includes.c
@@ -48,9 +48,20 @@ void scan_file(char* filename) {
buffer = strchr(buffer, '\n');
if (!buffer) {
fprintf(stderr, "%s: no newline at end of file\n", filename);
+ break;
}
break;
+ case '"':
+ buffer++;
+ buffer = strchr(buffer, '"');
+ if (!buffer) {
+ fprintf(stderr, "%s: unterminated string\n", filename);
+ break;
+ }
+ buffer++;
+ break;
+
case 'i':
case 'I':
if ((strncmp(buffer, "INCBIN", 6) == 0) || (strncmp(buffer, "incbin", 6) == 0)) {
@@ -60,9 +71,10 @@ void scan_file(char* filename) {
}
if (is_incbin || is_include) {
buffer = strchr(buffer, '"');
- if (!buffer++) {
+ if (!buffer) {
break;
}
+ buffer++;
int length = strcspn(buffer, "\"");
char *include = malloc(length + 1);
strncpy(include, buffer, length);
diff --git a/tools/sort_symfile.sh b/tools/sort_symfile.sh
index d53150faa..edde25e75 100755
--- a/tools/sort_symfile.sh
+++ b/tools/sort_symfile.sh
@@ -1,10 +1,13 @@
#!/bin/sh
-sed $1 \
+TEMP_FILE=$(mktemp)
+sed \
-e "s/^..:[0-3]/0_ROM0@&/g" \
-e "s/^..:[4-7]/1_ROMX@&/g" \
-e "s/^..:[8-9]/2_VRAM@&/g" \
-e "s/^..:[A-B]/3_SRAM@&/g" \
-e "s/^00:[C-D]/4_WRAM0@&/g" \
-e "s/^..:[D-D]/5_WRAMX@&/g" \
-| sort -o $1
-sed -i $1 -e "s/^\w*@//g"
+ $1 \
+| sort \
+| sed -e "s/^.*@//g" > $TEMP_FILE
+mv $TEMP_FILE $1
diff --git a/tools/toc.py b/tools/toc.py
index 9bdc8cca6..9bdc8cca6 100644..100755
--- a/tools/toc.py
+++ b/tools/toc.py