From 6cab6b71670835e4ebb8adab3ebb991564c05d80 Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Fri, 23 Jun 2023 19:16:25 -0500 Subject: [PATCH 01/12] [WIP] Create calcrom.pl Remaining issues: * sub_??? (3 characters) need to be renamed to be considered undocumented * TitleScreen??_Unknown need to be renamed to be considered partially undocumented * Some .s files need to be moved to src (e.g., m4a_1.s) * Include library code in calculation? * Fix discarded input sections being considered * Fix incbins --- .github/calcrom/calcrom.pl | 242 +++++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 .github/calcrom/calcrom.pl diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl new file mode 100644 index 0000000..1d3c143 --- /dev/null +++ b/.github/calcrom/calcrom.pl @@ -0,0 +1,242 @@ +#!/usr/bin/perl + +# Usage: +# calcrom.pl [--verbose] +# +# mapfile: path to .map file output by LD +# verbose: set to get more detailed output + +use IPC::Cmd qw[ run ]; +use Getopt::Long; + +my $usage = "Usage: calcrom.pl file.map [--verbose]\n"; +my $verbose = ""; + +GetOptions("verbose" => \$verbose) or die $usage; +(@ARGV == 1) + or die $usage; +open(my $file, $ARGV[0]) + or die "ERROR: could not open file '$ARGV[0]'.\n"; + +my $src = 0; +my $asm = 0; +my $srcdata = 0; +my $data = 0; +my @pairs = (); +while (my $line = <$file>) +{ + if ($line =~ /^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) (\w+)\/(.+)\.o/) + { + my $section = $1; + my $size = hex($2); + my $dir = $3; + my $basename = $4; + if ($size & 3) + { + $size += 4 - ($size & 3); + } + + if ($section =~ /text/) + { + if ($dir eq 'src') + { + $src += $size; + } + elsif ($dir eq 'asm') + { + if (!($basename =~ /(crt0|libagbsyscall|libgcnmultiboot|m4a_1)/)) + { + push @pairs, [$basename, $size]; + } + $asm += $size; + } + } + elsif ($section =~ /rodata/) + { + if ($dir eq 'src') + { + $srcdata += $size; + } + elsif ($dir eq 'data') + { + $data += $size; + } + } + } +} + +my @sorted = sort { $a->[1] <=> $b->[1] } @pairs; +(my $elffname = $ARGV[0]) =~ s/\.map/.elf/; + + + +# Note that the grep filters out all branch labels. It also requires a minimum +# line length of 5, to filter out a ton of generated symbols (like AcCn). No +# settings to nm seem to remove these symbols. Finally, nm prints out a separate +# entry for whenever a name appears in a file, not just where it's defined. uniq +# removes all the duplicate entries. +# +# +# You'd expect this to take a while, because of uniq. It runs in under a second, +# though. Uniq is pretty fast! +my $base_cmd = "nm $elffname | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq"; + +# This looks for Unknown_, Unknown_, or sub_, followed by just numbers. Note that +# it matches even if stuff precedes the unknown, like sUnknown/gUnknown. +# 'sub_' anchors to the start so it does not consider symbols like 'nullsub_12' undocumented. +my $undoc_cmd = "grep -E '[Uu]nknown_[0-9a-fA-F]{4,}|^sub_[0-9a-fA-F]{4,}'"; + +# This looks for every symbol with an address at the end of it. Some things are +# given a name based on their type / location, but still have an unknown purpose. +# For example, FooMap_EventScript_FFFFFFF. +my $partial_doc_cmd = "grep -E '_[0-9a-fA-F]{4,}\$'"; + +my $count_cmd = "wc -l"; + +my $incbin_cmd = "find \"\$(dirname $elffname)\" \\( -name '*.s' -o -name '*.inc' \\) -exec cat {} ';' | grep -oE '^\\s*\\.incbin\\s*\"[^\"]+\"\s*,\\s*(0x)?[0-9a-fA-F]+\\s*,\\s*(0x)?[0-9a-fA-F]+' -"; + +# It sucks that we have to run this three times, but I can't figure out how to get +# stdin working for subcommands in perl while still having a timeout. It's decently +# fast anyway. +my $total_syms_as_string; +(run ( + command => "$base_cmd | $count_cmd", + buffer => \$total_syms_as_string, + timeout => 60 +)) + or die "ERROR: Error while getting all symbols: $?"; + +my $undocumented_as_string; +(run ( + command => "$base_cmd | $undoc_cmd | $count_cmd", + buffer => \$undocumented_as_string, + timeout => 60 +)) + or die "ERROR: Error while filtering for undocumented symbols: $?"; + +my $partial_documented_as_string; +(run ( + command => "$base_cmd | $partial_doc_cmd | $count_cmd", + buffer => \$partial_documented_as_string, + timeout => 60 +)) + or die "ERROR: Error while filtering for partial symbols: $?"; + +my $incbin_count_as_string; +(run ( + command => "$incbin_cmd | $count_cmd", + buffer => \$incbin_count_as_string, + timeout => 60 +)) + or die "ERROR: Error while counting incbins: $?"; + +my $incbin_bytes_as_string; +(run ( + command => "(echo -n 'ibase=16;' ; $incbin_cmd | sed -E 's/.*,\\s*0x([0-9a-fA-F]+)/\\1/' | tr '\\n' '+'; echo '0' ) | bc", + buffer => \$incbin_bytes_as_string, + timeout => 60 +)) + or die "ERROR: Error while calculating incbin totals: $?"; + +# Performing addition on a string converts it to a number. Any string that fails +# to convert to a number becomes 0. So if our converted number is 0, but our string +# is nonzero, then the conversion was an error. +my $undocumented = $undocumented_as_string + 0; +(($undocumented != 0) and ($undocumented_as_string ne "0")) + or die "ERROR: Cannot convert string to num: '$undocumented_as_string'"; + +my $partial_documented = $partial_documented_as_string + 0; +(($partial_documented != 0) and ($partial_documented_as_string ne "0")) + or die "ERROR: Cannot convert string to num: '$partial_documented_as_string'"; + +my $total_syms = $total_syms_as_string + 0; +(($total_syms != 0) and ($total_syms_as_string ne "0")) + or die "ERROR: Cannot convert string to num: '$total_syms_as_string'"; + +($total_syms != 0) + or die "ERROR: No symbols found."; + +my $incbin_count = $incbin_count_as_string + 0; +(($incbin_count != 0) and ($incbin_count_as_string ne "0")) + or die "ERROR: Cannot convert string to num: '$incbin_count_as_string'"; + +my $incbin_bytes = $incbin_bytes_as_string + 0; +(($incbin_bytes != 0) and ($incbin_bytes_as_string ne "0")) + or die "ERROR: Cannot convert string to num: '$incbin_bytes_as_string'"; + + +my $total = $src + $asm; +my $srcPct = sprintf("%.4f", 100 * $src / $total); +my $asmPct = sprintf("%.4f", 100 * $asm / $total); + +# partial_documented is double-counting the unknown_* and sub_* symbols. +$partial_documented = $partial_documented - $undocumented; + +my $documented = $total_syms - ($undocumented + $partial_documented); +my $docPct = sprintf("%.4f", 100 * $documented / $total_syms); +my $partialPct = sprintf("%.4f", 100 * $partial_documented / $total_syms); +my $undocPct = sprintf("%.4f", 100 * $undocumented / $total_syms); + +if ($asm == 0) +{ + print "Code decompilation is 100% complete\n" +} +else +{ + print "$total total bytes of code\n"; + print "$src bytes of code in src ($srcPct%)\n"; + print "$asm bytes of code in asm ($asmPct%)\n"; +} +print "\n"; + + + +if ($verbose != 0) +{ + print "BREAKDOWN\n"; + foreach my $item (@sorted) + { + print " $item->[1] bytes in asm/$item->[0].s\n" + } + print "\n"; +} + + + +if ($partial_documented == 0 && $undocumented == 0) +{ + print "Documentation is 100% complete\n" +} +else +{ + print "$total_syms total symbols\n"; + print "$documented symbols documented ($docPct%)\n"; + print "$partial_documented symbols partially documented ($partialPct%)\n"; + print "$undocumented symbols undocumented ($undocPct%)\n"; +} + +print "\n"; +my $dataTotal = $srcdata + $data; +my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal); +my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal); + +my $incPct = sprintf("%.4f", 100 * $incbin_bytes / $dataTotal); + +if ($data == 0) +{ + print "Data porting to C is 100% complete\n" +} +else +{ + print "$dataTotal total bytes of data\n"; + print "$srcdata bytes of data in src ($srcDataPct%)\n"; + print "$data bytes of data in data ($dataPct%)\n"; +} + +print "\n"; + +if ($incbin_count == 0) { + print "All incbins have been eliminated\n" +} else { + print "$incbin_bytes bytes of data in $incbin_count incbins ($incPct%)\n" +} From 11efa5038f43b5cb94122e011ba0866fd2d4b885 Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Fri, 23 Jun 2023 21:36:03 -0500 Subject: [PATCH 02/12] [WIP] Rename functions This commit allows calcrom to correctly calculate the number of undocumented and partially documented symbols --- .github/calcrom/calcrom.pl | 2 +- asm/ereader.s | 24 ++-- asm/high_scores.s | 36 +++--- asm/intro.s | 48 ++++---- asm/pokedex.s | 20 ++-- asm/rom_11B9C.s | 218 ++++++++++++++++++------------------- asm/rom_3219C.s | 82 +++++++------- data/rom.s | 14 +-- include/functions.h | 29 +++-- include/main.h | 10 +- src/bonus_field_select.c | 4 +- src/field_select.c | 4 +- src/main.c | 28 ++--- src/options.c | 8 +- src/rom_1068C.c | 2 +- src/rom_528AC.c | 2 +- src/titlescreen.c | 24 ++-- src/util.c | 28 ++--- 18 files changed, 291 insertions(+), 292 deletions(-) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 1d3c143..bcd9826 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -84,7 +84,7 @@ # This looks for Unknown_, Unknown_, or sub_, followed by just numbers. Note that # it matches even if stuff precedes the unknown, like sUnknown/gUnknown. # 'sub_' anchors to the start so it does not consider symbols like 'nullsub_12' undocumented. -my $undoc_cmd = "grep -E '[Uu]nknown_[0-9a-fA-F]{4,}|^sub_[0-9a-fA-F]{4,}'"; +my $undoc_cmd = "grep -E '[Uu]nknown_[0-9a-fA-F]{4,}\$|^sub_[0-9a-fA-F]{4,}\$'"; # This looks for every symbol with an address at the end of it. Some things are # given a name based on their type / location, but still have an unknown purpose. diff --git a/asm/ereader.s b/asm/ereader.s index 6ae020e..a7bf784 100644 --- a/asm/ereader.s +++ b/asm/ereader.s @@ -137,8 +137,8 @@ sub_2C78: @ 0x08002C78 bl sub_394C movs r0, #5 bl m4aSongNumStart - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C movs r0, #1 strb r0, [r6, #3] pop {r3, r4} @@ -467,9 +467,9 @@ sub_304C: @ 0x0800304C beq _08003076 bl sub_2568 bl sub_1AA4 - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 movs r0, #0 strb r0, [r5, #3] _08003076: @@ -803,9 +803,9 @@ _08003330: bne _08003358 bl sub_2568 bl sub_1AA4 - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 strb r4, [r7, #3] b _0800336E .align 2, 0 @@ -880,9 +880,9 @@ _080033E4: .4byte gUnknown_0202A58C _080033E8: movs r0, #0 strh r0, [r2] - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _0800342C @ =gMain movs r0, #6 strb r0, [r1, #3] @@ -1039,8 +1039,8 @@ sub_343C: @ 0x0800343C bl sub_394C movs r0, #5 bl m4aSongNumStart - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C movs r0, #7 strb r0, [r6, #3] pop {r3, r4} @@ -1266,9 +1266,9 @@ _08003748: .4byte 0x80001800 thumb_func_start sub_374C sub_374C: @ 0x0800374C push {lr} - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _08003774 @ =gAutoDisplayTitlescreenMenu movs r0, #1 strb r0, [r1] diff --git a/asm/high_scores.s b/asm/high_scores.s index ce16d73..5fb92fe 100644 --- a/asm/high_scores.s +++ b/asm/high_scores.s @@ -138,8 +138,8 @@ sub_CE88: @ 0x0800CE88 _0800CF50: movs r0, #0 strh r0, [r4] - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C ldr r0, _0800CFD0 @ =gUnknown_02002858 ldrb r0, [r0, #0xa] strb r0, [r7, #3] @@ -1665,9 +1665,9 @@ _0800DBB2: cmp r1, #1 ble _0800DBA2 movs r4, #0 - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r0, _0800DBF0 @ =gMain strb r4, [r0, #3] _0800DBD4: @@ -1773,9 +1773,9 @@ _0800DC88: cmp r2, #1 ble _0800DC68 bl SaveFile_WriteToSram - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _0800DCE8 @ =gMain movs r0, #0xc strb r0, [r1, #3] @@ -1814,9 +1814,9 @@ sub_DCF0: @ 0x0800DCF0 bl m4aSongNumStart bl sub_F6E0 bl SaveFile_WriteToSram - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 movs r0, #0 b _0800DD3C .align 2, 0 @@ -1846,9 +1846,9 @@ _0800DD48: .4byte gUnknown_0202BEBC thumb_func_start sub_DD4C sub_DD4C: @ 0x0800DD4C push {lr} - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _0800DD6C @ =gAutoDisplayTitlescreenMenu movs r0, #1 strb r0, [r1] @@ -1956,8 +1956,8 @@ sub_DD70: @ 0x0800DD70 ldr r0, [r4, #8] movs r0, #9 bl m4aSongNumStart - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C ldrb r0, [r6, #3] adds r0, #1 strb r0, [r6, #3] @@ -2262,9 +2262,9 @@ _0800E0C0: .4byte 0x80000800 thumb_func_start sub_E0C4 sub_E0C4: @ 0x0800E0C4 push {lr} - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r0, _0800E0E8 @ =gUnknown_02002858 adds r0, #0x24 ldrb r0, [r0] @@ -2375,8 +2375,8 @@ sub_E0EC: @ 0x0800E0EC ldr r0, [r4, #8] movs r0, #9 bl m4aSongNumStart - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C ldrb r0, [r6, #3] adds r0, #1 strb r0, [r6, #3] @@ -2589,9 +2589,9 @@ _0800E38C: .4byte 0x80000800 thumb_func_start sub_E390 sub_E390: @ 0x0800E390 push {lr} - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 movs r0, #8 bl SetMainGameState pop {r0} diff --git a/asm/intro.s b/asm/intro.s index 0783af7..6fec002 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -71,8 +71,8 @@ sub_929C: @ 0x0800929C strb r2, [r0] ldr r0, _08009344 @ =sub_93F8 + 1 bl SetMainCallback - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C ldrb r0, [r4, #3] adds r0, #1 strb r0, [r4, #3] @@ -120,7 +120,7 @@ sub_9370: @ 0x08009370 push {lr} movs r0, #0 bl sub_FF74 - bl sub_D10 + bl sub_0D10 ldr r1, _08009388 @ =gMain ldrb r0, [r1, #3] adds r0, #1 @@ -166,9 +166,9 @@ _080093CC: .4byte gMain thumb_func_start sub_93D0 sub_93D0: @ 0x080093D0 push {lr} - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 bl ResetMainCallback ldr r1, _080093F4 @ =gAutoDisplayTitlescreenMenu movs r0, #0 @@ -265,7 +265,7 @@ sub_9498: @ 0x08009498 mov r5, r8 push {r5, r6, r7} bl ClearGraphicsMemory - bl sub_518 + bl sub_0518 bl ClearSprites movs r2, #0x80 lsls r2, r2, #0x13 @@ -418,7 +418,7 @@ sub_9498: @ 0x08009498 ldr r2, _0800969C @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] - bl sub_CBC + bl sub_0CBC mov r0, sl adds r1, r6, #0 movs r2, #0 @@ -1815,7 +1815,7 @@ _0800A150: .4byte 0x000001FF thumb_func_start sub_A154 sub_A154: @ 0x0800A154 push {lr} - bl sub_518 + bl sub_0518 ldr r1, _0800A168 @ =gUnknown_0202C790 ldrb r0, [r1] adds r0, #1 @@ -1928,7 +1928,7 @@ sub_A16C: @ 0x0800A16C ldr r2, _0800A2A0 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800A2A4 @ =gUnknown_0202C790 ldrb r0, [r1] @@ -2167,7 +2167,7 @@ _0800A438: .4byte gUnknown_0202C790 thumb_func_start sub_A43C sub_A43C: @ 0x0800A43C push {lr} - bl sub_518 + bl sub_0518 ldr r1, _0800A450 @ =gUnknown_0202C790 ldrb r0, [r1] adds r0, #1 @@ -2331,7 +2331,7 @@ sub_A454: @ 0x0800A454 ldr r2, _0800A620 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800A624 @ =gUnknown_0202C790 ldrb r0, [r1] @@ -2766,7 +2766,7 @@ _0800A94C: .4byte 0x000001FF thumb_func_start sub_A950 sub_A950: @ 0x0800A950 push {lr} - bl sub_518 + bl sub_0518 ldr r1, _0800A964 @ =gUnknown_0202C790 ldrb r0, [r1] adds r0, #1 @@ -2881,7 +2881,7 @@ sub_A968: @ 0x0800A968 ldr r1, _0800AAA0 @ =0x000002F6 adds r4, r4, r1 strh r0, [r4] - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800AAA4 @ =gUnknown_0202C790 ldrb r0, [r1] @@ -3107,7 +3107,7 @@ _0800AC1C: .4byte gUnknown_0202C790 thumb_func_start sub_AC20 sub_AC20: @ 0x0800AC20 push {lr} - bl sub_518 + bl sub_0518 ldr r1, _0800AC34 @ =gUnknown_0202C790 ldrb r0, [r1] adds r0, #1 @@ -3266,7 +3266,7 @@ sub_AC38: @ 0x0800AC38 ldr r2, _0800ADF4 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800ADF8 @ =gUnknown_0202C790 ldrb r0, [r1] @@ -3920,7 +3920,7 @@ _0800B2DC: .4byte 0xFFFFFE00 thumb_func_start sub_B2E0 sub_B2E0: @ 0x0800B2E0 push {lr} - bl sub_518 + bl sub_0518 ldr r1, _0800B2F4 @ =gUnknown_0202C790 ldrb r0, [r1] adds r0, #1 @@ -4071,7 +4071,7 @@ sub_B2F8: @ 0x0800B2F8 ldr r2, _0800B498 @ =0x000002F6 adds r1, r1, r2 strh r0, [r1] - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800B49C @ =gUnknown_0202C790 ldrb r0, [r1] @@ -4957,7 +4957,7 @@ sub_BA3C: @ 0x0800BA3C ldr r1, _0800BBD8 @ =0x000002F6 adds r4, r4, r1 strh r0, [r4] - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800BBDC @ =gUnknown_0202C790 ldrb r0, [r1] @@ -5770,7 +5770,7 @@ _0800C20C: .4byte 0x000001FF thumb_func_start sub_C210 sub_C210: @ 0x0800C210 push {lr} - bl sub_518 + bl sub_0518 ldr r1, _0800C224 @ =gUnknown_0202C790 ldrb r0, [r1] adds r0, #1 @@ -5839,7 +5839,7 @@ sub_C228: @ 0x0800C228 strh r0, [r1, #0x16] bl sub_C2F0 bl sub_C4F0 - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800C2EC @ =gUnknown_0202C790 ldrb r0, [r1] @@ -6535,7 +6535,7 @@ sub_C814: @ 0x0800C814 mov r5, r8 push {r5, r6, r7} sub sp, #4 - bl sub_518 + bl sub_0518 movs r0, #0 str r0, [sp] ldr r1, _0800C924 @ =0x040000D4 @@ -6745,7 +6745,7 @@ sub_C948: @ 0x0800C948 ldr r1, _0800CA20 @ =0x000002F6 adds r4, r4, r1 strh r0, [r4] - bl sub_CBC + bl sub_0CBC bl sub_10424 ldr r1, _0800CA24 @ =gUnknown_0202C790 ldrb r0, [r1] @@ -7122,9 +7122,9 @@ _0800CCF4: .4byte gUnknown_0202C790 thumb_func_start sub_CCF8 sub_CCF8: @ 0x0800CCF8 push {lr} - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _0800CD14 @ =gMain ldrb r0, [r1, #3] adds r0, #1 diff --git a/asm/pokedex.s b/asm/pokedex.s index 8aaa2c7..3fb3954 100644 --- a/asm/pokedex.s +++ b/asm/pokedex.s @@ -173,8 +173,8 @@ sub_3DCC: @ 0x08003DCC str r2, [r4, #8] ldr r0, [r4, #8] bl sub_51FC - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C movs r0, #1 strb r0, [r7, #3] movs r0, #0x2e @@ -1597,9 +1597,9 @@ _08004B70: subs r1, #1 cmp r1, #0 bge _08004B70 - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _08004BB0 @ =gMain movs r0, #0 strb r0, [r1, #3] @@ -1685,9 +1685,9 @@ _08004C2A: cmp r2, #0xcc ble _08004C2A bl SaveFile_WriteToSram - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _08004C78 @ =gMain movs r0, #0 strb r0, [r1, #3] @@ -1761,9 +1761,9 @@ _08004CC2: mov r1, ip strh r0, [r1] bl SaveFile_WriteToSram - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _08004CF8 @ =gMain movs r0, #0 strb r0, [r1, #3] @@ -1806,9 +1806,9 @@ _08004D4C: .4byte gUnknown_0202A588 thumb_func_start sub_4D50 sub_4D50: @ 0x08004D50 push {lr} - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r1, _08004D70 @ =gAutoDisplayTitlescreenMenu movs r0, #1 strb r0, [r1] diff --git a/asm/rom_11B9C.s b/asm/rom_11B9C.s index d5b362d..90dc3cd 100644 --- a/asm/rom_11B9C.s +++ b/asm/rom_11B9C.s @@ -224,7 +224,7 @@ _08011D0A: b _08011F2C _08011D4C: adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, r8 @@ -239,7 +239,7 @@ _08011D4C: ands r5, r1 orrs r5, r0 adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 @@ -268,7 +268,7 @@ _08011DA4: b _08011F2C _08011DB2: adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 @@ -283,7 +283,7 @@ _08011DB2: ands r5, r1 orrs r5, r0 adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 @@ -362,7 +362,7 @@ _08011E36: cmp r2, r0 ble _08011F2C adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r2, r8 @@ -377,7 +377,7 @@ _08011E36: ands r5, r1 orrs r5, r0 adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 @@ -404,7 +404,7 @@ _08011ED0: cmp r2, r0 ble _08011F2C mov r0, sb - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, r8 @@ -419,7 +419,7 @@ _08011ED0: ands r5, r1 orrs r5, r0 mov r0, sb - bl sub_C24 + bl sub_0C24 mov r2, r8 rsbs r1, r2, #0 lsls r0, r0, #0x10 @@ -593,7 +593,7 @@ _0801200A: b _080124C8 _08012052: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -606,7 +606,7 @@ _08012052: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -633,7 +633,7 @@ _080120A4: b _080124C8 _080120B0: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -646,7 +646,7 @@ _080120B0: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -677,7 +677,7 @@ _080120FC: b _080124C8 _08012114: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -690,7 +690,7 @@ _08012114: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -715,7 +715,7 @@ _08012160: b _080124C8 _0801216C: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -728,7 +728,7 @@ _0801216C: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -757,7 +757,7 @@ _080121B8: b _080124C8 _080121CC: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -770,7 +770,7 @@ _080121CC: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -795,7 +795,7 @@ _08012218: b _080124C8 _08012224: mov r0, sb - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -808,7 +808,7 @@ _08012224: ands r5, r1 orrs r5, r0 mov r0, sb - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -861,7 +861,7 @@ _08012270: b _080124C8 _080122B6: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -874,7 +874,7 @@ _080122B6: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -900,7 +900,7 @@ _08012304: b _080124C8 _08012310: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -913,7 +913,7 @@ _08012310: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -944,7 +944,7 @@ _0801235C: b _080124C8 _08012374: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -957,7 +957,7 @@ _08012374: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -982,7 +982,7 @@ _080123C0: b _080124C8 _080123CC: mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -995,7 +995,7 @@ _080123CC: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -1022,7 +1022,7 @@ _08012418: cmp r1, r0 ble _080124C8 mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -1035,7 +1035,7 @@ _08012418: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -1058,7 +1058,7 @@ _08012474: cmp r1, r0 ble _080124C8 mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 @@ -1071,7 +1071,7 @@ _08012474: ands r5, r1 orrs r5, r0 mov r0, r8 - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -3703,12 +3703,12 @@ sub_13934: @ 0x08013934 cmp r0, #0 ble _080139A4 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 cmp r0, #0 bge _080139D6 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x46 @@ -3728,12 +3728,12 @@ _080139A4: cmp r0, #0 bge _080139D6 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 cmp r0, #0 ble _080139D6 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x46 @@ -3786,7 +3786,7 @@ _080139EC: cmp r0, #0 bne _08013A44 adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -3802,7 +3802,7 @@ _08013A3C: .4byte 0x00000125 _08013A40: .4byte 0x0000132C _08013A44: adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x64 @@ -3825,7 +3825,7 @@ _08013A64: cmp r0, #0 bne _08013A8C adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0x64 @@ -3837,7 +3837,7 @@ _08013A64: _08013A88: .4byte 0x00004E20 _08013A8C: adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r2, r0, #2 @@ -4250,7 +4250,7 @@ _08013DB8: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x18] @@ -4260,7 +4260,7 @@ _08013DB8: bl __divsi3 str r0, [sp, #0x1c] adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, [sp, #0x18] @@ -4269,7 +4269,7 @@ _08013DB8: bl __divsi3 adds r7, r0, #0 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 ldr r1, _08013E44 @ =0x1F3F0000 cmp r0, r1 @@ -4357,13 +4357,13 @@ _08013E58: adds r1, r1, r0 strh r1, [r4, #6] ldr r0, [sp, #8] - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r7, r0 str r0, [sp] ldr r0, [sp, #8] - bl sub_C24 + bl sub_0C24 rsbs r1, r7, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -4375,7 +4375,7 @@ _08013E58: lsls r0, r1, #0x10 lsrs r5, r0, #0x10 adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x1c] @@ -4384,7 +4384,7 @@ _08013E58: adds r0, r0, r1 str r0, [sp] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 ldr r2, [sp, #0x1c] rsbs r1, r2, #0 lsls r0, r0, #0x10 @@ -4415,7 +4415,7 @@ _08013F20: muls r1, r4, r1 adds r4, r1, #0 adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 mov r1, sb muls r1, r4, r1 lsls r0, r0, #0x10 @@ -4431,7 +4431,7 @@ _08013F20: orrs r2, r0 mov sl, r2 adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 rsbs r1, r4, #0 mov r2, sb muls r2, r1, r2 @@ -4502,7 +4502,7 @@ _08013F20: cmp r0, #0xd1 bgt _08014020 adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r2, [sp, #0x18] @@ -4511,7 +4511,7 @@ _08013F20: bl __divsi3 str r0, [sp] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 ldr r2, [sp, #0x18] rsbs r1, r2, #0 b _0801403E @@ -4525,7 +4525,7 @@ _08014018: .4byte 0x0000FFFF _0801401C: .4byte gMain _08014020: adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r6, r0 @@ -4534,7 +4534,7 @@ _08014020: bl __divsi3 str r0, [sp] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 rsbs r1, r6, #0 _0801403E: lsls r0, r0, #0x10 @@ -4664,7 +4664,7 @@ _08014108: cmp r0, #0 beq _08014190 adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xe6 @@ -4678,7 +4678,7 @@ _08014108: ands r6, r1 orrs r6, r0 adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -4697,7 +4697,7 @@ _08014188: .4byte 0x00004E20 _0801418C: .4byte 0xFFFF0000 _08014190: adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, _08014200 @ =0x0000011D @@ -4711,7 +4711,7 @@ _08014190: ands r6, r1 orrs r6, r0 adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -4788,7 +4788,7 @@ _08014236: cmp r0, r1 bhi _080142A8 adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 @@ -4804,7 +4804,7 @@ _08014236: ands r6, r1 orrs r6, r0 adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -4827,7 +4827,7 @@ _080142A8: cmp r0, r1 bhi _080142FC adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 @@ -4843,7 +4843,7 @@ _080142A8: ands r6, r1 orrs r6, r0 adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -4858,7 +4858,7 @@ _080142F4: .4byte 0x00004E20 _080142F8: .4byte 0xFFFF0000 _080142FC: adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #4 @@ -4874,7 +4874,7 @@ _080142FC: ands r6, r1 orrs r6, r0 adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -4888,7 +4888,7 @@ _08014338: .4byte 0x00004E20 _0801433C: .4byte 0xFFFF0000 _08014340: adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 ldr r5, _080143D4 @ =gUnknown_086ACDF4 mov r2, sl ldr r1, [r2] @@ -4910,7 +4910,7 @@ _08014340: ands r6, r1 orrs r6, r0 adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 mov r2, sl ldr r1, [r2] adds r1, #0x23 @@ -5007,7 +5007,7 @@ _08014412: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 mov r1, sb @@ -5019,7 +5019,7 @@ _08014412: mov r2, r8 str r0, [r2] adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 mov r2, sb rsbs r1, r2, #0 lsls r0, r0, #0x10 @@ -5690,7 +5690,7 @@ sub_1493C: @ 0x0801493C lsrs r4, r4, #0x10 movs r5, #0x1e adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 @@ -5699,7 +5699,7 @@ sub_1493C: @ 0x0801493C bl __divsi3 str r0, [sp] adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 rsbs r5, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -6082,7 +6082,7 @@ _08014CB0: lsls r0, r0, #0x10 lsrs r6, r0, #0x10 adds r0, r6, #0 - bl sub_C74 + bl sub_0C74 mov r1, sl ldr r4, [r1] lsls r0, r0, #0x10 @@ -6094,7 +6094,7 @@ _08014CB0: adds r4, #0x60 strh r0, [r4] adds r0, r6, #0 - bl sub_C24 + bl sub_0C24 mov r2, sl ldr r4, [r2] rsbs r1, r7, #0 @@ -6146,7 +6146,7 @@ _08014D3E: bl __divsi3 adds r5, r0, #0 adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 @@ -6159,7 +6159,7 @@ _08014D3E: ands r4, r1 orrs r4, r0 adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 @@ -6201,7 +6201,7 @@ _08014D3E: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 muls r0, r5, r0 @@ -6210,7 +6210,7 @@ _08014D3E: mov r3, r8 strh r0, [r3] adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 rsbs r5, r5, #0 lsls r0, r0, #0x10 asrs r0, r0, #0x10 @@ -9512,7 +9512,7 @@ _080167EE: lsls r0, r0, #0x10 lsrs r7, r0, #0x11 adds r0, r6, #0 - bl sub_C74 + bl sub_0C74 mov r5, sb ldr r1, [r5] add r1, r8 @@ -9525,7 +9525,7 @@ _080167EE: bl __divsi3 strh r0, [r4, #0x30] adds r0, r6, #0 - bl sub_C24 + bl sub_0C24 mov r2, sb ldr r1, [r2] add r1, r8 @@ -14874,9 +14874,9 @@ _080192A4: asrs r0, r0, #0x10 cmp r0, #4 ble _080192A4 - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r2, _080192E0 @ =gMain ldr r0, _080192E4 @ =gUnknown_02031520 movs r3, #6 @@ -21524,7 +21524,7 @@ sub_1C73C: @ 0x0801C73C strb r6, [r0] _0801C7BA: bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldrb r0, [r7, #4] strb r0, [r7, #5] ldr r0, [r5] @@ -25483,7 +25483,7 @@ _0801E824: movs r0, #0xb4 strh r0, [r1] adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 mov r4, sb ldr r1, [r4] adds r4, r1, r6 @@ -25502,7 +25502,7 @@ _0801E824: adds r4, r4, r1 strh r0, [r4] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 mov r2, sb ldr r1, [r2] adds r4, r1, r6 @@ -25574,7 +25574,7 @@ _0801E8E0: movs r0, #0xb4 strh r0, [r1] adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 mov r4, sb ldr r1, [r4] adds r4, r1, r6 @@ -25593,7 +25593,7 @@ _0801E8E0: adds r4, r4, r1 strh r0, [r4] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 mov r2, sb ldr r1, [r2] adds r4, r1, r6 @@ -25844,7 +25844,7 @@ _0801EB00: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -25855,7 +25855,7 @@ _0801EB00: bl __divsi3 str r0, [sp, #8] adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -27454,7 +27454,7 @@ _0801F802: cmp r0, #0x1d bhi _0801F8A8 adds r0, r2, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 mov r2, sb ldr r4, [r2] @@ -27485,7 +27485,7 @@ _0801F8A0: .4byte 0x00004E20 _0801F8A4: .4byte 0x000002B6 _0801F8A8: adds r0, r2, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 mov r0, sb ldr r4, [r0] @@ -29448,7 +29448,7 @@ _08020832: bl m4aMPlayVolumeControl _08020856: adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r0, _08020910 @ =gUnknown_020314E0 ldr r4, [r0] @@ -30370,7 +30370,7 @@ _08020F82: lsls r4, r4, #0x10 lsrs r5, r4, #0x10 adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -30381,7 +30381,7 @@ _08020F82: bl __divsi3 str r0, [sp] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -37391,7 +37391,7 @@ _0802485C: bgt _080248AC movs r5, #0 mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -37403,7 +37403,7 @@ _0802485C: bl __divsi3 str r0, [sp] mov r0, r8 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -37431,7 +37431,7 @@ _080248AC: lsls r0, r0, #0x10 lsrs r5, r0, #0x10 mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -37442,7 +37442,7 @@ _080248AC: bl __divsi3 str r0, [sp] mov r0, r8 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -37713,7 +37713,7 @@ _08024AB4: lsrs r2, r2, #0x10 mov r8, r2 mov r0, r8 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -37724,7 +37724,7 @@ _08024AB4: bl __divsi3 str r0, [sp] mov r0, r8 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -38116,7 +38116,7 @@ _08024E38: cmp r0, #1 bls _08024EB0 adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 ldr r4, _08024EA8 @ =gUnknown_020314E0 ldr r1, [r4] add r1, sb @@ -38127,7 +38127,7 @@ _08024E38: bl __divsi3 strh r0, [r4, #0x30] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r5, _08024EA8 @ =gUnknown_020314E0 ldr r0, [r5] @@ -38148,7 +38148,7 @@ _08024EA8: .4byte gUnknown_020314E0 _08024EAC: .4byte 0x000005A9 _08024EB0: adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 ldr r6, _08024EF4 @ =gUnknown_020314E0 ldr r1, [r6] add r1, sb @@ -38159,7 +38159,7 @@ _08024EB0: bl __divsi3 strh r0, [r4, #0x30] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r0, [r6] add r0, sb @@ -45288,7 +45288,7 @@ _080288E0: .4byte gUnknown_020314E0 _080288E4: .4byte gUnknown_086AE124 _080288E8: adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -45299,7 +45299,7 @@ _080288E8: bl __divsi3 adds r6, r0, #0 adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #3 @@ -45334,7 +45334,7 @@ _08028918: mov r1, r8 adds r1, #0xc0 strh r2, [r1] - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r4, [r5] adds r5, r4, #0 @@ -50499,7 +50499,7 @@ _0802B388: lsls r3, r3, #3 adds r4, r4, r3 ldrh r0, [r4] - bl sub_C74 + bl sub_0C74 mov r4, sl ldr r5, [r4] adds r1, r5, r7 @@ -50525,7 +50525,7 @@ _0802B388: lsls r3, r3, #3 adds r5, r5, r3 ldrh r0, [r5] - bl sub_C24 + bl sub_0C24 mov r4, sl ldr r1, [r4] adds r2, r1, r7 @@ -56198,7 +56198,7 @@ _0802E180: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 adds r1, r0, #0 mov r6, sb ldr r5, [r6] @@ -56218,7 +56218,7 @@ _0802E180: adds r5, r5, r1 strh r0, [r5] adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 mov r2, sb ldr r4, [r2] lsls r0, r0, #0x10 @@ -57503,7 +57503,7 @@ _0802EC40: lsls r4, r4, #0x1a lsrs r4, r4, #0x10 adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r4, [r6] lsls r1, r1, #0x10 diff --git a/asm/rom_3219C.s b/asm/rom_3219C.s index c7bef7a..c553142 100644 --- a/asm/rom_3219C.s +++ b/asm/rom_3219C.s @@ -4214,7 +4214,7 @@ _08034B8C: bl __divsi3 mov sl, r0 ldrh r0, [r5] - bl sub_C74 + bl sub_0C74 ldr r2, _08034CB0 @ =gUnknown_020314E0 ldr r5, [r2] adds r1, r5, r6 @@ -4242,7 +4242,7 @@ _08034B8C: lsls r4, r4, #3 adds r5, r5, r4 ldrh r0, [r5] - bl sub_C24 + bl sub_0C24 ldr r5, _08034CB0 @ =gUnknown_020314E0 ldr r1, [r5] adds r6, r1, r6 @@ -5653,7 +5653,7 @@ _080357B4: .4byte gUnknown_0200BC58 sub_357B8: @ 0x080357B8 push {r4, r5, lr} bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r2, _08035844 @ =gMain ldrb r1, [r2, #5] ldrb r0, [r2, #4] @@ -6761,7 +6761,7 @@ _080360B8: lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 lsls r1, r0, #1 @@ -6773,7 +6773,7 @@ _080360B8: bl __divsi3 str r0, [sp] adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -7045,7 +7045,7 @@ _0803631C: lsls r0, r0, #0x10 lsrs r7, r0, #0x10 adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 movs r1, #0xfa @@ -7053,7 +7053,7 @@ _0803631C: bl __divsi3 str r0, [sp] adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 lsls r1, r1, #0x10 asrs r1, r1, #0x10 @@ -15197,7 +15197,7 @@ _0803A546: adds r0, #0x90 str r0, [sp, #0xc] ldrh r0, [r5] - bl sub_C74 + bl sub_0C74 ldr r2, _0803A668 @ =gUnknown_020314E0 ldr r5, [r2] adds r1, r5, r6 @@ -15220,7 +15220,7 @@ _0803A546: lsls r3, r3, #3 adds r5, r5, r3 ldrh r0, [r5] - bl sub_C24 + bl sub_0C24 ldr r4, _0803A668 @ =gUnknown_020314E0 ldr r7, [r4] adds r6, r7, r6 @@ -15383,7 +15383,7 @@ _0803A6B8: adds r0, #0x90 str r0, [sp, #0xc] ldrh r0, [r6] - bl sub_C74 + bl sub_0C74 ldr r2, _0803A7EC @ =gUnknown_020314E0 ldr r5, [r2] mov r3, sb @@ -15404,7 +15404,7 @@ _0803A6B8: str r4, [r6, #0x34] adds r5, r5, r7 ldrh r0, [r5] - bl sub_C24 + bl sub_0C24 ldr r4, _0803A7EC @ =gUnknown_020314E0 ldr r7, [r4] mov r5, sb @@ -15587,14 +15587,14 @@ _0803A8A2: lsls r4, r4, #0x10 lsrs r4, r4, #0x10 adds r0, r4, #0 - bl sub_C74 + bl sub_0C74 lsls r0, r0, #0x10 asrs r0, r0, #0x10 ldr r1, _0803AA38 @ =0x00001388 bl __divsi3 str r0, [sp, #0x18] adds r0, r4, #0 - bl sub_C24 + bl sub_0C24 lsls r0, r0, #0x10 asrs r0, r0, #0xe rsbs r0, r0, #0 @@ -20447,7 +20447,7 @@ _0803D0B6: mov r8, r7 add r0, r8 ldrh r0, [r0] - bl sub_C74 + bl sub_0C74 ldr r4, [r5] movs r1, #0x91 lsls r1, r1, #3 @@ -20462,7 +20462,7 @@ _0803D0B6: strh r1, [r6] add r4, r8 ldrh r0, [r4] - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r4, [r5] ldr r2, _0803D12C @ =0x0000048A @@ -22927,7 +22927,7 @@ _0803E4AA: adds r1, r1, r6 strh r0, [r1] ldrh r0, [r1] - bl sub_C74 + bl sub_0C74 adds r1, r0, #0 ldr r4, [r4] adds r0, r4, r7 @@ -22945,7 +22945,7 @@ _0803E4AA: strh r0, [r5, #0x30] adds r4, r4, r6 ldrh r0, [r4] - bl sub_C24 + bl sub_0C24 ldr r5, _0803E584 @ =gUnknown_020314E0 ldr r1, [r5] adds r1, r1, r7 @@ -24594,7 +24594,7 @@ _0803F2F0: adds r0, #0x80 strh r0, [r1] ldrh r0, [r1] - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r4, [r4] lsls r1, r1, #0x10 @@ -27893,7 +27893,7 @@ _08040DC4: lsls r5, r5, #0x10 lsrs r5, r5, #0x10 adds r0, r5, #0 - bl sub_C74 + bl sub_0C74 ldr r4, [r4] mov r1, sb lsls r1, r1, #2 @@ -27914,7 +27914,7 @@ _08040DC4: adds r4, r4, r7 strh r1, [r4] adds r0, r5, #0 - bl sub_C24 + bl sub_0C24 mov r1, sl ldr r7, [r1] ldr r2, [sp, #0x24] @@ -28269,7 +28269,7 @@ _0804108E: adds r0, #0x20 str r0, [sp, #0x18] ldrh r0, [r5] - bl sub_C74 + bl sub_0C74 ldr r1, _080411E4 @ =gUnknown_020314E0 ldr r5, [r1] ldr r2, _080411E8 @ =0x0000132C @@ -28289,7 +28289,7 @@ _0804108E: str r4, [r6, #0x34] add r5, sl ldrh r0, [r5] - bl sub_C24 + bl sub_0C24 ldr r2, _080411E4 @ =gUnknown_020314E0 ldr r7, [r2] ldr r3, _080411E8 @ =0x0000132C @@ -30287,7 +30287,7 @@ _080420CC: adds r2, r2, r6 strh r0, [r2] adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 mov r1, sb ldr r4, [r1] adds r5, r4, r5 @@ -30304,7 +30304,7 @@ _080420CC: adds r4, r4, r3 strh r1, [r4] adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 mov r5, sb ldr r4, [r5] adds r6, r4, r6 @@ -30373,7 +30373,7 @@ _08042184: adds r2, r2, r6 strh r0, [r2] adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 mov r1, sb ldr r4, [r1] adds r5, r4, r5 @@ -30391,7 +30391,7 @@ _08042184: adds r4, r4, r3 strh r1, [r4] adds r0, r7, #0 - bl sub_C24 + bl sub_0C24 mov r5, sb ldr r4, [r5] adds r6, r4, r6 @@ -36394,7 +36394,7 @@ _080452F0: ldrh r0, [r0] lsls r0, r0, #0x1a lsrs r0, r0, #0x10 - bl sub_C24 + bl sub_0C24 adds r1, r0, #0 ldr r0, _08045380 @ =gUnknown_020314E0 ldr r4, [r0] @@ -40237,7 +40237,7 @@ _08047382: ldrsh r0, [r0, r2] movs r2, #3 movs r3, #1 - bl sub_6CC + bl sub_06CC ldr r0, [r5] adds r0, r0, r4 ldr r0, [r0] @@ -40246,11 +40246,11 @@ _08047382: adds r1, r6, #0 movs r2, #3 movs r3, #1 - bl sub_6CC + bl sub_06CC mov r0, sb movs r1, #0x1a movs r2, #9 - bl sub_678 + bl sub_0678 ldr r0, [r5] adds r0, #0x68 movs r2, #0 @@ -40258,15 +40258,15 @@ _08047382: adds r1, r7, #0 movs r2, #3 movs r3, #1 - bl sub_6CC + bl sub_06CC mov r0, r8 movs r1, #0x1a movs r2, #0x12 - bl sub_678 + bl sub_0678 mov r0, sp movs r1, #0x1a movs r2, #0 - bl sub_678 + bl sub_0678 ldr r4, _0804745C @ =gMain ldrh r1, [r4, #0x1c] movs r0, #2 @@ -40282,7 +40282,7 @@ _08047382: ldrb r1, [r4, #0x10] adds r1, #0x1a movs r2, #0 - bl sub_678 + bl sub_0678 _08047408: ldrh r1, [r4, #0x18] movs r0, #0x40 @@ -40347,7 +40347,7 @@ _08047482: ldrb r1, [r1, #0x10] adds r1, #0x1a movs r2, #0 - bl sub_678 + bl sub_0678 _08047490: ldr r4, _080474E4 @ =gUnknown_03005C00 ldr r5, _080474E0 @ =gMain @@ -40456,7 +40456,7 @@ _08047558: movs r6, #0 _08047562: adds r0, r7, #0 - bl sub_C74 + bl sub_0C74 ldr r4, _08047648 @ =gUnknown_02031500 lsls r2, r6, #1 adds r4, r2, r4 @@ -41117,7 +41117,7 @@ _08047A9A: subs r0, r2, r0 lsls r0, r0, #0x1a lsrs r0, r0, #0x10 - bl sub_C24 + bl sub_0C24 ldr r1, _08047AF0 @ =gUnknown_020314E0 ldr r5, [r1] movs r3, #0x82 @@ -45888,8 +45888,8 @@ _0804A1B8: asrs r0, r0, #0x10 cmp r0, #0xcc ble _0804A1A6 - bl sub_CBC - bl sub_24C + bl sub_0CBC + bl sub_024C ldr r4, _0804A244 @ =gUnknown_020314E0 ldr r0, [r4] movs r1, #0x88 @@ -47881,9 +47881,9 @@ sub_4B20C: @ 0x0804B20C adds r1, #0x36 movs r0, #0 strb r0, [r1] - bl sub_2B4 + bl sub_02B4 bl m4aMPlayAllStop - bl sub_D10 + bl sub_0D10 ldr r0, _0804B254 @ =gUnknown_020314E0 ldr r1, [r0] ldr r0, [r1, #0x44] diff --git a/data/rom.s b/data/rom.s index 710bff9..493f8fe 100644 --- a/data/rom.s +++ b/data/rom.s @@ -729,16 +729,16 @@ gUnknown_08079870:: @ 0x08079870 gTitlescreenStateFuncs:: @ 0x08079890 .4byte LoadTitlescreenGraphics .4byte TitleScreen1_WaitForStartButton - .4byte TitleScreen2_Unknown - .4byte TitleScreen3_Unknown + .4byte TitleScreen2_8010CF0 + .4byte TitleScreen3_8010E00 .4byte TitleScreen4_MenuInputNoSavedGame .4byte TitleScreen5_MenuInputSavedGame .4byte TitleScreen6_AnimCloseMenu - .4byte TitleScreen7_Unknown - .4byte TitleScreen8_Unknown - .4byte TitleScreen9_Unknown + .4byte TitleScreen7_8011020 + .4byte TitleScreen8_8011228 + .4byte TitleScreen9_8010D84 .4byte TitleScreen10_ExecMenuSelection - .4byte TitleScreen11_Unknown + .4byte TitleScreen11_80114B4 gUnknown_080798C0:: @ 0x080798C0 .incbin "baserom.gba", 0x798C0, 0x800 @@ -2032,7 +2032,7 @@ gMainFuncs:: @ 0x086A4AD8 .4byte IdlePinballGameMain .4byte OptionsMain .4byte PokedexMain - .4byte sub_9BC_Main + .4byte Main_09BC .4byte EReaderMain .4byte HighScoresMain .4byte IdleHighScoresMain diff --git a/include/functions.h b/include/functions.h index b61f57a..6092507 100644 --- a/include/functions.h +++ b/include/functions.h @@ -19,17 +19,16 @@ void sub_1340(void); // src/main.c void AgbMain(void); -void sub_9BC_Main(void); +void Main_09BC(void); void VBlankIntr(void); void VCountIntr(void); void SerialIntr(void); void Timer3Intr(void); void IntrDummy(void); u32 Random(void); -s16 sub_C24(u16 arg0); -s16 sub_C24(u16 arg0); -s16 sub_C74(u16 arg0); -void sub_D10(void); +s16 sub_0C24(u16 arg0); +s16 sub_0C74(u16 arg0); +void sub_0D10(void); void MainLoopIter(void); void DefaultMainCallback(void); @@ -54,28 +53,28 @@ void TitlescreenMain(void); void LoadTitlescreenGraphics(void); void sub_10AC0(void); void TitleScreen1_WaitForStartButton(void); -void TitleScreen2_Unknown(void); -void TitleScreen9_Unknown(void); -void TitleScreen3_Unknown(void); +void TitleScreen2_8010CF0(void); +void TitleScreen9_8010D84(void); +void TitleScreen3_8010E00(void); void TitleScreen4_MenuInputNoSavedGame(void); -void TitleScreen7_Unknown(void); +void TitleScreen7_8011020(void); void TitleScreen5_MenuInputSavedGame(void); -void TitleScreen8_Unknown(void); +void TitleScreen8_8011228(void); void TitleScreen6_AnimCloseMenu(void); void TitleScreen10_ExecMenuSelection(void); -void TitleScreen11_Unknown(void); +void TitleScreen11_80114B4(void); // src/util.c void SetMainGameState(u16 mainState); -void sub_24C(void); -void sub_2B4(void); +void sub_024C(void); +void sub_02B4(void); s16 LoadSpriteSets(const struct SpriteSet *const *spriteSets, u16 numSpriteSets, struct SpriteGroup *spriteGroups); void ResetSomeGraphicsRelatedStuff(void); void ClearGraphicsMemory(void); -void sub_518(void); +void sub_0518(void); void ClearSprites(void); -void sub_678(u8 *arg0, s16 arg1, s16 arg2); +void sub_0678(u8 *arg0, s16 arg1, s16 arg2); void SetMatrixScale(s16 xScale, s16 yScale, s16 matrixNum); // asm/bonus_field_select.s diff --git a/include/main.h b/include/main.h index b8c3d3d..5765160 100644 --- a/include/main.h +++ b/include/main.h @@ -109,18 +109,18 @@ extern void (*gUnknown_02017BD4)(void); extern StateFunc gMainFuncs[]; extern struct OamData gOamBuffer[128]; -void sub_24C(void); -void sub_2B4(void); +void sub_024C(void); +void sub_02B4(void); void ClearGraphicsMemory(void); -void sub_518(void); +void sub_0518(void); void ClearSprites(void); u32 Random(void); void VBlankIntr(void); void VCountIntr(void); void SerialIntr(void); void Timer3Intr(void); -void sub_CBC(void); -void sub_D10(void); +void sub_0CBC(void); +void sub_0D10(void); void MainLoopIter(void); void DefaultMainCallback(void); diff --git a/src/bonus_field_select.c b/src/bonus_field_select.c index 1485f28..1c78c5b 100644 --- a/src/bonus_field_select.c +++ b/src/bonus_field_select.c @@ -58,7 +58,7 @@ void sub_25C4(void) DmaCopy16(3, gFieldSelectSpritePals, (void *)(PLTT + 0x200), 0x60); DmaCopy16(3, gFieldSelectSpriteGfx, (void *)(VRAM + 0x10000), 0x4020); - sub_CBC(); + sub_0CBC(); sub_2710(); sub_FD5C(sub_29C8); m4aSongNumStart(0x3); @@ -183,7 +183,7 @@ void sub_2990(void) { sub_FE04(sub_29C8); m4aMPlayAllStop(); - sub_D10(); + sub_0D10(); gAutoDisplayTitlescreenMenu = 1; SetMainGameState(gUnknown_0202BEE4); } diff --git a/src/field_select.c b/src/field_select.c index f1c9c61..df71ea4 100644 --- a/src/field_select.c +++ b/src/field_select.c @@ -61,7 +61,7 @@ void LoadFieldSelectGraphics(void) DmaCopy16(3, gFieldSelectSpritePals, (void *)(PLTT + 0x200), 0x200); DmaCopy16(3, gFieldSelectSpriteGfx, (void *)(VRAM + 0x10000), 0x4020); - sub_CBC(); + sub_0CBC(); sub_8C38(); sub_FD5C(sub_8F94); gMain.subState++; @@ -280,7 +280,7 @@ void sub_8F64(void) { sub_FE04(sub_8F94); m4aMPlayAllStop(); - sub_D10(); + sub_0D10(); gAutoDisplayTitlescreenMenu = TRUE; SetMainGameState(gFieldSelectData.nextMainState); } diff --git a/src/main.c b/src/main.c index e17a511..e58bfc1 100644 --- a/src/main.c +++ b/src/main.c @@ -4,7 +4,7 @@ #include "m4a.h" static void InitGame(void); -static void sub_B8C(void); +static void sub_0B8C(void); static void InitIntrHandlers(void); static void ReadKeys(void); @@ -24,13 +24,13 @@ void AgbMain(void) } } -void sub_9BC_Main(void) +void Main_09BC(void) { switch (gMain.subState) { case 0: - sub_CBC(); - sub_24C(); + sub_0CBC(); + sub_024C(); gMain.subState++; break; case 1: @@ -38,8 +38,8 @@ void sub_9BC_Main(void) gMain.subState = 2; break; default: - sub_2B4(); - sub_D10(); + sub_02B4(); + sub_0D10(); SetMainGameState(STATE_TITLE); break; } @@ -136,13 +136,13 @@ static void InitGame(void) | WAITCNT_SRAM_2; REG_IE = INTR_FLAG_GAMEPAK; REG_IME = INTR_FLAG_VBLANK; - sub_B8C(); + sub_0B8C(); m4aSoundInit(); m4aSoundVSyncOff(); SaveFile_LoadGameData(); } -static void sub_B8C(void) +static void sub_0B8C(void) { gMain.mainState = STATE_INTRO; gMain.subState = 0; @@ -182,7 +182,7 @@ u32 Random(void) } #ifdef NONMATCHING -s16 sub_C24(u16 arg0) +s16 sub_0C24(u16 arg0) { u16 index = arg0 / 4; s16 var0 = 1; @@ -199,7 +199,7 @@ s16 sub_C24(u16 arg0) } #else NAKED -s16 sub_C24(u16 arg0) +s16 sub_0C24(u16 arg0) { asm_unified("\n\ lsls r0, r0, #0x10\n\ @@ -243,9 +243,9 @@ _08000C70: .4byte 0x08055C44"); } #endif // NONMATCHING -s16 sub_C74(u16 arg0) +s16 sub_0C74(u16 arg0) { - return sub_C24(arg0 + 0x4000); + return sub_0C24(arg0 + 0x4000); } static void ReadKeys(void) @@ -256,7 +256,7 @@ static void ReadKeys(void) gMain.heldKeys = keyInput; } -void sub_CBC(void) +void sub_0CBC(void) { if (!(REG_IE & INTR_FLAG_VBLANK)) { @@ -282,7 +282,7 @@ void sub_CBC(void) } } -void sub_D10(void) +void sub_0D10(void) { REG_DISPSTAT &= ~DISPSTAT_VBLANK_INTR; REG_DISPSTAT &= ~DISPSTAT_VCOUNT_INTR; diff --git a/src/options.c b/src/options.c index 43ed66c..5cbea2e 100644 --- a/src/options.c +++ b/src/options.c @@ -81,8 +81,8 @@ void sub_51240(void) sub_513B8(); sub_51C9C(); m4aMPlayAllStop(); - sub_CBC(); - sub_24C(); + sub_0CBC(); + sub_024C(); sub_10C0(); gMain.subState++; @@ -485,9 +485,9 @@ void sub_51C60(void) { gMain_saveData.unk141 = gOptionsData.unk2A; SaveFile_WriteToSram(); - sub_2B4(); + sub_02B4(); m4aMPlayAllStop(); - sub_D10(); + sub_0D10(); gAutoDisplayTitlescreenMenu = 1; SetMainGameState(STATE_TITLE); } diff --git a/src/rom_1068C.c b/src/rom_1068C.c index 297f982..ca4ea1e 100644 --- a/src/rom_1068C.c +++ b/src/rom_1068C.c @@ -95,7 +95,7 @@ void sub_10860(void (*func)(void)) } #ifdef NONMATCHING -// Like sub_C24, it matches except for that damn 'push {lr}/pop {lr}' +// Like sub_0C24, it matches except for that damn 'push {lr}/pop {lr}' void ClearSomeArray(void) { int i; diff --git a/src/rom_528AC.c b/src/rom_528AC.c index 7abf1d9..f1274f7 100644 --- a/src/rom_528AC.c +++ b/src/rom_528AC.c @@ -9,7 +9,7 @@ static void sub_52940(u16, s8, s8, u8, int); static u16 LoadSaveDataFromSram(void); #ifdef NONMATCHING -// Like sub_C24, it matches except for that damn 'push {lr}/pop {lr}' +// Like sub_0C24, it matches except for that damn 'push {lr}/pop {lr}' int sub_528AC(u16 a) { if (a <= 0xFA) diff --git a/src/titlescreen.c b/src/titlescreen.c index a0b5a6b..5c97407 100644 --- a/src/titlescreen.c +++ b/src/titlescreen.c @@ -66,13 +66,13 @@ void LoadTitlescreenGraphics(void) gTitlescreen.unk9 = 0; gTitlescreen.unkB = autoDisplayMenu; gMain.subState = 3; - sub_CBC(); + sub_0CBC(); sub_FD5C(NULL); } else { gMain.subState = SUBSTATE_WAIT_FOR_START_BUTTON; - sub_CBC(); + sub_0CBC(); sub_FD5C(sub_11640); } @@ -194,7 +194,7 @@ void TitleScreen1_WaitForStartButton(void) sub_11640(); } -void TitleScreen2_Unknown(void) +void TitleScreen2_8010CF0(void) { if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) @@ -225,7 +225,7 @@ void TitleScreen2_Unknown(void) sub_11640(); } -void TitleScreen9_Unknown(void) +void TitleScreen9_8010D84(void) { if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) @@ -241,9 +241,9 @@ void TitleScreen9_Unknown(void) { m4aSongNumStart(0x65); sub_11B74(); - sub_2B4(); + sub_02B4(); m4aMPlayAllStop(); - sub_D10(); + sub_0D10(); gMain.subState = SUBSTATE_LOAD_GRAPHICS; } else if (gMain.newKeys & B_BUTTON) @@ -257,7 +257,7 @@ void TitleScreen9_Unknown(void) sub_11640(); } -void TitleScreen3_Unknown(void) +void TitleScreen3_8010E00(void) { if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) @@ -367,7 +367,7 @@ void TitleScreen4_MenuInputNoSavedGame(void) sub_1175C(); } -void TitleScreen7_Unknown(void) +void TitleScreen7_8011020(void) { if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) @@ -468,7 +468,7 @@ void TitleScreen5_MenuInputSavedGame(void) sub_11968(); } -void TitleScreen8_Unknown(void) +void TitleScreen8_8011228(void) { if ((gMain.heldKeys & (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) == (A_BUTTON | B_BUTTON | SELECT_BUTTON | START_BUTTON)) @@ -581,7 +581,7 @@ void TitleScreen10_ExecMenuSelection(void) sub_FE04(sub_11968); m4aMPlayAllStop(); - sub_D10(); + sub_0D10(); if (gUnknown_086A964C[gTitlescreen.unk6] == 8) gUnknown_0202C588 = 0; @@ -592,11 +592,11 @@ void TitleScreen10_ExecMenuSelection(void) SetMainGameState(gUnknown_086A964C[gTitlescreen.unk6]); } -void TitleScreen11_Unknown(void) +void TitleScreen11_80114B4(void) { sub_FE04(sub_11640); m4aMPlayAllStop(); - sub_D10(); + sub_0D10(); gUnknown_0202C588 = 1; gAutoDisplayTitlescreenMenu = 0; SetMainGameState(gUnknown_086A964C[gTitlescreen.unk6]); diff --git a/src/util.c b/src/util.c index add32ce..cf674f7 100644 --- a/src/util.c +++ b/src/util.c @@ -1,8 +1,8 @@ #include "global.h" #include "main.h" -static u8 *sub_734(u32, u8*, u32); -static int sub_780(int, int); +static u8 *sub_0734(u32, u8*, u32); +static int sub_0780(int, int); void SetMainGameState(u16 mainState) { @@ -10,7 +10,7 @@ void SetMainGameState(u16 mainState) gMain.subState = 0; } -void sub_24C(void) +void sub_024C(void) { u16 i; @@ -31,7 +31,7 @@ void sub_24C(void) REG_BLDCNT = 0; } -void sub_2B4(void) +void sub_02B4(void) { u16 i; @@ -97,7 +97,7 @@ void ResetSomeGraphicsRelatedStuff(void) gMain.unk16 |= DISPCNT_FORCED_BLANK; REG_DISPCNT |= DISPCNT_FORCED_BLANK; ClearGraphicsMemory(); - sub_518(); + sub_0518(); ClearSprites(); gMain.unkF = 0; gMain.unk10 = 0; @@ -134,7 +134,7 @@ void ClearGraphicsMemory(void) REG_BLDALPHA = 0; } -void sub_518(void) +void sub_0518(void) { s16 i; @@ -183,7 +183,7 @@ void ClearSprites(void) } } -void sub_678(u8 *arg0, s16 arg1, s16 arg2) +void sub_0678(u8 *arg0, s16 arg1, s16 arg2) { // Rumble Pak related? s16 var0 = strlen(arg0) - 1; @@ -196,7 +196,7 @@ void sub_678(u8 *arg0, s16 arg1, s16 arg2) } while (var0-- > 0); } -u8 *sub_6CC(int arg0, u8 *arg1, int arg2, s16 arg3) +u8 *sub_06CC(int arg0, u8 *arg1, int arg2, s16 arg3) { if (arg0 < 0) { @@ -211,7 +211,7 @@ u8 *sub_6CC(int arg0, u8 *arg1, int arg2, s16 arg3) break; arg2--; - if (arg0 < sub_780(10, arg2)) + if (arg0 < sub_0780(10, arg2)) { *arg1 = 0x30; arg1++; @@ -224,23 +224,23 @@ u8 *sub_6CC(int arg0, u8 *arg1, int arg2, s16 arg3) if (arg3) { - sub_734(arg0, arg1, 10); + sub_0734(arg0, arg1, 10); } else { - u8 *ptr = sub_734(arg0, arg1, 10); + u8 *ptr = sub_0734(arg0, arg1, 10); *ptr = 0; } return arg1; } -static u8 *sub_734(u32 arg0, u8 *arg1, u32 arg2) +static u8 *sub_0734(u32 arg0, u8 *arg1, u32 arg2) { u8 mod = arg0 % arg2; int div = arg0 / arg2; if (div != 0) - arg1 = sub_734(div, arg1, arg2); + arg1 = sub_0734(div, arg1, arg2); if (mod < 10) *arg1 = mod + 48; @@ -250,7 +250,7 @@ static u8 *sub_734(u32 arg0, u8 *arg1, u32 arg2) return arg1 + 1; } -static int sub_780(int arg0, int arg1) +static int sub_0780(int arg0, int arg1) { int var0; int var1 = arg1; From ad0dee718ebcb685b2224237f4c48364f0cdabc2 Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Fri, 23 Jun 2023 21:57:55 -0500 Subject: [PATCH 03/12] [WIP] Ignore discarded sections --- .github/calcrom/calcrom.pl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index bcd9826..390eb3b 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -23,8 +23,22 @@ my $srcdata = 0; my $data = 0; my @pairs = (); + +my $processlines = 0; + while (my $line = <$file>) { + # Prevent everything before Memory Configuration from being considered, most notably discarded sections + if (rindex($line, 'Memory Configuration', 0) == 0) + { + $processlines = 1; + } + + if (!$processlines) + { + next; + } + if ($line =~ /^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) (\w+)\/(.+)\.o/) { my $section = $1; @@ -55,6 +69,7 @@ { if ($dir eq 'src') { + print "$line"; $srcdata += $size; } elsif ($dir eq 'data') From 5a5316912e8a72b203e1f018be49ec54da92b6e1 Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Fri, 23 Jun 2023 22:35:37 -0500 Subject: [PATCH 04/12] [WIP] Add library code + pretty printing --- .github/calcrom/calcrom.pl | 69 +++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 390eb3b..fccfb4d 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -19,6 +19,7 @@ or die "ERROR: could not open file '$ARGV[0]'.\n"; my $src = 0; +my $lib = 0; my $asm = 0; my $srcdata = 0; my $data = 0; @@ -39,7 +40,7 @@ next; } - if ($line =~ /^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) (\w+)\/(.+)\.o/) + if ($line =~ /^ \.(\w+)\s+0x[0-9a-f]+\s+(0x[0-9a-f]+) ([\w\.]+)\/(.+)\.o/) { my $section = $1; my $size = hex($2); @@ -56,6 +57,10 @@ { $src += $size; } + elsif ($dir eq '..') + { + $lib += $size; + } elsif ($dir eq 'asm') { if (!($basename =~ /(crt0|libagbsyscall|libgcnmultiboot|m4a_1)/)) @@ -180,17 +185,11 @@ or die "ERROR: Cannot convert string to num: '$incbin_bytes_as_string'"; -my $total = $src + $asm; -my $srcPct = sprintf("%.4f", 100 * $src / $total); -my $asmPct = sprintf("%.4f", 100 * $asm / $total); - -# partial_documented is double-counting the unknown_* and sub_* symbols. -$partial_documented = $partial_documented - $undocumented; -my $documented = $total_syms - ($undocumented + $partial_documented); -my $docPct = sprintf("%.4f", 100 * $documented / $total_syms); -my $partialPct = sprintf("%.4f", 100 * $partial_documented / $total_syms); -my $undocPct = sprintf("%.4f", 100 * $undocumented / $total_syms); +my $total = $src + $lib + $asm; +my $srcPct = 100 * $src / $total; +my $libPct = 100 * $lib / $total; +my $asmPct = 100 * $asm / $total; if ($asm == 0) { @@ -198,44 +197,51 @@ } else { - print "$total total bytes of code\n"; - print "$src bytes of code in src ($srcPct%)\n"; - print "$asm bytes of code in asm ($asmPct%)\n"; + printf "%8d total bytes of code\n", $total; + printf "%8d bytes of code in src (%.4f%%)\n", $src, $srcPct; + printf "%8d bytes of code in agbcc libraries (%.4f%%)\n", $lib, $libPct; + printf "%8d bytes of code in asm (%.4f%%)\n", $asm, $asmPct; } print "\n"; - - if ($verbose != 0) { print "BREAKDOWN\n"; foreach my $item (@sorted) { - print " $item->[1] bytes in asm/$item->[0].s\n" + printf " %8d bytes in asm/$item->[0].s\n", $item->[1]; } print "\n"; } +# partial_documented is double-counting the unknown_* and sub_* symbols. +$partial_documented = $partial_documented - $undocumented; + +my $documented = $total_syms - ($undocumented + $partial_documented); +my $docPct = 100 * $documented / $total_syms; +my $partialPct = 100 * $partial_documented / $total_syms; +my $undocPct = 100 * $undocumented / $total_syms; + if ($partial_documented == 0 && $undocumented == 0) { print "Documentation is 100% complete\n" } else { - print "$total_syms total symbols\n"; - print "$documented symbols documented ($docPct%)\n"; - print "$partial_documented symbols partially documented ($partialPct%)\n"; - print "$undocumented symbols undocumented ($undocPct%)\n"; + printf "%5d total symbols\n", $total_syms; + printf "%5d symbols documented (%.4f%%)\n", $documented, $docPct; + printf "%5d symbols partially documented (%.4f%%)\n", $partial_documented, $partialPct; + printf "%5d symbols undocumented (%.4f%%)\n", $undocumented, $undocPct; } - print "\n"; -my $dataTotal = $srcdata + $data; -my $srcDataPct = sprintf("%.4f", 100 * $srcdata / $dataTotal); -my $dataPct = sprintf("%.4f", 100 * $data / $dataTotal); -my $incPct = sprintf("%.4f", 100 * $incbin_bytes / $dataTotal); + + +my $dataTotal = $srcdata + $data; +my $srcDataPct = 100 * $srcdata / $dataTotal; +my $dataPct = 100 * $data / $dataTotal; if ($data == 0) { @@ -243,13 +249,16 @@ } else { - print "$dataTotal total bytes of data\n"; - print "$srcdata bytes of data in src ($srcDataPct%)\n"; - print "$data bytes of data in data ($dataPct%)\n"; + printf "%8d total bytes of data\n", $dataTotal; + printf "%8d bytes of data in src (%.4f%%)\n", $srcdata, $srcDataPct; + printf "%8d bytes of data in data (%.4f%%)\n", $data, $dataPct; } - print "\n"; + + +my $incPct = sprintf("%.4f", 100 * $incbin_bytes / $dataTotal); + if ($incbin_count == 0) { print "All incbins have been eliminated\n" } else { From ba6fc71b53a4b6724b2b6fad195ec60943761069 Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Fri, 23 Jun 2023 23:01:11 -0500 Subject: [PATCH 05/12] Update Makefile --- Makefile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 1af0e83..ad05ac5 100644 --- a/Makefile +++ b/Makefile @@ -140,15 +140,11 @@ include graphics_rules.mk %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ - +# TODO: why does rom_850.c need old_agbcc here but not in nonmatching-18? $(C_BUILDDIR)/rom_850.o: CC1 := tools/agbcc/bin/old_agbcc +# TODO: figure out what compiler and flags gbplayer.c uses $(C_BUILDDIR)/gbplayer.o: CC1 := tools/agbcc/bin/old_agbcc -$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc -$(C_BUILDDIR)/libc.o: CFLAGS := -O2 - -$(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc -$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc $(C_BUILDDIR)/agb_sram.o: CFLAGS := -mthumb-interwork -Wimplicit -Wparentheses -Werror -O1 From eeaabed1a5490e4da776a6ce5716abc75ec7ec3f Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Fri, 23 Jun 2023 23:04:13 -0500 Subject: [PATCH 06/12] Update calcrom.pl --- .github/calcrom/calcrom.pl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index fccfb4d..9fdfb5a 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -230,10 +230,10 @@ } else { - printf "%5d total symbols\n", $total_syms; - printf "%5d symbols documented (%.4f%%)\n", $documented, $docPct; - printf "%5d symbols partially documented (%.4f%%)\n", $partial_documented, $partialPct; - printf "%5d symbols undocumented (%.4f%%)\n", $undocumented, $undocPct; + printf "%8d total symbols\n", $total_syms; + printf "%8d symbols documented (%.4f%%)\n", $documented, $docPct; + printf "%8d symbols partially documented (%.4f%%)\n", $partial_documented, $partialPct; + printf "%8d symbols undocumented (%.4f%%)\n", $undocumented, $undocPct; } print "\n"; From 02ff0d191b792d6cfece049d23657961c0a9515c Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Sat, 24 Jun 2023 10:41:01 -0500 Subject: [PATCH 07/12] Fix incbin calculation --- .github/calcrom/calcrom.pl | 11 +++++------ data/graphics/mon_hatch_sprites_pals.inc | 12 ++++++------ data/rom.s | 16 ++++++++-------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 9fdfb5a..68f7265 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -240,10 +240,12 @@ my $dataTotal = $srcdata + $data; +$data -= $incbin_bytes; my $srcDataPct = 100 * $srcdata / $dataTotal; my $dataPct = 100 * $data / $dataTotal; +my $incPct = 100 * $incbin_bytes / $dataTotal; -if ($data == 0) +if ($data == 0 && $incbin_bytes == 0) { print "Data porting to C is 100% complete\n" } @@ -253,14 +255,11 @@ printf "%8d bytes of data in src (%.4f%%)\n", $srcdata, $srcDataPct; printf "%8d bytes of data in data (%.4f%%)\n", $data, $dataPct; } -print "\n"; - -my $incPct = sprintf("%.4f", 100 * $incbin_bytes / $dataTotal); if ($incbin_count == 0) { - print "All incbins have been eliminated\n" + print "All incbins have been eliminated\n"; } else { - print "$incbin_bytes bytes of data in $incbin_count incbins ($incPct%)\n" + printf "%8d bytes of data in $incbin_count incbins (%.4f%%)\n", $incbin_bytes, $incPct; } diff --git a/data/graphics/mon_hatch_sprites_pals.inc b/data/graphics/mon_hatch_sprites_pals.inc index de1a197..73da680 100644 --- a/data/graphics/mon_hatch_sprites_pals.inc +++ b/data/graphics/mon_hatch_sprites_pals.inc @@ -6,7 +6,7 @@ gMonHatchSpriteGroup0_Pals:: @ 0x1444F4 .incbin "graphics/mon_hatch_sprites/surskit_hatch.gbapal" .incbin "graphics/mon_hatch_sprites/shroomish_hatch.gbapal" - .incbin "baserom.gba", 0x1445B4, 0x1446F4 - 0x1445B4 + .incbin "baserom.gba", 0x1445B4, 0x140 @ 0x1446F4 - 0x1445B4 gMonHatchSpriteGroup1_Pals:: @ 0x1446F4 .incbin "graphics/mon_hatch_sprites/whismur_hatch.gbapal" @@ -16,7 +16,7 @@ gMonHatchSpriteGroup1_Pals:: @ 0x1446F4 .incbin "graphics/mon_hatch_sprites/aron_hatch.gbapal" .incbin "graphics/mon_hatch_sprites/plusle_hatch.gbapal" - .incbin "baserom.gba", 0x1447B4, 0x1448F4 - 0x1447B4 + .incbin "baserom.gba", 0x1447B4, 0x140 @ 0x1448F4 - 0x1447B4 gMonHatchSpriteGroup2_Pals:: @ 0x1448F4 .incbin "graphics/mon_hatch_sprites/minun_hatch.gbapal" @@ -26,7 +26,7 @@ gMonHatchSpriteGroup2_Pals:: @ 0x1448F4 .incbin "graphics/mon_hatch_sprites/sandshrew_hatch.gbapal" .incbin "graphics/mon_hatch_sprites/spinda_hatch.gbapal" - .incbin "baserom.gba", 0x1449B4, 0x144AF4 - 0x1449B4 + .incbin "baserom.gba", 0x1449B4, 0x140 @ 0x144AF4 - 0x1449B4 gMonHatchSpriteGroup3_Pals:: @ 0x144AF4 .incbin "graphics/mon_hatch_sprites/trapinch_hatch.gbapal" @@ -36,7 +36,7 @@ gMonHatchSpriteGroup3_Pals:: @ 0x144AF4 .incbin "graphics/mon_hatch_sprites/pichu_hatch.gbapal" .incbin "graphics/mon_hatch_sprites/wynaut_hatch.gbapal" - .incbin "baserom.gba", 0x144BB4, 0x144CF4 - 0x144BB4 + .incbin "baserom.gba", 0x144BB4, 0x140 @ 0x144CF4 - 0x144BB4 gMonHatchSpriteGroup4_Pals:: @ 0x144CF4 .incbin "graphics/mon_hatch_sprites/natu_hatch.gbapal" @@ -46,11 +46,11 @@ gMonHatchSpriteGroup4_Pals:: @ 0x144CF4 .incbin "graphics/mon_hatch_sprites/corsola_hatch.gbapal" .incbin "graphics/mon_hatch_sprites/chinchou_hatch.gbapal" - .incbin "baserom.gba", 0x144DB4, 0x144EF4 - 0x144DB4 + .incbin "baserom.gba", 0x144DB4, 0x140 @ 0x144EF4 - 0x144DB4 gMonHatchSpriteGroup5_Pals:: @ 0x144EF4 .incbin "graphics/mon_hatch_sprites/horsea_hatch.gbapal" .incbin "graphics/mon_hatch_sprites/bagon_hatch.gbapal" .incbin "graphics/mon_hatch_sprites/pichu_2_hatch.gbapal" - .incbin "baserom.gba", 0x144F54, 0x1450F4 - 0x144F54 + .incbin "baserom.gba", 0x144F54, 0x1A0 @ 0x1450F4 - 0x144F54 diff --git a/data/rom.s b/data/rom.s index 493f8fe..907bc8f 100644 --- a/data/rom.s +++ b/data/rom.s @@ -4,7 +4,7 @@ @ field select palettes 0xA8840 gUnknown_08055A68:: @ 0x08055A68 - .incbin "baserom.gba", 0x55A68, 0x55A84 - 0x55A68 + .incbin "baserom.gba", 0x55A68, 0x1C @ 0x55A84 - 0x55A68 .include "data/mon_locations.inc" @@ -1508,7 +1508,7 @@ gUnknown_083C806C:: @ 0x083C806C .include "data/graphics/mon_hatch_sprites.inc" -.incbin "baserom.gba", 0x3EB84C, 0x3FE44C - 0x3EB84C +.incbin "baserom.gba", 0x3EB84C, 0x12C00 @ 0x3FE44C - 0x3EB84C gUnknown_083FE44C:: @ 0x083FE44C .incbin "baserom.gba", 0x3FE44C, 0xC00 @@ -1689,7 +1689,7 @@ gUnknown_084C4B6C:: @ 0x084C4B6C .include "data/graphics/mon_portraits.inc" -.incbin "baserom.gba", 0x4ECF6C, 0x4ED0CC - 0x4ECF6C +.incbin "baserom.gba", 0x4ECF6C, 0x160 @ 0x4ED0CC - 0x4ECF6C gUnknown_084ED0CC:: @ 0x084ED0CC .incbin "baserom.gba", 0x4ED0CC, 0x600 @@ -1824,7 +1824,7 @@ gGBAButtonIcons_Pals:: @ 0x0852B668 gOptionsSprites_Gfx:: @ 0x0852B868 .incbin "graphics/options/sprites.4bpp" -.incbin "baserom.gba", 0x52D888, 0x52D928 - 0x52D888 +.incbin "baserom.gba", 0x52D888, 0xA0 @ 0x52D928 - 0x52D888 gScaleTable:: @ 0x0852D928 .incbin "baserom.gba", 0x52D928, 0xB4 @@ -2398,7 +2398,7 @@ gUnknown_086A96D4:: @ 0x086A96D4 .2byte 0x0003 .2byte 0x0004 -.incbin "baserom.gba", 0x6A96DE, 0x6A96E4 - 0x6A96DE +.incbin "baserom.gba", 0x6A96DE, 0x6 @ 0x6A96E4 - 0x6A96DE gUnknown_086A96E4:: @ 0x086A96E4 .4byte 0x086A8000 @@ -2468,7 +2468,7 @@ gEReaderAccessButtonSequence:: @ 0x086A97AC .2byte 0xFFFF .align 2, 0 -.incbin "baserom.gba", 0x6A97BC, 0x6ACD50 - 0x6A97BC +.incbin "baserom.gba", 0x6A97BC, 0x3594 @ 0x6ACD50 - 0x6A97BC gUnknown_086ACD50:: @ 0x086ACD50 .incbin "baserom.gba", 0x6ACD50, 0x24 @@ -3196,7 +3196,7 @@ gMonPortraitGroupGfx:: @ 0x086BB738 .4byte gMonPortraitsGroup12_Gfx .4byte gMonPortraitsGroup13_Gfx -.incbin "baserom.gba", 0x6BB770, 0x6BB910 - 0x6BB770 +.incbin "baserom.gba", 0x6BB770, 0x1A0 @ 0x6BB910 - 0x6BB770 gUnknown_086BB910:: @ 0x086BB910 .incbin "baserom.gba", 0x6BB910, 0x58 @@ -3216,6 +3216,6 @@ gUnknown_086BB9EC:: @ 0x086BB9EC gSaveFileSignature:: @ 0x086BBA6C .ascii "POKEPINAGB" - .incbin "baserom.gba", 0x6BBA6C + 0xA, 0x6BBFD0 - 0x6BBA6C + .incbin "baserom.gba", 0x6BBA76, 0x564 @ 0x6BBA6C + 0xA, 0x6BBFD0 - 0x6BBA6C @ rom end 0x6BBFD0 From e3585e63808f052b531d455961997136e454797f Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Sat, 24 Jun 2023 10:42:11 -0500 Subject: [PATCH 08/12] Update calcrom.pl --- .github/calcrom/calcrom.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 68f7265..5a2b189 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -240,6 +240,7 @@ my $dataTotal = $srcdata + $data; +# Bytes in incbins are also in data. For cleaner presentation, separate these out. $data -= $incbin_bytes; my $srcDataPct = 100 * $srcdata / $dataTotal; my $dataPct = 100 * $data / $dataTotal; From 8c13f463eafc9dda3aa2c850ad0e949635bd0de4 Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Sat, 24 Jun 2023 10:47:57 -0500 Subject: [PATCH 09/12] Update calcrom.pl --- .github/calcrom/calcrom.pl | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 5a2b189..1f05163 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -257,8 +257,6 @@ printf "%8d bytes of data in data (%.4f%%)\n", $data, $dataPct; } - - if ($incbin_count == 0) { print "All incbins have been eliminated\n"; } else { From 83da044476ea9ac2c86d71dd455d945ab1cef34a Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Sat, 24 Jun 2023 11:21:45 -0500 Subject: [PATCH 10/12] Update calcrom.pl --- .github/calcrom/calcrom.pl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index 1f05163..36e5ee8 100644 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -115,6 +115,10 @@ my $incbin_cmd = "find \"\$(dirname $elffname)\" \\( -name '*.s' -o -name '*.inc' \\) -exec cat {} ';' | grep -oE '^\\s*\\.incbin\\s*\"[^\"]+\"\s*,\\s*(0x)?[0-9a-fA-F]+\\s*,\\s*(0x)?[0-9a-fA-F]+' -"; +my $nonmatching_cmd = "git grep -E '#if[n]?def NONMATCHING' ':/' ':(exclude).'"; + +my $todo_cmd = "git grep 'TODO' ':/' ':(exclude).'"; + # It sucks that we have to run this three times, but I can't figure out how to get # stdin working for subcommands in perl while still having a timeout. It's decently # fast anyway. @@ -158,6 +162,22 @@ )) or die "ERROR: Error while calculating incbin totals: $?"; +my $nonmatching_as_string; +(run ( + command => "$nonmatching_cmd | $count_cmd", + buffer => \$nonmatching_as_string, + timeout => 60 +)) + or die "ERROR: Error while calculating NONMATCHING totals: $?"; + +my $todo_as_string; +(run ( + command => "$todo_cmd | $count_cmd", + buffer => \$todo_as_string, + timeout => 60 +)) + or die "ERROR: Error while calculating TODO totals: $?"; + # Performing addition on a string converts it to a number. Any string that fails # to convert to a number becomes 0. So if our converted number is 0, but our string # is nonzero, then the conversion was an error. @@ -184,6 +204,14 @@ (($incbin_bytes != 0) and ($incbin_bytes_as_string ne "0")) or die "ERROR: Cannot convert string to num: '$incbin_bytes_as_string'"; +my $nonmatching_count = $nonmatching_as_string + 0; +(($nonmatching_count != 0) and ($nonmatching_as_string ne "0")) + or die "ERROR: Cannot convert string to num: '$nonmatching_as_string'"; + +my $todo_count = $todo_as_string + 0; +(($todo_count != 0) and ($todo_as_string ne "0")) + or die "ERROR: Cannot convert string to num: '$todo_as_string'"; + my $total = $src + $lib + $asm; @@ -262,3 +290,7 @@ } else { printf "%8d bytes of data in $incbin_count incbins (%.4f%%)\n", $incbin_bytes, $incPct; } +print "\n"; + +printf "%8d functions are NONMATCHING\n", $nonmatching_count; +printf "%8d comments are labeled TODO\n", $todo_count; From 578f45910571ff98f6aa9594bc889a2962d13242 Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Sun, 25 Jun 2023 11:54:45 -0500 Subject: [PATCH 11/12] Update calcrom.pl --- .github/calcrom/calcrom.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 .github/calcrom/calcrom.pl diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl old mode 100644 new mode 100755 index 36e5ee8..a228d8f --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -237,7 +237,7 @@ print "BREAKDOWN\n"; foreach my $item (@sorted) { - printf " %8d bytes in asm/$item->[0].s\n", $item->[1]; + printf "%8d bytes in asm/$item->[0].s\n", $item->[1]; } print "\n"; } From acd7599b13a692f45e7e5ebd13634426a698a81a Mon Sep 17 00:00:00 2001 From: WhenGryphonsFly <84215159+WhenGryphonsFly@users.noreply.github.com> Date: Sun, 25 Jun 2023 12:02:31 -0500 Subject: [PATCH 12/12] Update calcrom.pl --- .github/calcrom/calcrom.pl | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/calcrom/calcrom.pl b/.github/calcrom/calcrom.pl index a228d8f..c3193aa 100755 --- a/.github/calcrom/calcrom.pl +++ b/.github/calcrom/calcrom.pl @@ -290,7 +290,10 @@ } else { printf "%8d bytes of data in $incbin_count incbins (%.4f%%)\n", $incbin_bytes, $incPct; } -print "\n"; -printf "%8d functions are NONMATCHING\n", $nonmatching_count; -printf "%8d comments are labeled TODO\n", $todo_count; +if ($verbose != 0) +{ + print "\n"; + printf "%8d functions are NONMATCHING\n", $nonmatching_count; + printf "%8d comments are labeled TODO\n", $todo_count; +}