mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-19 19:38:00 -05:00
commit
0e468b49bb
|
|
@ -1,7 +1,17 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
use IPC::Cmd qw[ run ];
|
||||
# Usage:
|
||||
# calcrom.pl <mapfile> [--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 $verbose = "";
|
||||
|
||||
GetOptions("verbose" => \$verbose);
|
||||
(@ARGV == 1)
|
||||
or die "ERROR: no map file specified.\n";
|
||||
open(my $file, $ARGV[0])
|
||||
|
|
@ -11,13 +21,15 @@ 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/)
|
||||
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);
|
||||
|
|
@ -31,6 +43,10 @@ while (my $line = <$file>)
|
|||
}
|
||||
elsif ($dir eq 'asm')
|
||||
{
|
||||
if (!($basename =~ /(crt0|libagbsyscall|libgcnmultiboot|m4a_1)/))
|
||||
{
|
||||
push @pairs, [$basename, $size];
|
||||
}
|
||||
$asm += $size;
|
||||
}
|
||||
}
|
||||
|
|
@ -48,6 +64,8 @@ while (my $line = <$file>)
|
|||
}
|
||||
}
|
||||
|
||||
my @sorted = sort { $a->[1] <=> $b->[1] } @pairs;
|
||||
|
||||
# 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
|
||||
|
|
@ -131,6 +149,17 @@ 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";
|
||||
}
|
||||
|
||||
print "$total_syms total symbols\n";
|
||||
print "$documented symbols documented ($docPct%)\n";
|
||||
print "$partial_documented symbols partially documented ($partialPct%)\n";
|
||||
|
|
|
|||
|
|
@ -1,580 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_814B6F0
|
||||
sub_814B6F0: @ 814B6F0
|
||||
ldr r0, _0814B6F8 @ =gUnknown_203F3DC
|
||||
ldr r0, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0814B6F8: .4byte gUnknown_203F3DC
|
||||
thumb_func_end sub_814B6F0
|
||||
|
||||
thumb_func_start sub_814B6FC
|
||||
sub_814B6FC: @ 814B6FC
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r5, _0814B70C @ =gUnknown_203F3DC
|
||||
ldr r0, [r5]
|
||||
cmp r0, 0
|
||||
bne _0814B710
|
||||
movs r0, 0x2
|
||||
b _0814B740
|
||||
.align 2, 0
|
||||
_0814B70C: .4byte gUnknown_203F3DC
|
||||
_0814B710:
|
||||
cmp r4, 0
|
||||
bne _0814B716
|
||||
ldr r4, [r0]
|
||||
_0814B716:
|
||||
ldrb r0, [r0, 0xA]
|
||||
bl DestroyTask
|
||||
ldr r0, [r5]
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r5]
|
||||
adds r0, r4, 0
|
||||
bl SetMainCallback2
|
||||
ldr r0, _0814B748 @ =CB2_ReturnToField
|
||||
cmp r4, r0
|
||||
bne _0814B73E
|
||||
ldr r0, _0814B74C @ =0x0000012f
|
||||
bl PlayNewMapMusic
|
||||
ldr r0, _0814B750 @ =sub_8056534
|
||||
bl SetMainCallback1
|
||||
_0814B73E:
|
||||
movs r0, 0
|
||||
_0814B740:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0814B748: .4byte CB2_ReturnToField
|
||||
_0814B74C: .4byte 0x0000012f
|
||||
_0814B750: .4byte sub_8056534
|
||||
thumb_func_end sub_814B6FC
|
||||
|
||||
thumb_func_start StartBerryCrush
|
||||
StartBerryCrush: @ 814B754
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0xC
|
||||
adds r4, r0, 0
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
ldr r0, _0814B784 @ =gReceivedRemoteLinkPlayers
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0814B772
|
||||
ldr r0, _0814B788 @ =gWirelessCommType
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0814B790
|
||||
_0814B772:
|
||||
adds r0, r4, 0
|
||||
bl SetMainCallback2
|
||||
ldr r0, _0814B78C @ =Rfu
|
||||
mov r1, r8
|
||||
strh r1, [r0, 0x10]
|
||||
strh r1, [r0, 0x12]
|
||||
b _0814B7DC
|
||||
.align 2, 0
|
||||
_0814B784: .4byte gReceivedRemoteLinkPlayers
|
||||
_0814B788: .4byte gWirelessCommType
|
||||
_0814B78C: .4byte Rfu
|
||||
_0814B790:
|
||||
bl GetLinkPlayerCount
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
bl GetMultiplayerId
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
mov r0, r8
|
||||
cmp r0, 0x1
|
||||
bls _0814B7AC
|
||||
cmp r7, r8
|
||||
bcc _0814B7C0
|
||||
_0814B7AC:
|
||||
adds r0, r4, 0
|
||||
bl SetMainCallback2
|
||||
ldr r0, _0814B7BC @ =Rfu
|
||||
movs r1, 0
|
||||
strh r1, [r0, 0x10]
|
||||
strh r1, [r0, 0x12]
|
||||
b _0814B7DC
|
||||
.align 2, 0
|
||||
_0814B7BC: .4byte Rfu
|
||||
_0814B7C0:
|
||||
ldr r6, _0814B7E8 @ =gUnknown_203F3DC
|
||||
ldr r0, _0814B7EC @ =0x000041c0
|
||||
bl AllocZeroed
|
||||
adds r5, r0, 0
|
||||
str r5, [r6]
|
||||
cmp r5, 0
|
||||
bne _0814B7F4
|
||||
adds r0, r4, 0
|
||||
bl SetMainCallback2
|
||||
ldr r0, _0814B7F0 @ =Rfu
|
||||
strh r5, [r0, 0x10]
|
||||
strh r5, [r0, 0x12]
|
||||
_0814B7DC:
|
||||
adds r0, 0xEE
|
||||
ldrb r1, [r0]
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
b _0814B84C
|
||||
.align 2, 0
|
||||
_0814B7E8: .4byte gUnknown_203F3DC
|
||||
_0814B7EC: .4byte 0x000041c0
|
||||
_0814B7F0: .4byte Rfu
|
||||
_0814B7F4:
|
||||
str r4, [r5]
|
||||
movs r4, 0
|
||||
strb r7, [r5, 0x8]
|
||||
ldr r0, [r6]
|
||||
mov r1, r8
|
||||
strb r1, [r0, 0x9]
|
||||
ldr r0, [r6]
|
||||
bl sub_814BABC
|
||||
ldr r1, [r6]
|
||||
movs r2, 0x1
|
||||
movs r0, 0x1
|
||||
strh r0, [r1, 0x12]
|
||||
strb r2, [r1, 0xE]
|
||||
ldr r1, [r6]
|
||||
movs r0, 0x6
|
||||
strb r0, [r1, 0xF]
|
||||
ldr r0, [r6]
|
||||
adds r0, 0x36
|
||||
movs r2, 0x1
|
||||
negs r2, r2
|
||||
movs r1, 0x10
|
||||
str r1, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
str r4, [sp, 0x8]
|
||||
movs r1, 0x1
|
||||
movs r3, 0
|
||||
bl sub_814D564
|
||||
ldr r2, [r6]
|
||||
adds r2, 0x36
|
||||
movs r0, 0x4
|
||||
movs r1, 0x1
|
||||
bl sub_814BB4C
|
||||
ldr r0, _0814B858 @ =sub_814BA80
|
||||
bl SetMainCallback2
|
||||
ldr r0, _0814B85C @ =sub_814BA98
|
||||
movs r1, 0x8
|
||||
bl CreateTask
|
||||
ldr r1, [r6]
|
||||
strb r0, [r1, 0xA]
|
||||
_0814B84C:
|
||||
add sp, 0xC
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0814B858: .4byte sub_814BA80
|
||||
_0814B85C: .4byte sub_814BA98
|
||||
thumb_func_end StartBerryCrush
|
||||
|
||||
thumb_func_start sub_814B860
|
||||
sub_814B860: @ 814B860
|
||||
push {r4,lr}
|
||||
sub sp, 0xC
|
||||
ldr r1, _0814B878 @ =gSpecialVar_ItemId
|
||||
ldrh r0, [r1]
|
||||
subs r0, 0x85
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x2B
|
||||
bls _0814B87C
|
||||
movs r0, 0x85
|
||||
strh r0, [r1]
|
||||
b _0814B884
|
||||
.align 2, 0
|
||||
_0814B878: .4byte gSpecialVar_ItemId
|
||||
_0814B87C:
|
||||
ldrh r0, [r1]
|
||||
movs r1, 0x1
|
||||
bl RemoveBagItem
|
||||
_0814B884:
|
||||
ldr r4, _0814B8E0 @ =gUnknown_203F3DC
|
||||
ldr r2, [r4]
|
||||
ldrb r0, [r2, 0x8]
|
||||
lsls r0, 5
|
||||
adds r0, r2, r0
|
||||
ldr r1, _0814B8E4 @ =gSpecialVar_ItemId
|
||||
ldrh r1, [r1]
|
||||
subs r1, 0x85
|
||||
adds r0, 0xA4
|
||||
movs r3, 0
|
||||
strh r1, [r0]
|
||||
movs r0, 0x1
|
||||
strb r0, [r2, 0xE]
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x9
|
||||
strb r0, [r1, 0xF]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x36
|
||||
movs r2, 0x1
|
||||
negs r2, r2
|
||||
movs r1, 0x10
|
||||
str r1, [sp]
|
||||
str r3, [sp, 0x4]
|
||||
str r3, [sp, 0x8]
|
||||
movs r1, 0
|
||||
bl sub_814D564
|
||||
ldr r2, [r4]
|
||||
adds r2, 0x36
|
||||
movs r0, 0x4
|
||||
movs r1, 0x1
|
||||
bl sub_814BB4C
|
||||
ldr r0, _0814B8E8 @ =sub_814BA98
|
||||
movs r1, 0x8
|
||||
bl CreateTask
|
||||
ldr r1, [r4]
|
||||
strb r0, [r1, 0xA]
|
||||
ldr r0, _0814B8EC @ =sub_814BA80
|
||||
bl SetMainCallback2
|
||||
add sp, 0xC
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0814B8E0: .4byte gUnknown_203F3DC
|
||||
_0814B8E4: .4byte gSpecialVar_ItemId
|
||||
_0814B8E8: .4byte sub_814BA98
|
||||
_0814B8EC: .4byte sub_814BA80
|
||||
thumb_func_end sub_814B860
|
||||
|
||||
thumb_func_start sub_814B8F0
|
||||
sub_814B8F0: @ 814B8F0
|
||||
push {lr}
|
||||
ldr r0, _0814B90C @ =gUnknown_203F3DC
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0xA]
|
||||
bl DestroyTask
|
||||
ldr r1, _0814B910 @ =sub_814B860
|
||||
movs r0, 0x5
|
||||
movs r2, 0
|
||||
bl InitBerryPouch
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0814B90C: .4byte gUnknown_203F3DC
|
||||
_0814B910: .4byte sub_814B860
|
||||
thumb_func_end sub_814B8F0
|
||||
|
||||
thumb_func_start sub_814B914
|
||||
sub_814B914: @ 814B914
|
||||
push {lr}
|
||||
ldr r0, _0814B920 @ =sub_814BA6C
|
||||
bl SetVBlankCallback
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0814B920: .4byte sub_814BA6C
|
||||
thumb_func_end sub_814B914
|
||||
|
||||
thumb_func_start sub_814B924
|
||||
sub_814B924: @ 814B924
|
||||
push {lr}
|
||||
movs r0, 0
|
||||
bl SetVBlankCallback
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_814B924
|
||||
|
||||
thumb_func_start sub_814B930
|
||||
sub_814B930: @ 814B930
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0814B974 @ =gUnknown_203F3DC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x6C
|
||||
ldrh r2, [r0]
|
||||
lsls r2, 8
|
||||
movs r1, 0xF0
|
||||
lsls r1, 6
|
||||
adds r0, r2, 0
|
||||
bl sub_80D8B68
|
||||
adds r2, r0, 0
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x72
|
||||
ldrh r3, [r0]
|
||||
lsls r3, 8
|
||||
adds r0, r3, 0
|
||||
adds r1, r2, 0
|
||||
bl sub_80D8B68
|
||||
adds r3, r0, 0
|
||||
ldr r0, _0814B978 @ =0x0000ffff
|
||||
ands r3, r0
|
||||
ldr r2, [r4]
|
||||
strh r3, [r2, 0x16]
|
||||
ldrb r0, [r2, 0x9]
|
||||
cmp r0, 0x3
|
||||
beq _0814B9B4
|
||||
cmp r0, 0x3
|
||||
bgt _0814B97C
|
||||
cmp r0, 0x2
|
||||
beq _0814B986
|
||||
b _0814BA3C
|
||||
.align 2, 0
|
||||
_0814B974: .4byte gUnknown_203F3DC
|
||||
_0814B978: .4byte 0x0000ffff
|
||||
_0814B97C:
|
||||
cmp r0, 0x4
|
||||
beq _0814B9E4
|
||||
cmp r0, 0x5
|
||||
beq _0814BA14
|
||||
b _0814BA3C
|
||||
_0814B986:
|
||||
ldr r5, _0814B9B0 @ =gSaveBlock2Ptr
|
||||
ldr r1, [r5]
|
||||
movs r0, 0xAF
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
lsls r0, r3, 16
|
||||
lsrs r0, 16
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
bls _0814BA3C
|
||||
adds r2, 0x25
|
||||
ldrb r0, [r2]
|
||||
movs r1, 0x2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r4]
|
||||
ldrh r1, [r1, 0x16]
|
||||
movs r2, 0xAF
|
||||
lsls r2, 4
|
||||
b _0814BA38
|
||||
.align 2, 0
|
||||
_0814B9B0: .4byte gSaveBlock2Ptr
|
||||
_0814B9B4:
|
||||
ldr r5, _0814B9DC @ =gSaveBlock2Ptr
|
||||
ldr r1, [r5]
|
||||
ldr r0, _0814B9E0 @ =0x00000af2
|
||||
adds r1, r0
|
||||
lsls r0, r3, 16
|
||||
lsrs r0, 16
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
bls _0814BA3C
|
||||
adds r2, 0x25
|
||||
ldrb r0, [r2]
|
||||
movs r1, 0x2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r4]
|
||||
ldrh r1, [r1, 0x16]
|
||||
ldr r2, _0814B9E0 @ =0x00000af2
|
||||
b _0814BA38
|
||||
.align 2, 0
|
||||
_0814B9DC: .4byte gSaveBlock2Ptr
|
||||
_0814B9E0: .4byte 0x00000af2
|
||||
_0814B9E4:
|
||||
ldr r5, _0814BA0C @ =gSaveBlock2Ptr
|
||||
ldr r1, [r5]
|
||||
ldr r0, _0814BA10 @ =0x00000af4
|
||||
adds r1, r0
|
||||
lsls r0, r3, 16
|
||||
lsrs r0, 16
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
bls _0814BA3C
|
||||
adds r2, 0x25
|
||||
ldrb r0, [r2]
|
||||
movs r1, 0x2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r4]
|
||||
ldrh r1, [r1, 0x16]
|
||||
ldr r2, _0814BA10 @ =0x00000af4
|
||||
b _0814BA38
|
||||
.align 2, 0
|
||||
_0814BA0C: .4byte gSaveBlock2Ptr
|
||||
_0814BA10: .4byte 0x00000af4
|
||||
_0814BA14:
|
||||
ldr r5, _0814BA60 @ =gSaveBlock2Ptr
|
||||
ldr r1, [r5]
|
||||
ldr r0, _0814BA64 @ =0x00000af6
|
||||
adds r1, r0
|
||||
lsls r0, r3, 16
|
||||
lsrs r0, 16
|
||||
ldrh r1, [r1]
|
||||
cmp r0, r1
|
||||
bls _0814BA3C
|
||||
adds r2, 0x25
|
||||
ldrb r0, [r2]
|
||||
movs r1, 0x2
|
||||
orrs r0, r1
|
||||
strb r0, [r2]
|
||||
ldr r0, [r5]
|
||||
ldr r1, [r4]
|
||||
ldrh r1, [r1, 0x16]
|
||||
ldr r2, _0814BA64 @ =0x00000af6
|
||||
_0814BA38:
|
||||
adds r0, r2
|
||||
strh r1, [r0]
|
||||
_0814BA3C:
|
||||
ldr r4, _0814BA68 @ =gUnknown_203F3DC
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x68]
|
||||
str r0, [r1, 0x1C]
|
||||
bl GiveBerryPowder
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0814BA5A
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x25
|
||||
ldrb r1, [r0]
|
||||
movs r2, 0x1
|
||||
orrs r1, r2
|
||||
strb r1, [r0]
|
||||
_0814BA5A:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0814BA60: .4byte gSaveBlock2Ptr
|
||||
_0814BA64: .4byte 0x00000af6
|
||||
_0814BA68: .4byte gUnknown_203F3DC
|
||||
thumb_func_end sub_814B930
|
||||
|
||||
thumb_func_start sub_814BA6C
|
||||
sub_814BA6C: @ 814BA6C
|
||||
push {lr}
|
||||
bl TransferPlttBuffer
|
||||
bl LoadOam
|
||||
bl ProcessSpriteCopyRequests
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_814BA6C
|
||||
|
||||
thumb_func_start sub_814BA80
|
||||
sub_814BA80: @ 814BA80
|
||||
push {lr}
|
||||
bl RunTasks
|
||||
bl RunTextPrinters
|
||||
bl AnimateSprites
|
||||
bl BuildOamBuffer
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_814BA80
|
||||
|
||||
thumb_func_start sub_814BA98
|
||||
sub_814BA98: @ 814BA98
|
||||
push {r4,lr}
|
||||
ldr r4, _0814BAB8 @ =gUnknown_203F3DC
|
||||
ldr r0, [r4]
|
||||
ldr r2, [r0, 0x4]
|
||||
cmp r2, 0
|
||||
beq _0814BAAC
|
||||
adds r1, r0, 0
|
||||
adds r1, 0x36
|
||||
bl _call_via_r2
|
||||
_0814BAAC:
|
||||
ldr r0, [r4]
|
||||
bl sub_814D9CC
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0814BAB8: .4byte gUnknown_203F3DC
|
||||
thumb_func_end sub_814BA98
|
||||
|
||||
thumb_func_start sub_814BABC
|
||||
sub_814BABC: @ 814BABC
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
movs r5, 0
|
||||
b _0814BAE8
|
||||
_0814BAC4:
|
||||
lsls r4, r5, 5
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x98
|
||||
adds r0, r6, r0
|
||||
lsls r1, r5, 3
|
||||
subs r1, r5
|
||||
lsls r1, 2
|
||||
ldr r2, _0814BB2C @ =gLinkPlayers + 8
|
||||
adds r1, r2
|
||||
bl StringCopy
|
||||
adds r4, r6, r4
|
||||
adds r4, 0x9F
|
||||
movs r0, 0xFF
|
||||
strb r0, [r4]
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
_0814BAE8:
|
||||
ldrb r0, [r6, 0x9]
|
||||
cmp r5, r0
|
||||
bcc _0814BAC4
|
||||
cmp r5, 0x4
|
||||
bhi _0814BB14
|
||||
_0814BAF2:
|
||||
lsls r4, r5, 5
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x98
|
||||
adds r0, r6, r0
|
||||
movs r1, 0x1
|
||||
movs r2, 0x7
|
||||
bl memset
|
||||
adds r4, r6, r4
|
||||
adds r4, 0x9F
|
||||
movs r0, 0xFF
|
||||
strb r0, [r4]
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x4
|
||||
bls _0814BAF2
|
||||
_0814BB14:
|
||||
ldr r0, _0814BB30 @ =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x14]
|
||||
lsls r0, 29
|
||||
lsrs r0, 29
|
||||
cmp r0, 0x1
|
||||
beq _0814BB3E
|
||||
cmp r0, 0x1
|
||||
bgt _0814BB34
|
||||
cmp r0, 0
|
||||
beq _0814BB3A
|
||||
b _0814BB46
|
||||
.align 2, 0
|
||||
_0814BB2C: .4byte gLinkPlayers + 8
|
||||
_0814BB30: .4byte gSaveBlock2Ptr
|
||||
_0814BB34:
|
||||
cmp r0, 0x2
|
||||
beq _0814BB42
|
||||
b _0814BB46
|
||||
_0814BB3A:
|
||||
movs r0, 0x8
|
||||
b _0814BB44
|
||||
_0814BB3E:
|
||||
movs r0, 0x4
|
||||
b _0814BB44
|
||||
_0814BB42:
|
||||
movs r0, 0x1
|
||||
_0814BB44:
|
||||
strb r0, [r6, 0xB]
|
||||
_0814BB46:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_814BABC
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
3494
asm/berry_crush_2.s
3494
asm/berry_crush_2.s
File diff suppressed because it is too large
Load Diff
3431
asm/berry_crush_3.s
3431
asm/berry_crush_3.s
File diff suppressed because it is too large
Load Diff
|
|
@ -3347,8 +3347,8 @@ _08056522:
|
|||
_08056530: .4byte gUnknown_3005E90
|
||||
thumb_func_end sub_80564C8
|
||||
|
||||
thumb_func_start sub_8056534
|
||||
sub_8056534: @ 8056534
|
||||
thumb_func_start CB1_Overworld
|
||||
CB1_Overworld: @ 8056534
|
||||
push {r4,lr}
|
||||
ldr r4, _0805655C @ =gMain
|
||||
ldr r1, [r4, 0x4]
|
||||
|
|
@ -3379,7 +3379,7 @@ _08056570:
|
|||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8056534
|
||||
thumb_func_end CB1_Overworld
|
||||
|
||||
thumb_func_start sub_8056578
|
||||
sub_8056578: @ 8056578
|
||||
|
|
@ -3507,7 +3507,7 @@ CB2_NewGame: @ 8056644
|
|||
ldr r0, _08056698 @ =gMain + 0x438
|
||||
bl do_load_map_stuff_loop
|
||||
bl SetFieldVBlankCallback
|
||||
ldr r0, _0805669C @ =sub_8056534
|
||||
ldr r0, _0805669C @ =CB1_Overworld
|
||||
bl SetMainCallback1
|
||||
ldr r0, _080566A0 @ =sub_80565B4
|
||||
bl SetMainCallback2
|
||||
|
|
@ -3518,7 +3518,7 @@ _0805668C: .4byte gFieldCallback
|
|||
_08056690: .4byte sub_807DF7C
|
||||
_08056694: .4byte gFieldCallback2
|
||||
_08056698: .4byte gMain + 0x438
|
||||
_0805669C: .4byte sub_8056534
|
||||
_0805669C: .4byte CB1_Overworld
|
||||
_080566A0: .4byte sub_80565B4
|
||||
thumb_func_end CB2_NewGame
|
||||
|
||||
|
|
@ -3555,7 +3555,7 @@ CB2_WhiteOut: @ 80566A4
|
|||
bl do_load_map_stuff_loop
|
||||
bl sub_8112364
|
||||
bl SetFieldVBlankCallback
|
||||
ldr r0, _08056714 @ =sub_8056534
|
||||
ldr r0, _08056714 @ =CB1_Overworld
|
||||
bl SetMainCallback1
|
||||
ldr r0, _08056718 @ =sub_80565B4
|
||||
bl SetMainCallback2
|
||||
|
|
@ -3567,7 +3567,7 @@ _08056702:
|
|||
_08056708: .4byte gMain
|
||||
_0805670C: .4byte gFieldCallback
|
||||
_08056710: .4byte sub_807F5F0
|
||||
_08056714: .4byte sub_8056534
|
||||
_08056714: .4byte CB1_Overworld
|
||||
_08056718: .4byte sub_80565B4
|
||||
thumb_func_end CB2_WhiteOut
|
||||
|
||||
|
|
@ -3608,7 +3608,7 @@ sub_805674C: @ 805674C
|
|||
_08056768: .4byte gMain + 0x438
|
||||
_0805676C:
|
||||
bl SetFieldVBlankCallback
|
||||
ldr r0, _08056780 @ =sub_8056534
|
||||
ldr r0, _08056780 @ =CB1_Overworld
|
||||
bl SetMainCallback1
|
||||
ldr r0, _08056784 @ =sub_80565B4
|
||||
bl SetMainCallback2
|
||||
|
|
@ -3616,7 +3616,7 @@ _0805677C:
|
|||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08056780: .4byte sub_8056534
|
||||
_08056780: .4byte CB1_Overworld
|
||||
_08056784: .4byte sub_80565B4
|
||||
thumb_func_end sub_805674C
|
||||
|
||||
|
|
@ -3870,7 +3870,7 @@ _0805699C:
|
|||
ldr r0, _080569B0 @ =gFieldCallback
|
||||
ldr r1, _080569B4 @ =sub_8056918
|
||||
str r1, [r0]
|
||||
ldr r0, _080569B8 @ =sub_8056534
|
||||
ldr r0, _080569B8 @ =CB1_Overworld
|
||||
bl SetMainCallback1
|
||||
bl CB2_ReturnToField
|
||||
_080569AC:
|
||||
|
|
@ -3879,7 +3879,7 @@ _080569AC:
|
|||
.align 2, 0
|
||||
_080569B0: .4byte gFieldCallback
|
||||
_080569B4: .4byte sub_8056918
|
||||
_080569B8: .4byte sub_8056534
|
||||
_080569B8: .4byte CB1_Overworld
|
||||
thumb_func_end CB2_ContinueSavedGame
|
||||
|
||||
thumb_func_start FieldClearVBlankHBlankCallbacks
|
||||
|
|
@ -4963,7 +4963,7 @@ sub_80572D8: @ 80572D8
|
|||
ldr r0, _080572F4 @ =gMain + 0x438
|
||||
bl sub_8057300
|
||||
bl SetFieldVBlankCallback
|
||||
ldr r0, _080572F8 @ =sub_8056534
|
||||
ldr r0, _080572F8 @ =CB1_Overworld
|
||||
bl SetMainCallback1
|
||||
ldr r0, _080572FC @ =sub_80565B4
|
||||
bl SetMainCallback2
|
||||
|
|
@ -4971,7 +4971,7 @@ sub_80572D8: @ 80572D8
|
|||
bx r0
|
||||
.align 2, 0
|
||||
_080572F4: .4byte gMain + 0x438
|
||||
_080572F8: .4byte sub_8056534
|
||||
_080572F8: .4byte CB1_Overworld
|
||||
_080572FC: .4byte sub_80565B4
|
||||
thumb_func_end sub_80572D8
|
||||
|
||||
|
|
@ -5148,14 +5148,14 @@ _08057484: .4byte gUnknown_2036E28
|
|||
_08057488: .4byte gUnknown_2031DE0
|
||||
_0805748C: .4byte CB2_LoadMap
|
||||
_08057490:
|
||||
ldr r0, _080574A0 @ =sub_8056534
|
||||
ldr r0, _080574A0 @ =CB1_Overworld
|
||||
bl SetMainCallback1
|
||||
bl CB2_ReturnToField
|
||||
_0805749A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080574A0: .4byte sub_8056534
|
||||
_080574A0: .4byte CB1_Overworld
|
||||
thumb_func_end sub_8057430
|
||||
|
||||
thumb_func_start Overworld_CreditsMainCB
|
||||
|
|
|
|||
|
|
@ -1,371 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2
|
||||
gUnknown_846E2E0:: @ 846E2E0
|
||||
.byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
|
||||
|
||||
gUnknown_846E2E8:: @ 846E2E8
|
||||
.byte 0x00, 0x01, 0x02, 0x03, 0x05, 0x00, 0x00, 0x00
|
||||
|
||||
gUnknown_846E2F0:: @ 846E2F0
|
||||
.byte 0x04, 0x01, 0x00, 0xff
|
||||
.byte 0x00, 0x00, 0x00, 0x04
|
||||
.byte 0x02, 0x00, 0xff, 0x00
|
||||
.byte 0x00, 0x00, 0x04, 0x02
|
||||
.byte 0x00, 0xfe, 0x00, 0x00
|
||||
.byte 0x00, 0x06, 0x03, 0x01
|
||||
.byte 0xff, 0xfd, 0xff, 0x00
|
||||
.byte 0x06, 0x04, 0x01, 0xfe
|
||||
.byte 0xfc, 0xfe, 0x00, 0x00
|
||||
|
||||
gUnknown_846E314:: @ 846E314
|
||||
.byte 0x03, 0x02, 0x01, 0x00
|
||||
.byte 0x03, 0x03, 0x01, 0x00
|
||||
.byte 0x03, 0x03, 0x02, 0x00
|
||||
.byte 0x03, 0x04, 0x02, 0x00
|
||||
.byte 0x03, 0x05, 0x03, 0x00
|
||||
|
||||
gUnknown_846E328:: @ 846E328
|
||||
.4byte gUnknown_841CE3C
|
||||
.4byte gUnknown_841CE78
|
||||
.4byte gUnknown_841CEA8
|
||||
.4byte gUnknown_841CF14
|
||||
.4byte gUnknown_841CF50
|
||||
.4byte gUnknown_841CF70
|
||||
.4byte gUnknown_841CFA0
|
||||
.4byte gUnknown_841CFD4
|
||||
.4byte gUnknown_841D008
|
||||
|
||||
gUnknown_846E34C:: @ 846E34C
|
||||
.4byte NULL
|
||||
.4byte sub_814BBB8
|
||||
.4byte sub_814BC10
|
||||
.4byte sub_814BC74
|
||||
.4byte sub_814BD7C
|
||||
.4byte sub_814BD9C
|
||||
.4byte sub_814BDBC
|
||||
.4byte sub_814BE0C
|
||||
.4byte sub_814BE64
|
||||
.4byte sub_814BE7C
|
||||
.4byte sub_814BFD0
|
||||
.4byte sub_814C118
|
||||
.4byte sub_814C24C
|
||||
.4byte sub_814C850
|
||||
.4byte sub_814C8F8
|
||||
.4byte sub_814C990
|
||||
.4byte sub_814CB20
|
||||
.4byte sub_814CC0C
|
||||
.4byte sub_814CFA8
|
||||
.4byte sub_814D094
|
||||
.4byte sub_814D188
|
||||
.4byte sub_814D240
|
||||
.4byte sub_814D31C
|
||||
.4byte sub_814D3A4
|
||||
.4byte sub_814D468
|
||||
.4byte sub_814D4C8
|
||||
|
||||
gUnknown_846E3B4:: @ 846E3B4
|
||||
.byte 0x02, 0x04, 0x06, 0x07
|
||||
.byte 0x03, 0x05, 0x08, 0x0b
|
||||
.byte 0x03, 0x07, 0x0b, 0x0f
|
||||
.byte 0x04, 0x08, 0x0c, 0x11
|
||||
|
||||
gUnknown_846E3C4:: @ 846E3C4
|
||||
.byte 0x05, 0x07, 0x09, 0x0c
|
||||
|
||||
gUnknown_846E3C8:: @ 846E3C8
|
||||
.byte 0x03, 0x07, 0x0f, 0x1f
|
||||
|
||||
gUnknown_846E3CC:: @ 846E3CC
|
||||
.4byte 0x000000f8
|
||||
@ {
|
||||
@ .bg = 0,
|
||||
@ .charBaseIndex = 2,
|
||||
@ .mapBaseIndex = 15,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 0,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x000014d1
|
||||
@ {
|
||||
@ .bg = 1,
|
||||
@ .charBaseIndex = 0,
|
||||
@ .mapBaseIndex = 13,
|
||||
@ .screenSize = 2,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 1,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x000020c2
|
||||
@ {
|
||||
@ .bg = 2,
|
||||
@ .charBaseIndex = 0,
|
||||
@ .mapBaseIndex = 12,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 2,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
.4byte 0x000030b3
|
||||
@ {
|
||||
@ .bg = 3,
|
||||
@ .charBaseIndex = 0,
|
||||
@ .mapBaseIndex = 11,
|
||||
@ .screenSize = 0,
|
||||
@ .paletteMode = 0,
|
||||
@ .priority = 3,
|
||||
@ .baseTile = 0x0000
|
||||
@ }
|
||||
|
||||
gUnknown_846E3DC:: @ 846E3DC
|
||||
.byte 0x01, 0x02, 0x03
|
||||
|
||||
gUnknown_846E3DF:: @ 846E3DF
|
||||
.byte 0x00, 0x01, 0x02
|
||||
|
||||
gUnknown_846E3E2:: @ 846E3E2
|
||||
.byte 0x00, 0x03, 0x04
|
||||
|
||||
gUnknown_846E3E5:: @ 846E3E5
|
||||
.byte 0x01, 0x08, 0x09
|
||||
.byte 0x01, 0x06, 0x07
|
||||
|
||||
gUnknown_846E3EB:: @ 846E3EB
|
||||
.byte 0x01, 0x04, 0x05
|
||||
|
||||
.align 2
|
||||
gUnknown_846E3F0:: @ 846E3F0
|
||||
.byte 0, 3, 4, 24, 13, 15
|
||||
.2byte 0x0001
|
||||
|
||||
gUnknown_846E3F8:: @ 846E3F8
|
||||
.byte 0, 0, 0, 9, 2, 8
|
||||
.2byte 0x03ed
|
||||
.byte 0, 0, 3, 9, 2, 8
|
||||
.2byte 0x03db
|
||||
.byte 0, 0, 6, 9, 2, 8
|
||||
.2byte 0x03c9
|
||||
.byte 0, 21, 3, 9, 2, 8
|
||||
.2byte 0x03b7
|
||||
.byte 0, 21, 6, 9, 2, 8
|
||||
.2byte 0x03a5
|
||||
.byte 255, 0, 0, 0, 0, 0
|
||||
.2byte 0x0000
|
||||
.byte 0, 4, 2, 22, 16, 15
|
||||
.2byte 0x0001
|
||||
.byte 0, 4, 2, 22, 16, 15
|
||||
.2byte 0x0001
|
||||
.byte 0, 3, 2, 24, 16, 15
|
||||
.2byte 0x0001
|
||||
.byte 255, 0, 0, 0, 0, 0
|
||||
.2byte 0x0000
|
||||
|
||||
gUnknown_846E448:: @ 846E448
|
||||
.byte 0x06, 0x08, 0x09, 0x0b
|
||||
.byte 0x0c, 0x0e, 0x0f, 0x10
|
||||
|
||||
gUnknown_846E450:: @ 846E450
|
||||
.4byte 50000000, 25000000, 12500000, 6250000, 3125000, 1562500, 781250, 390625
|
||||
|
||||
gUnknown_846E470:: @ 846E470 gbapal
|
||||
.incbin "graphics/link_games/unk_846E4D0.gbapal"
|
||||
|
||||
gUnknown_846E490:: @ 846E490 gbapal
|
||||
.incbin "graphics/link_games/unk_846E7FC.gbapal"
|
||||
|
||||
gUnknown_846E4B0:: @ 846E4B0 gbapal
|
||||
.incbin "graphics/link_games/unk_846ECC4.gbapal"
|
||||
|
||||
gUnknown_846E4D0:: @ 846E4D0 4bpp.lz
|
||||
.incbin "graphics/link_games/unk_846E4D0.4bpp.lz"
|
||||
|
||||
gUnknown_846E7FC:: @ 846E7FC 4bpp.lz
|
||||
.incbin "graphics/link_games/unk_846E7FC.4bpp.lz"
|
||||
|
||||
gUnknown_846EB78:: @ 846EB78 4bpp.lz
|
||||
.incbin "graphics/link_games/unk_846EB78.4bpp.lz"
|
||||
|
||||
gUnknown_846ECC4:: @ 846ECC4 4bpp.lz
|
||||
.incbin "graphics/link_games/unk_846ECC4.4bpp.lz"
|
||||
|
||||
gUnknown_846ED90:: @ 846ED90 bin.lz
|
||||
.incbin "graphics/link_games/unk_846ED90.bin.lz"
|
||||
|
||||
gUnknown_846EEC0:: @ 846EEC0 bin.lz
|
||||
.incbin "graphics/link_games/unk_846EEC0.bin.lz"
|
||||
|
||||
gUnknown_846F058:: @ 846F058 bin.lz
|
||||
.incbin "graphics/link_games/unk_846F058.bin.lz"
|
||||
|
||||
gUnknown_846F280:: @ 846F280
|
||||
.byte 0x01, 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x01, 0x03, 0x00, 0x00
|
||||
.byte 0x01, 0x03, 0x02, 0x04, 0x00
|
||||
.byte 0x00, 0x01, 0x03, 0x02, 0x04
|
||||
|
||||
gUnknown_846F294:: @ 846F294
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x01, 0x00, 0x03, 0x00, 0xe4, 0xff, 0xfc, 0xff, 0xe8, 0xff, 0x10, 0x00
|
||||
.byte 0x02, 0x00, 0x06, 0x00, 0xf0, 0xff, 0x14, 0x00, 0xf8, 0xff, 0x10, 0x00
|
||||
.byte 0x03, 0x14, 0x03, 0x00, 0x1c, 0x00, 0xfc, 0xff, 0x20, 0x00, 0xf8, 0xff
|
||||
.byte 0x04, 0x14, 0x06, 0x00, 0x10, 0x00, 0x14, 0x00, 0x10, 0x00, 0xf8, 0xff
|
||||
|
||||
gUnknown_846F2D0:: @ 846F2D0
|
||||
.byte 0x00, 0x00
|
||||
.byte 0xff, 0x00
|
||||
.byte 0x01, 0x01
|
||||
|
||||
gUnknown_846F2D6:: @ 846F2D6
|
||||
.byte 0x00, 0x00
|
||||
.byte 0xf0, 0xfc
|
||||
.byte 0x10, 0xfc
|
||||
.byte 0xf8, 0xfe
|
||||
.byte 0x08, 0xfe
|
||||
.byte 0xe8, 0xf8
|
||||
.byte 0x18, 0xf8
|
||||
.byte 0xe0, 0xf4
|
||||
.byte 0x20, 0xf4
|
||||
.byte 0xd8, 0xf0
|
||||
.byte 0x28, 0xf0
|
||||
|
||||
gUnknown_846F2EC:: @ 846F2EC
|
||||
.2byte 5, 6, 7, 8, 9
|
||||
|
||||
.align 2
|
||||
gUnknown_846F2F8:: @ 846F2F8
|
||||
obj_tiles gUnknown_846E4D0, 0x0800, 1
|
||||
obj_tiles gUnknown_846E7FC, 0x0e00, 2
|
||||
obj_tiles gUnknown_846EB78, 0x0700, 3
|
||||
obj_tiles gUnknown_846ECC4, 0x02c0, 4
|
||||
obj_tiles NULL, 0x0000, 0
|
||||
|
||||
gUnknown_846F320:: @ 846F320
|
||||
obj_pal gUnknown_846E470, 1
|
||||
obj_pal gUnknown_846E490, 2
|
||||
obj_pal gUnknown_846E4B0, 4
|
||||
obj_pal NULL, 0
|
||||
|
||||
gUnknown_846F340::
|
||||
obj_image_anim_frame 0x0000, 0
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_846F348::
|
||||
obj_image_anim_frame 0x0000, 4
|
||||
obj_image_anim_frame 0x0010, 4
|
||||
obj_image_anim_frame 0x0020, 4
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_846F358::
|
||||
obj_image_anim_frame 0x0030, 2
|
||||
obj_image_anim_frame 0x0040, 2
|
||||
obj_image_anim_frame 0x0050, 2
|
||||
obj_image_anim_frame 0x0060, 2
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_846F36C::
|
||||
obj_image_anim_frame 0x0000, 2
|
||||
obj_image_anim_frame 0x0004, 2
|
||||
obj_image_anim_frame 0x0008, 2
|
||||
obj_image_anim_frame 0x000c, 2
|
||||
obj_image_anim_frame 0x0010, 2
|
||||
obj_image_anim_frame 0x0014, 2
|
||||
obj_image_anim_jump 0
|
||||
|
||||
gUnknown_846F388::
|
||||
obj_image_anim_frame 0x0018, 4
|
||||
obj_image_anim_frame 0x001c, 4
|
||||
obj_image_anim_frame 0x0020, 4
|
||||
obj_image_anim_frame 0x0024, 4
|
||||
obj_image_anim_frame 0x0028, 4
|
||||
obj_image_anim_frame 0x002c, 4
|
||||
obj_image_anim_frame 0x0030, 4
|
||||
obj_image_anim_frame 0x0034, 4
|
||||
obj_image_anim_jump 0
|
||||
|
||||
gUnknown_846F3AC::
|
||||
obj_image_anim_frame 0x0014, 0
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_846F3B4::
|
||||
obj_image_anim_frame 0x0000, 0
|
||||
obj_image_anim_end
|
||||
|
||||
gUnknown_846F3BC::
|
||||
obj_rot_scal_anim_frame 256, 256, 0, 0
|
||||
obj_rot_scal_anim_frame 0, 0, 2, 1
|
||||
obj_rot_scal_anim_jump 1
|
||||
|
||||
gUnknown_846F3D4::
|
||||
obj_rot_scal_anim_frame 256, 256, 0, 0
|
||||
obj_rot_scal_anim_frame 0, 0, 254, 1
|
||||
obj_rot_scal_anim_jump 1
|
||||
|
||||
gUnknown_846F3EC::
|
||||
.4byte gUnknown_846F340
|
||||
|
||||
gUnknown_846F3F0::
|
||||
.4byte gUnknown_846F348
|
||||
.4byte gUnknown_846F358
|
||||
|
||||
gUnknown_846F3F8::
|
||||
.4byte gUnknown_846F36C
|
||||
.4byte gUnknown_846F388
|
||||
|
||||
gUnknown_846F400::
|
||||
.4byte gUnknown_846F3AC
|
||||
|
||||
gUnknown_846F404::
|
||||
.4byte gUnknown_846F3B4
|
||||
|
||||
gUnknown_846F408::
|
||||
.4byte gUnknown_846F3BC
|
||||
.4byte gUnknown_846F3D4
|
||||
|
||||
gUnknown_846F410:: @ 846F410
|
||||
spr_template 1, 1, gOamData_AffineOff_ObjNormal_64x64, gUnknown_846F3EC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_846F428:: @ 846F428
|
||||
spr_template 2, 2, gOamData_AffineOff_ObjNormal_32x32, gUnknown_846F3F0, NULL, gDummySpriteAffineAnimTable, sub_814EFD0
|
||||
|
||||
gUnknown_846F440:: @ 846F440
|
||||
spr_template 3, 2, gOamData_AffineOff_ObjNormal_16x16, gUnknown_846F3F8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_846F458:: @ 846F458
|
||||
spr_template 4, 4, gOamData_AffineOff_ObjNormal_8x16, gUnknown_846F400, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_846F470:: @ 846F470
|
||||
spr_template 5, 5, gOamData_AffineDouble_ObjNormal_32x32, gUnknown_846F404, NULL, gUnknown_846F408, SpriteCallbackDummy
|
||||
|
||||
gUnknown_846F488:: @ 846F488 DigitObjUtilTemplate
|
||||
@ strConvMode, shape, size, priority
|
||||
.byte 1 | (2 /*ST_OAM_V_RECTANGLE*/ << 2) | (0 << 4) | (0 << 6) @ 9
|
||||
.byte 2, 8 @ ndigits, width
|
||||
.align 2
|
||||
.2byte 0x9c, 0x00 @ x, y
|
||||
.4byte gUnknown_846F2F8 + 0x18 @ spriteSheet
|
||||
.4byte gUnknown_846F320 + 0x10 @ spritePalette
|
||||
@ strConvMode, shape, size, priority
|
||||
.byte 0 | (2 /*ST_OAM_V_RECTANGLE*/ << 2) | (0 << 4) | (0 << 6) @ 8
|
||||
.byte 2, 8 @ ndigits, width
|
||||
.align 2
|
||||
.2byte 0xb4, 0x00 @ x, y
|
||||
.4byte gUnknown_846F2F8 + 0x18 @ spriteSheet
|
||||
.4byte gUnknown_846F320 + 0x10 @ spritePalette
|
||||
@ strConvMode, shape, size, priority
|
||||
.byte 0 | (2 /*ST_OAM_V_RECTANGLE*/ << 2) | (0 << 4) | (0 << 6) @ 8
|
||||
.byte 2, 8 @ ndigits, width
|
||||
.align 2
|
||||
.2byte 0xcc, 0x00 @ x, y
|
||||
.4byte gUnknown_846F2F8 + 0x18 @ spriteSheet
|
||||
.4byte gUnknown_846F320 + 0x10 @ spritePalette
|
||||
|
||||
gUnknown_846F4B8:: @ 846F4B8
|
||||
.4byte gUnknown_841D034
|
||||
.4byte gUnknown_841D03C
|
||||
.4byte gUnknown_841D044
|
||||
.4byte gUnknown_841D0D4
|
||||
.4byte gUnknown_841D0E8
|
||||
.4byte gUnknown_841D100
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
|
||||
.align 2
|
||||
gUnknown_847565C_UnrefDupe:: @ 8471F00 struct BgTemplate(???)
|
||||
.4byte 0x000001e0
|
||||
.4byte 0x000012c9
|
||||
.4byte 0x000012ea
|
||||
.4byte 0x000021ff
|
||||
.4byte 0x000000ff
|
||||
.4byte 0x00000000
|
||||
|
||||
.align 2
|
||||
gUnknown_8475674_UnrefDupe:: @ 8471F18
|
||||
window_template 0x00, 0x01, 0x01, 0x1c, 0x03, 0x0d, 0x0013
|
||||
window_template 0x00, 0x01, 0x06, 0x1c, 0x0d, 0x0d, 0x0067
|
||||
|
||||
.align 2
|
||||
gUnknown_8475684_UnrefDupe:: @ 8471F28
|
||||
window_template 0x00, 0x01, 0x06, 0x1c, 0x07, 0x0d, 0x0067
|
||||
|
||||
.align 2
|
||||
gUnknown_847568C_UnrefDupe:: @ 8471F30
|
||||
window_template 0x00, 0x01, 0x08, 0x13, 0x03, 0x0d, 0x0013
|
||||
window_template 0x00, 0x16, 0x07, 0x06, 0x04, 0x0d, 0x004c
|
||||
|
||||
.align 2
|
||||
gUnknown_847569C_UnrefDupe:: @ 8471F40
|
||||
window_template 0x00, 0x04, 0x06, 0x16, 0x05, 0x0d, 0x0013
|
||||
|
||||
.align 2
|
||||
gUnknown_84756A4_UnrefDupe:: @ 8471F48
|
||||
window_template 0x00, 0x05, 0x08, 0x13, 0x03, 0x0d, 0x0013
|
||||
|
|
@ -13,18 +13,6 @@
|
|||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
gUnknown_8479668:: @ 8479668
|
||||
.incbin "graphics/misc/unk_8479688.gbapal"
|
||||
|
||||
gUnknown_8479688::
|
||||
.incbin "graphics/misc/unk_8479688.4bpp.lz"
|
||||
|
||||
gUnknown_8479748::
|
||||
.incbin "graphics/misc/unk_8479748.4bpp.lz"
|
||||
|
||||
.section .rodata.after_trainer_tower
|
||||
|
||||
// berry_fix_program
|
||||
|
||||
gUnknown_847A8D8::
|
||||
|
|
|
|||
|
|
@ -3448,90 +3448,90 @@ gUnknown_841D008:: @ 841D008
|
|||
.string "Communication standby…$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D020:: @ 841D020
|
||||
gText_1_ClrLtGryShdwBlk_Dynamic0:: @ 841D020
|
||||
.string "1. {COLOR LIGHT_GRAY}{SHADOW BLACK}{DYNAMIC 0x00}$"
|
||||
|
||||
gUnknown_841D02C:: @ 841D02C
|
||||
gText_1_Dynamic0:: @ 841D02C
|
||||
.string "1. {DYNAMIC 0x00}$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D034:: @ 0x841D034
|
||||
gText_SpaceTimes:: @ 0x841D034
|
||||
.string " times$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D03C:: @ 0x841D03C
|
||||
gText_XDotY:: @ 0x841D03C
|
||||
.string "{STR_VAR_1}.{STR_VAR_2}$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D044:: @ 0x841D044
|
||||
gText_StrVar1Berry:: @ 0x841D044
|
||||
.string "{STR_VAR_1} BERRY$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D050:: @ 841D050
|
||||
gText_TimeColon:: @ 841D050
|
||||
.string "Time:$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D058:: @ 841D058
|
||||
gText_PressingSpeed:: @ 841D058
|
||||
.string "Pressing Speed:$"
|
||||
|
||||
gUnknown_841D068:: @ 841D068
|
||||
gText_Silkiness:: @ 841D068
|
||||
.string "Silkiness:$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D074:: @ 841D074
|
||||
gText_StrVar1:: @ 841D074
|
||||
.string "{STR_VAR_1}$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D078:: @ 841D078
|
||||
gText_SpaceMin:: @ 841D078
|
||||
.string "min.$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D080:: @ 841D080
|
||||
gText_XDotY2:: @ 841D080
|
||||
.string "{STR_VAR_1}.{STR_VAR_2}$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D088:: @ 841D088
|
||||
gText_SpaceSec:: @ 841D088
|
||||
.string "sec.$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D090:: @ 841D090
|
||||
gText_XDotY3:: @ 841D090
|
||||
.string "{STR_VAR_1}.{STR_VAR_2}$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D098:: @ 841D098
|
||||
gText_TimesPerSec:: @ 841D098
|
||||
.string "Times/sec.$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D0A4:: @ 841D0A4
|
||||
.string "{STR_VAR_1}サ$"
|
||||
gText_Var1Percent:: @ 841D0A4
|
||||
.string "{STR_VAR_1}%$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D0A8:: @ 841D0A8
|
||||
gText_PressesRankings:: @ 841D0A8
|
||||
.string "No. of Presses Rankings$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D0C0:: @ 841D0C0
|
||||
gText_CrushingResults:: @ 841D0C0
|
||||
.string "Crushing Results$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D0D4:: @ 0x841D0D4
|
||||
gText_NeatnessRankings:: @ 0x841D0D4
|
||||
.string "Neatness Rankings$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D0E8:: @ 0x841D0E8
|
||||
gText_CooperativeRankings:: @ 0x841D0E8
|
||||
.string "Cooperative Rankings$"
|
||||
|
||||
.align 2
|
||||
gUnknown_841D100:: @ 0x841D100
|
||||
gText_PressingPowerRankings:: @ 0x841D100
|
||||
.string "Pressing-Power Rankings$"
|
||||
|
||||
gUnknown_841D118:: @ 841D118
|
||||
gText_BerryCrush2:: @ 841D118
|
||||
.string "BERRY CRUSH$"
|
||||
|
||||
gUnknown_841D124:: @ 841D124
|
||||
gText_PressingSpeedRankings:: @ 841D124
|
||||
.string "Pressing-Speed Rankings$"
|
||||
|
||||
gUnknown_841D13C:: @ 841D13C
|
||||
gText_Var1Players:: @ 841D13C
|
||||
.string "{STR_VAR_1} PLAYERS$"
|
||||
|
||||
.align 2
|
||||
|
|
|
|||
|
|
@ -72,6 +72,6 @@ struct UnkStruct_0858AB24 {
|
|||
u16 unk1;
|
||||
};
|
||||
|
||||
extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[];
|
||||
extern const struct UnkStruct_0858AB24 gUnknown_83DFC9C[];
|
||||
|
||||
#endif // GUARD_BERRY_H
|
||||
|
|
|
|||
|
|
@ -1,6 +1,184 @@
|
|||
#ifndef GUARD_BERRY_CRUSH_H
|
||||
#define GUARD_BERRY_CRUSH_H
|
||||
|
||||
struct BerryCrushGame_Player
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
union
|
||||
{
|
||||
u8 as_2d_bytes[2][8];
|
||||
u16 as_hwords[8];
|
||||
} unk4;
|
||||
u8 unk14[12];
|
||||
};
|
||||
|
||||
struct __attribute__((packed, aligned(2))) BerryCrushGame_4E
|
||||
{
|
||||
u16 unk0;
|
||||
u16 filler2;
|
||||
u8 unk4_0:1;
|
||||
u8 unk4_1:1;
|
||||
s8 unk5;
|
||||
u16 unk6;
|
||||
u16 unk8;
|
||||
u16 unkA;
|
||||
u16 unkC;
|
||||
};
|
||||
|
||||
struct __attribute__((packed)) BerryCrushGame_40
|
||||
{
|
||||
u8 unk0[2];
|
||||
u16 unk2[6];
|
||||
struct BerryCrushGame_4E unkE;
|
||||
};
|
||||
|
||||
struct BerryCrushGame_5C
|
||||
{
|
||||
u16 unk00;
|
||||
u8 unk02_0:1;
|
||||
u8 unk02_1:1;
|
||||
u8 unk02_2:1;
|
||||
u8 unk02_3:5;
|
||||
u8 unk03;
|
||||
u16 unk04;
|
||||
u16 unk06;
|
||||
u16 unk08;
|
||||
u16 unk0A;
|
||||
};
|
||||
|
||||
union BerryCrushGame_68
|
||||
{
|
||||
struct BerryCrushGame_68_x
|
||||
{
|
||||
struct BerryCrushGame_68_x_SubStruct
|
||||
{
|
||||
s32 unk00;
|
||||
u16 unk04;
|
||||
s16 unk06;
|
||||
u16 unk08;
|
||||
u16 unk0A;
|
||||
u16 unk0C[2][5];
|
||||
u8 filler20[16];
|
||||
} unk00;
|
||||
u8 unk30[12];
|
||||
struct BerryCrushGame_Player others[4];
|
||||
u8 fillerBC[20];
|
||||
} as_four_players;
|
||||
struct BerryCrushGame_68_y
|
||||
{
|
||||
u8 filler00[28];
|
||||
struct BerryCrushGame_Player unk1C[5];
|
||||
u8 fillerBC[20];
|
||||
} as_five_players;
|
||||
};
|
||||
|
||||
struct BerryCrushGame_138_C
|
||||
{
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
s16 unk8;
|
||||
s16 unkA;
|
||||
};
|
||||
|
||||
struct BerryCrushGame_138
|
||||
{
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u8 unk2;
|
||||
u8 unk3;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
s16 unk8;
|
||||
const struct BerryCrushGame_138_C *unkC[5];
|
||||
struct Sprite *unk20;
|
||||
struct Sprite *unk24[5];
|
||||
struct Sprite *unk38[5];
|
||||
struct Sprite *unk4C[11];
|
||||
struct Sprite *unk78[2];
|
||||
u8 unk80;
|
||||
u8 filler81;
|
||||
u8 unk82;
|
||||
u8 unk83[5];
|
||||
};
|
||||
|
||||
struct BerryCrushGame
|
||||
{
|
||||
MainCallback unk0;
|
||||
u32 (*unk4)(struct BerryCrushGame *, u8 *);
|
||||
u8 unk8;
|
||||
u8 unk9;
|
||||
u8 unkA;
|
||||
u8 unkB;
|
||||
u8 unkC;
|
||||
u8 unkD;
|
||||
u8 unkE;
|
||||
u8 unkF;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u16 unk14;
|
||||
u16 unk16;
|
||||
s16 unk18;
|
||||
s16 unk1A;
|
||||
int unk1C;
|
||||
s32 unk20;
|
||||
u8 unk24;
|
||||
u8 unk25_0:1;
|
||||
u8 unk25_1:1;
|
||||
u8 unk25_2:1;
|
||||
u8 unk25_3:1;
|
||||
u8 unk25_4:1;
|
||||
u8 unk25_5:3;
|
||||
u16 unk26;
|
||||
u16 unk28;
|
||||
s16 unk2A;
|
||||
s16 unk2C;
|
||||
s16 unk2E;
|
||||
s16 unk30;
|
||||
s16 unk32;
|
||||
s16 unk34;
|
||||
u8 unk36[0xA];
|
||||
struct BerryCrushGame_40 unk40;
|
||||
struct BerryCrushGame_5C unk5C;
|
||||
union BerryCrushGame_68 unk68;
|
||||
struct BerryCrushGame_138 unk138;
|
||||
u8 unk1C0[0x1000];
|
||||
u8 unk11C0[0x1000];
|
||||
u8 unk21C0[0x1000];
|
||||
u8 unk31C0[0x1000];
|
||||
};
|
||||
|
||||
#define PLAYER_UNK14(game, i) \
|
||||
((u8 *)(game) \
|
||||
+ offsetof(struct BerryCrushGame, unk68) \
|
||||
+ offsetof(struct BerryCrushGame_68_x, unk30) \
|
||||
+ sizeof(struct BerryCrushGame_Player) * (i))
|
||||
|
||||
struct BerryCrushGame *sub_814B6F0(void);
|
||||
void StartBerryCrush(MainCallback callback);
|
||||
u32 sub_814B6FC(MainCallback callback);
|
||||
void sub_814B8F0(void);
|
||||
void sub_814B914(void);
|
||||
void sub_814B924(void);
|
||||
void sub_814B930(void);
|
||||
void sub_814BABC(struct BerryCrushGame *arg0);
|
||||
void sub_814BB4C(u16, u8, u8 *);
|
||||
void sub_814D564(u8 *, u32, s32, u32, u32, u32, u32);
|
||||
int sub_814D9CC(struct BerryCrushGame *arg0);
|
||||
int sub_814D5C8(void);
|
||||
int sub_814D888(void);
|
||||
void sub_814DA24(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
|
||||
void sub_814DC24(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
|
||||
void sub_814DC5C(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
|
||||
bool32 sub_814DE50(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
|
||||
bool32 sub_814E644(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1);
|
||||
void sub_814E80C(struct BerryCrushGame *arg0);
|
||||
void sub_814DA04(struct BerryCrushGame *arg0);
|
||||
void sub_814EB04(struct BerryCrushGame_138 *arg0);
|
||||
void sub_814DB84(struct Sprite * sprite);
|
||||
void ShowBerryCrushRankings(void);
|
||||
|
||||
#endif //GUARD_BERRY_CRUSH_H
|
||||
|
|
|
|||
|
|
@ -11,8 +11,12 @@ struct DigitObjUtilTemplate
|
|||
u8 xDelta;
|
||||
s16 x;
|
||||
s16 y;
|
||||
const struct SpriteSheet *spriteSheet;
|
||||
const struct SpritePalette *spritePal;
|
||||
union
|
||||
{
|
||||
const struct SpriteSheet * uncompressed;
|
||||
const struct CompressedSpriteSheet * compressed;
|
||||
} spriteSheet;
|
||||
const struct SpritePalette * spritePal;
|
||||
};
|
||||
|
||||
extern const u16 gUnknown_8479668[];
|
||||
|
|
|
|||
|
|
@ -4875,10 +4875,15 @@ extern const u32 gLinkMiscMenu_Tilemap[];
|
|||
// union_room_chat_objects
|
||||
extern const u32 gUnionRoomChatIcons[];
|
||||
|
||||
//battle_bg
|
||||
// battle_bg
|
||||
extern const u32 gFile_graphics_battle_transitions_vs_frame_sheet[];
|
||||
extern const u32 gVsLettersGfx[];
|
||||
extern const u32 gFile_graphics_battle_transitions_vs_frame_palette[];
|
||||
extern const u32 gFile_graphics_battle_transitions_vs_frame_tilemap[];
|
||||
|
||||
// berry_crush
|
||||
extern const u16 gUnknown_8EAFEA0[];
|
||||
extern const u32 gUnknown_8EAFFC0[];
|
||||
extern const u32 gUnknown_8EB0ADC[];
|
||||
|
||||
#endif //GUARD_GRAPHICS_H
|
||||
|
|
|
|||
|
|
@ -79,5 +79,6 @@ void RemovePCItem(u16 itemId, u16 quantity);
|
|||
void SortAndCompactBagPocket(struct BagPocket * pocket);
|
||||
u8 CountItemsInPC(void);
|
||||
void ApplyNewEncryptionKeyToBagItems_(u32 newKey);
|
||||
bool8 CheckHasAtLeastOneBerry(void);
|
||||
|
||||
#endif // GUARD_ITEM_H
|
||||
|
|
|
|||
|
|
@ -275,6 +275,7 @@ bool32 GetRfuUnkCE8(void);
|
|||
void sub_80FA4A8(void);
|
||||
void sub_80FB9D0(void);
|
||||
void sub_80FB030(u32 a0);
|
||||
void sub_80FBA44(void);
|
||||
|
||||
#include "mevent_server.h"
|
||||
extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
|
||||
|
|
|
|||
|
|
@ -3,5 +3,9 @@
|
|||
|
||||
s16 sub_80D8B90(s16 y);
|
||||
s16 sub_80D8AA0(s16 x, s16 y);
|
||||
s32 sub_80D8B68(s32 x, s32 y);
|
||||
s32 sub_80D8AE0(s32 x, s32 y);
|
||||
s16 sub_80D8B40(u8 s, s16 x, s16 y);
|
||||
s16 sub_80D8ABC(u8 s, s16 x, s16 y);
|
||||
|
||||
#endif //GUARD_MATH_UTIL_H
|
||||
|
|
|
|||
|
|
@ -189,6 +189,8 @@ void sub_8057F34(void);
|
|||
u32 sub_8057EC0(void);
|
||||
void sub_8057F70(void);
|
||||
void sub_8057F48(void);
|
||||
void SetMainCallback1(MainCallback cb);
|
||||
void CB1_Overworld(void);
|
||||
|
||||
extern u16 gHeldKeyCodeToSend;
|
||||
|
||||
|
|
|
|||
|
|
@ -1148,4 +1148,38 @@ extern const u8 gUnknown_841DF92[];
|
|||
extern const u8 gUnknown_841DF99[];
|
||||
extern const u8 gUnknown_841DFA0[];
|
||||
|
||||
// berry_crush
|
||||
extern const u8 gUnknown_841CE3C[];
|
||||
extern const u8 gUnknown_841CE78[];
|
||||
extern const u8 gUnknown_841CEA8[];
|
||||
extern const u8 gUnknown_841CF14[];
|
||||
extern const u8 gUnknown_841CF50[];
|
||||
extern const u8 gUnknown_841CF70[];
|
||||
extern const u8 gUnknown_841CFA0[];
|
||||
extern const u8 gUnknown_841CFD4[];
|
||||
extern const u8 gUnknown_841D008[];
|
||||
extern const u8 gText_1_ClrLtGryShdwBlk_Dynamic0[];
|
||||
extern const u8 gText_1_Dynamic0[];
|
||||
extern const u8 gText_SpaceTimes[];
|
||||
extern const u8 gText_XDotY[];
|
||||
extern const u8 gText_StrVar1Berry[];
|
||||
extern const u8 gText_TimeColon[];
|
||||
extern const u8 gText_PressingSpeed[];
|
||||
extern const u8 gText_Silkiness[];
|
||||
extern const u8 gText_StrVar1[];
|
||||
extern const u8 gText_SpaceMin[];
|
||||
extern const u8 gText_XDotY2[];
|
||||
extern const u8 gText_SpaceSec[];
|
||||
extern const u8 gText_XDotY3[];
|
||||
extern const u8 gText_TimesPerSec[];
|
||||
extern const u8 gText_Var1Percent[];
|
||||
extern const u8 gText_PressesRankings[];
|
||||
extern const u8 gText_CrushingResults[];
|
||||
extern const u8 gText_BerryCrush2[];
|
||||
extern const u8 gText_PressingSpeedRankings[];
|
||||
extern const u8 gText_Var1Players[];
|
||||
extern const u8 gText_NeatnessRankings[];
|
||||
extern const u8 gText_CooperativeRankings[];
|
||||
extern const u8 gText_PressingPowerRankings[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
|
|
|||
|
|
@ -279,9 +279,9 @@ SECTIONS {
|
|||
src/pokemon_jump_4.o(.text);
|
||||
src/pokemon_jump_5.o(.text);
|
||||
src/pokemon_jump_6.o(.text);
|
||||
asm/berry_crush.o(.text);
|
||||
asm/berry_crush_2.o(.text);
|
||||
asm/berry_crush_3.o(.text);
|
||||
src/berry_crush.o(.text);
|
||||
src/berry_crush_2.o(.text);
|
||||
src/berry_crush_3.o(.text);
|
||||
src/wireless_communication_status_screen.o(.text);
|
||||
src/braille_text.o(.text);
|
||||
src/text_window.o(.text);
|
||||
|
|
@ -572,24 +572,23 @@ SECTIONS {
|
|||
src/pokemon_jump_4.o(.rodata);
|
||||
src/pokemon_jump_5.o(.rodata);
|
||||
src/pokemon_jump_6.o(.rodata);
|
||||
data/berry_crush.o(.rodata);
|
||||
src/berry_crush_2.o(.rodata);
|
||||
src/berry_crush_3.o(.rodata);
|
||||
src/wireless_communication_status_screen.o(.rodata);
|
||||
src/braille_text.o(.rodata);
|
||||
src/text_window_graphics.o(.rodata);
|
||||
src/quest_log_player.o(.rodata);
|
||||
data/berry_powder.o(.rodata);
|
||||
src/dodrio_berry_picking.o(.rodata);
|
||||
src/battle_controller_pokedude.o(.rodata);
|
||||
src/teachy_tv.o(.rodata);
|
||||
src/digit_obj_util.o(.rodata);
|
||||
data/data_8479668.o(.rodata);
|
||||
src/ss_anne.o(.rodata);
|
||||
src/cereader_tool.o(.rodata);
|
||||
src/renewable_hidden_items.o(.rodata);
|
||||
src/trainer_tower.o(.rodata);
|
||||
src/minigame_countdown.o(.rodata);
|
||||
src/berry_fix_program.o(.rodata);
|
||||
data/data_8479668.o(.rodata.after_trainer_tower);
|
||||
data/data_8479668.o(.rodata);
|
||||
|
||||
/* These should not be moved to C files */
|
||||
src/mystery_event_msg.o(.rodata);
|
||||
|
|
|
|||
228
src/berry_crush.c
Normal file
228
src/berry_crush.c
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "berry_crush.h"
|
||||
#include "berry_pouch.h"
|
||||
#include "berry_powder.h"
|
||||
#include "item.h"
|
||||
#include "item_menu.h"
|
||||
#include "link.h"
|
||||
#include "link_rfu.h"
|
||||
#include "math_util.h"
|
||||
#include "overworld.h"
|
||||
#include "task.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/items.h"
|
||||
|
||||
static EWRAM_DATA struct BerryCrushGame *gUnknown_203F3DC = NULL;
|
||||
|
||||
static void sub_814B860(void);
|
||||
static void sub_814BA6C(void);
|
||||
static void sub_814BA80(void);
|
||||
static void sub_814BA98(u8 taskId);
|
||||
|
||||
struct BerryCrushGame *sub_814B6F0(void)
|
||||
{
|
||||
return gUnknown_203F3DC;
|
||||
}
|
||||
|
||||
u32 sub_814B6FC(MainCallback callback)
|
||||
{
|
||||
if (!gUnknown_203F3DC)
|
||||
return 2;
|
||||
|
||||
if (!callback)
|
||||
callback = gUnknown_203F3DC->unk0;
|
||||
|
||||
DestroyTask(gUnknown_203F3DC->unkA);
|
||||
FREE_AND_SET_NULL(gUnknown_203F3DC);
|
||||
SetMainCallback2(callback);
|
||||
if (callback == CB2_ReturnToField)
|
||||
{
|
||||
PlayNewMapMusic(MUS_POKECEN);
|
||||
SetMainCallback1(CB1_Overworld);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void StartBerryCrush(MainCallback callback)
|
||||
{
|
||||
u8 playerCount = 0;
|
||||
u8 multiplayerId;
|
||||
|
||||
if (!gReceivedRemoteLinkPlayers || gWirelessCommType == 0)
|
||||
{
|
||||
SetMainCallback2(callback);
|
||||
Rfu.linkman_param[0] = 0;
|
||||
Rfu.linkman_param[1] = 0;
|
||||
Rfu.errorState = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
playerCount = GetLinkPlayerCount();
|
||||
multiplayerId = GetMultiplayerId();
|
||||
if (playerCount < 2 || multiplayerId >= playerCount)
|
||||
{
|
||||
SetMainCallback2(callback);
|
||||
Rfu.linkman_param[0] = 0;
|
||||
Rfu.linkman_param[1] = 0;
|
||||
Rfu.errorState = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
gUnknown_203F3DC = AllocZeroed(sizeof(*gUnknown_203F3DC));
|
||||
if (!gUnknown_203F3DC)
|
||||
{
|
||||
SetMainCallback2(callback);
|
||||
Rfu.linkman_param[0] = 0;
|
||||
Rfu.linkman_param[1] = 0;
|
||||
Rfu.errorState = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
gUnknown_203F3DC->unk0 = callback;
|
||||
gUnknown_203F3DC->unk8 = multiplayerId;
|
||||
gUnknown_203F3DC->unk9 = playerCount;
|
||||
sub_814BABC(gUnknown_203F3DC);
|
||||
gUnknown_203F3DC->unk12 = 1;
|
||||
gUnknown_203F3DC->unkE = 1;
|
||||
gUnknown_203F3DC->unkF = 6;
|
||||
sub_814D564(gUnknown_203F3DC->unk36, 1, -1, 0, 16, 0, 0);
|
||||
sub_814BB4C(4, 1, gUnknown_203F3DC->unk36);
|
||||
SetMainCallback2(sub_814BA80);
|
||||
gUnknown_203F3DC->unkA = CreateTask(sub_814BA98, 8);
|
||||
}
|
||||
|
||||
static void sub_814B860(void)
|
||||
{
|
||||
if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1)
|
||||
gSpecialVar_ItemId = ITEM_CHERI_BERRY;
|
||||
else
|
||||
RemoveBagItem(gSpecialVar_ItemId, 1);
|
||||
|
||||
gUnknown_203F3DC->unk68.as_four_players.others[gUnknown_203F3DC->unk8].unk0 = gSpecialVar_ItemId - FIRST_BERRY_INDEX;
|
||||
gUnknown_203F3DC->unkE = 1;
|
||||
gUnknown_203F3DC->unkF = 9;
|
||||
sub_814D564(gUnknown_203F3DC->unk36, 0, -1, 0, 16, 0, 0);
|
||||
sub_814BB4C(4, 1, gUnknown_203F3DC->unk36);
|
||||
gUnknown_203F3DC->unkA = CreateTask(sub_814BA98, 8);
|
||||
SetMainCallback2(sub_814BA80);
|
||||
}
|
||||
|
||||
void sub_814B8F0(void)
|
||||
{
|
||||
DestroyTask(gUnknown_203F3DC->unkA);
|
||||
InitBerryPouch(BERRYPOUCH_FROMBERRYCRUSH, sub_814B860, FALSE);
|
||||
}
|
||||
|
||||
void sub_814B914(void)
|
||||
{
|
||||
SetVBlankCallback(sub_814BA6C);
|
||||
}
|
||||
|
||||
void sub_814B924(void)
|
||||
{
|
||||
SetVBlankCallback(NULL);
|
||||
}
|
||||
|
||||
void sub_814B930(void)
|
||||
{
|
||||
u32 var0, var1;
|
||||
|
||||
var0 = gUnknown_203F3DC->unk68.as_four_players.unk00.unk04;
|
||||
var0 <<= 8;
|
||||
var0 = sub_80D8B68(var0, 60 << 8);
|
||||
var1 = gUnknown_203F3DC->unk68.as_four_players.unk00.unk0A;
|
||||
var1 <<= 8;
|
||||
var1 = sub_80D8B68(var1, var0) & 0xFFFF;
|
||||
gUnknown_203F3DC->unk16 = var1;
|
||||
switch (gUnknown_203F3DC->unk9)
|
||||
{
|
||||
case 2:
|
||||
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[0])
|
||||
{
|
||||
gUnknown_203F3DC->unk25_1 = 1;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[0] = gUnknown_203F3DC->unk16;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[1])
|
||||
{
|
||||
gUnknown_203F3DC->unk25_1 = 1;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[1] = gUnknown_203F3DC->unk16;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[2])
|
||||
{
|
||||
gUnknown_203F3DC->unk25_1 = 1;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[2] = gUnknown_203F3DC->unk16;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (gUnknown_203F3DC->unk16 > gSaveBlock2Ptr->berryCrush.berryCrushResults[3])
|
||||
{
|
||||
gUnknown_203F3DC->unk25_1 = 1;
|
||||
gSaveBlock2Ptr->berryCrush.berryCrushResults[3] = gUnknown_203F3DC->unk16;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
gUnknown_203F3DC->unk1C = gUnknown_203F3DC->unk68.as_four_players.unk00.unk00;
|
||||
if (GiveBerryPowder(gUnknown_203F3DC->unk1C))
|
||||
return;
|
||||
|
||||
gUnknown_203F3DC->unk25_0 = 1;
|
||||
}
|
||||
|
||||
static void sub_814BA6C(void)
|
||||
{
|
||||
TransferPlttBuffer();
|
||||
LoadOam();
|
||||
ProcessSpriteCopyRequests();
|
||||
}
|
||||
|
||||
static void sub_814BA80(void)
|
||||
{
|
||||
RunTasks();
|
||||
RunTextPrinters();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
}
|
||||
|
||||
static void sub_814BA98(u8 taskId)
|
||||
{
|
||||
if (gUnknown_203F3DC->unk4)
|
||||
gUnknown_203F3DC->unk4(gUnknown_203F3DC, gUnknown_203F3DC->unk36);
|
||||
|
||||
sub_814D9CC(gUnknown_203F3DC);
|
||||
}
|
||||
|
||||
void sub_814BABC(struct BerryCrushGame *arg0)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < arg0->unk9; i++)
|
||||
{
|
||||
StringCopy(PLAYER_UNK14(arg0, i), gLinkPlayers[i].name);
|
||||
arg0->unk68.as_five_players.unk1C[i].unk14[PLAYER_NAME_LENGTH] = EOS;
|
||||
}
|
||||
for (; i < 5; i++)
|
||||
{
|
||||
memset(PLAYER_UNK14(arg0, i), 1, PLAYER_NAME_LENGTH);
|
||||
arg0->unk68.as_five_players.unk1C[i].unk14[PLAYER_NAME_LENGTH] = EOS;
|
||||
}
|
||||
|
||||
switch (gSaveBlock2Ptr->optionsTextSpeed)
|
||||
{
|
||||
case OPTIONS_TEXT_SPEED_SLOW:
|
||||
arg0->unkB = 8;
|
||||
break;
|
||||
case OPTIONS_TEXT_SPEED_MID:
|
||||
arg0->unkB = 4;
|
||||
break;
|
||||
case OPTIONS_TEXT_SPEED_FAST:
|
||||
arg0->unkB = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
1480
src/berry_crush_2.c
Normal file
1480
src/berry_crush_2.c
Normal file
File diff suppressed because it is too large
Load Diff
1824
src/berry_crush_3.c
Normal file
1824
src/berry_crush_3.c
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -65,6 +65,10 @@ static const u8 sTilesPerImage[4][4] =
|
|||
}
|
||||
};
|
||||
|
||||
const u16 gUnknown_8479668[] = INCBIN_U16("graphics/misc/unk_8479688.gbapal");
|
||||
const u32 gUnknown_8479688[] = INCBIN_U32("graphics/misc/unk_8479688.4bpp.lz");
|
||||
const u32 gUnknown_8479748[] = INCBIN_U32("graphics/misc/unk_8479748.4bpp.lz");
|
||||
|
||||
// code
|
||||
bool32 DigitObjUtil_Init(u32 count)
|
||||
{
|
||||
|
|
@ -125,19 +129,19 @@ bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemp
|
|||
if (sOamWork->array[id].firstOamId == 0xFF)
|
||||
return FALSE;
|
||||
|
||||
sOamWork->array[id].tileStart = GetSpriteTileStartByTag(template->spriteSheet->tag);
|
||||
sOamWork->array[id].tileStart = GetSpriteTileStartByTag(template->spriteSheet.uncompressed->tag);
|
||||
if (sOamWork->array[id].tileStart == 0xFFFF)
|
||||
{
|
||||
if (template->spriteSheet->size != 0)
|
||||
if (template->spriteSheet.uncompressed->size != 0)
|
||||
{
|
||||
sOamWork->array[id].tileStart = LoadSpriteSheet(template->spriteSheet);
|
||||
sOamWork->array[id].tileStart = LoadSpriteSheet(template->spriteSheet.uncompressed);
|
||||
}
|
||||
else
|
||||
{
|
||||
struct CompressedSpriteSheet compObjectPic;
|
||||
|
||||
compObjectPic = *(struct CompressedSpriteSheet*)(template->spriteSheet);
|
||||
compObjectPic.size = GetDecompressedDataSize(template->spriteSheet->data);
|
||||
compObjectPic = *template->spriteSheet.compressed;
|
||||
compObjectPic.size = GetDecompressedDataSize((const void *)template->spriteSheet.compressed->data);
|
||||
sOamWork->array[id].tileStart = LoadCompressedSpriteSheet(&compObjectPic);
|
||||
}
|
||||
|
||||
|
|
@ -158,7 +162,7 @@ bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemp
|
|||
sOamWork->array[id].priority = template->priority;
|
||||
sOamWork->array[id].xDelta = template->xDelta;
|
||||
sOamWork->array[id].tilesPerImage = GetTilesPerImage(template->shape, template->size);
|
||||
sOamWork->array[id].tileTag = template->spriteSheet->tag;
|
||||
sOamWork->array[id].tileTag = template->spriteSheet.uncompressed->tag;
|
||||
sOamWork->array[id].palTag = template->spritePal->tag;
|
||||
sOamWork->array[id].isActive = TRUE;
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,128 @@
|
|||
/*static*/ void nullsub_98(void);
|
||||
|
||||
// const rom data
|
||||
|
||||
// Large chunk of data
|
||||
/*static*/ const struct BgTemplate sUnknown_847565C_Unref_Dupe[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 30,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 0,
|
||||
.baseTile = 0
|
||||
},
|
||||
{
|
||||
.bg = 1,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 12,
|
||||
.screenSize = 1,
|
||||
.paletteMode = 0,
|
||||
.priority = 1,
|
||||
.baseTile = 0
|
||||
},
|
||||
{
|
||||
.bg = 2,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 14,
|
||||
.screenSize = 1,
|
||||
.paletteMode = 0,
|
||||
.priority = 1,
|
||||
.baseTile = 0
|
||||
},
|
||||
{
|
||||
.bg = 3,
|
||||
.charBaseIndex = 3,
|
||||
.mapBaseIndex = 31,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0,
|
||||
.priority = 2,
|
||||
.baseTile = 0
|
||||
},
|
||||
};
|
||||
|
||||
// Unknown unreferenced data, feel free to remove.
|
||||
/*static*/ const u32 sUnused_Unref_Dupe[] = {255, 0};
|
||||
|
||||
/*static*/ const struct WindowTemplate sUnknown_8475674_Unref_Dupe[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 1,
|
||||
.width = 28,
|
||||
.height = 3,
|
||||
.paletteNum = 13,
|
||||
.baseBlock = 0x13,
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 6,
|
||||
.width = 28,
|
||||
.height = 13,
|
||||
.paletteNum = 13,
|
||||
.baseBlock = 0x67,
|
||||
}
|
||||
};
|
||||
|
||||
/*static*/ const struct WindowTemplate sUnknown_8475684_Unref_Dupe =
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 6,
|
||||
.width = 28,
|
||||
.height = 7,
|
||||
.paletteNum = 13,
|
||||
.baseBlock = 0x67,
|
||||
};
|
||||
|
||||
/*static*/ const struct WindowTemplate sUnknown_847568C_Unref_Dupe[] =
|
||||
{
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 1,
|
||||
.tilemapTop = 8,
|
||||
.width = 19,
|
||||
.height = 3,
|
||||
.paletteNum = 13,
|
||||
.baseBlock = 0x13,
|
||||
},
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 22,
|
||||
.tilemapTop = 7,
|
||||
.width = 6,
|
||||
.height = 4,
|
||||
.paletteNum = 13,
|
||||
.baseBlock = 0x4C,
|
||||
}
|
||||
};
|
||||
|
||||
/*static*/ const struct WindowTemplate sUnknown_847569C_Unref_Dupe =
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 4,
|
||||
.tilemapTop = 6,
|
||||
.width = 22,
|
||||
.height = 5,
|
||||
.paletteNum = 13,
|
||||
.baseBlock = 0x13,
|
||||
};
|
||||
|
||||
/*static*/ const struct WindowTemplate sUnknown_84756A4_Unref_Dupe =
|
||||
{
|
||||
.bg = 0,
|
||||
.tilemapLeft = 5,
|
||||
.tilemapTop = 8,
|
||||
.width = 19,
|
||||
.height = 3,
|
||||
.paletteNum = 13,
|
||||
.baseBlock = 0x13,
|
||||
};
|
||||
|
||||
/*static*/ const u8 sUnknown_8471F50[5][5][11] =
|
||||
{
|
||||
{
|
||||
|
|
|
|||
|
|
@ -766,7 +766,7 @@ static void sub_814A9C8(void)
|
|||
ptr->xDelta = 8;
|
||||
ptr->x = 108;
|
||||
ptr->y = 6;
|
||||
ptr->spriteSheet = (void*) &gUnknown_846D960;
|
||||
ptr->spriteSheet.compressed = &gUnknown_846D960;
|
||||
ptr->spritePal = &gUnknown_846D968;
|
||||
|
||||
DigitObjUtil_Init(2);
|
||||
|
|
|
|||
|
|
@ -447,10 +447,10 @@ gUnknown_203B170: @ 203B170
|
|||
.include "src/pokemon_jump_2.o"
|
||||
.align 2
|
||||
.include "src/pokemon_jump_4.o"
|
||||
.align 2
|
||||
.include "src/berry_crush.o"
|
||||
|
||||
gUnknown_203F3DC: @ 203F3DC
|
||||
.space 0x4
|
||||
|
||||
.align 2
|
||||
gUnknown_203F3E0: @ 203F3E0
|
||||
.space 0x4
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user