diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/free_space.awk | 13 | ||||
-rw-r--r-- | tools/lzcomp.c | 1 | ||||
-rw-r--r-- | tools/md5.c | 2 | ||||
-rw-r--r-- | tools/scan_includes.c | 14 | ||||
-rwxr-xr-x | tools/sort_symfile.sh | 9 | ||||
-rwxr-xr-x[-rw-r--r--] | tools/toc.py | 0 |
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 |