Merge pull request #19 from WhenGryphonsFly/decomp-19

Match some functions
This commit is contained in:
WhenGryphonsFly 2023-06-16 20:07:05 -05:00 committed by GitHub
commit 40b02e10ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 262 additions and 411 deletions

View File

@ -4,370 +4,6 @@
.text
thumb_func_start sub_326F4
sub_326F4: @ 0x080326F4
push {r4, lr}
ldr r4, _08032760 @ =gUnknown_020314E0
ldr r0, [r4]
ldr r1, _08032764 @ =0x0000073D
adds r0, r0, r1
movs r2, #0
movs r1, #2
strb r1, [r0]
ldr r0, [r4]
ldr r3, _08032768 @ =0x000001E5
adds r0, r0, r3
strb r2, [r0]
ldr r0, [r4]
movs r2, #0xf3
lsls r2, r2, #1
adds r1, r0, r2
movs r0, #1
strb r0, [r1]
bl sub_1F2A4
bl sub_21B0C
bl sub_1F59C
bl sub_300D8
bl sub_30178
ldr r2, [r4]
movs r3, #0xec
lsls r3, r3, #1
adds r0, r2, r3
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0]
adds r3, #2
adds r0, r2, r3
strh r1, [r0]
bl sub_30480
bl sub_304C8
bl sub_31144
bl sub_313A0
bl sub_2E6AC
bl sub_31B30
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08032760: .4byte gUnknown_020314E0
_08032764: .4byte 0x0000073D
_08032768: .4byte 0x000001E5
thumb_func_start sub_3276C
sub_3276C: @ 0x0803276C
push {lr}
bl sub_19B90
bl sub_327C0
ldr r0, _080327B0 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _08032782
bl sub_328C8
_08032782:
bl sub_32DF8
ldr r0, _080327B4 @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xa7
lsls r2, r2, #2
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _080327AC
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080327AC
ldr r0, _080327B8 @ =gMPlayInfo_BGM
ldr r1, _080327BC @ =0x0000FFFF
movs r2, #0x80
lsls r2, r2, #1
bl m4aMPlayVolumeControl
_080327AC:
pop {r0}
bx r0
.align 2, 0
_080327B0: .4byte gMain
_080327B4: .4byte gUnknown_020314E0
_080327B8: .4byte gMPlayInfo_BGM
_080327BC: .4byte 0x0000FFFF
thumb_func_start sub_327C0
sub_327C0: @ 0x080327C0
push {r4, lr}
bl sub_4F814
bl sub_1A0F4
bl sub_2CA9C
ldr r4, _0803280C @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x59
bgt _080327E4
bl sub_304C8
bl sub_31498
_080327E4:
ldr r2, [r4]
movs r0, #0x13
ldrsb r0, [r2, r0]
cmp r0, #2
bgt _08032814
movs r1, #0xd1
lsls r1, r1, #2
adds r0, r2, r1
ldr r0, [r0]
ldr r1, _08032810 @ =0x00FFFF00
ands r0, r1
movs r1, #0xc0
lsls r1, r1, #2
cmp r0, r1
bne _08032814
movs r0, #0xe5
lsls r0, r0, #3
adds r1, r2, r0
movs r0, #1
b _0803281C
.align 2, 0
_0803280C: .4byte gUnknown_020314E0
_08032810: .4byte 0x00FFFF00
_08032814:
movs r0, #0xe5
lsls r0, r0, #3
adds r1, r2, r0
movs r0, #0
_0803281C:
strb r0, [r1]
ldr r4, _080328C4 @ =gUnknown_020314E0
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x95
bgt _08032834
bl sub_2E6AC
bl sub_313A0
_08032834:
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xc3
bgt _08032848
bl sub_30178
bl sub_2F140
_08032848:
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xc9
bgt _08032858
bl sub_2FCD0
_08032858:
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xdb
bgt _08032868
bl sub_1F59C
_08032868:
bl sub_308DC
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x76
ble _08032880
bl sub_2F504
bl sub_30EB4
_08032880:
bl sub_2CE80
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xa8
ble _08032894
bl sub_2D104
_08032894:
bl sub_203CC
bl sub_21B0C
bl sub_1D128
bl sub_31B30
ldr r0, [r4]
movs r1, #0xca
lsls r1, r1, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _080328BA
bl sub_225F0
_080328BA:
bl sub_472E4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080328C4: .4byte gUnknown_020314E0
thumb_func_start sub_328C8
sub_328C8: @ 0x080328C8
push {lr}
bl sub_300D8
bl sub_32968
bl sub_1F2A4
ldr r0, _0803290C @ =gUnknown_020314E0
ldr r0, [r0]
movs r2, #0xc0
lsls r2, r2, #3
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _080328EA
subs r0, #1
strh r0, [r1]
_080328EA:
bl sub_2F26C
bl sub_2E67C
bl sub_31144
ldr r0, _08032910 @ =gMain
ldrb r1, [r0, #0xf]
movs r0, #0x20
ands r0, r1
cmp r0, #0
bne _08032906
bl sub_2F79C
_08032906:
pop {r0}
bx r0
.align 2, 0
_0803290C: .4byte gUnknown_020314E0
_08032910: .4byte gMain
thumb_func_start sub_32914
sub_32914: @ 0x08032914
push {lr}
ldr r0, _08032938 @ =gMain
ldrb r0, [r0, #0xf]
cmp r0, #0
bne _0803295E
ldr r0, _0803293C @ =gUnknown_020314E0
ldr r0, [r0]
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
beq _0803294C
cmp r0, #3
bgt _08032940
cmp r0, #1
beq _08032946
b _08032956
.align 2, 0
_08032938: .4byte gMain
_0803293C: .4byte gUnknown_020314E0
_08032940:
cmp r0, #4
beq _08032952
b _08032956
_08032946:
bl sub_32B74
b _08032956
_0803294C:
bl sub_329B0
b _08032956
_08032952:
bl sub_1C560
_08032956:
ldr r0, _08032964 @ =gUnknown_020314E0
ldr r1, [r0]
movs r0, #0x3c
strh r0, [r1, #0x26]
_0803295E:
pop {r0}
bx r0
.align 2, 0
_08032964: .4byte gUnknown_020314E0
thumb_func_start sub_32968
sub_32968: @ 0x08032968
push {lr}
ldr r2, _08032990 @ =gUnknown_020314E0
ldr r1, [r2]
ldrh r0, [r1, #0x26]
cmp r0, #0
beq _08032978
subs r0, #1
strh r0, [r1, #0x26]
_08032978:
ldr r0, [r2]
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
beq _080329A0
cmp r0, #3
bgt _08032994
cmp r0, #1
beq _0803299A
b _080329AA
.align 2, 0
_08032990: .4byte gUnknown_020314E0
_08032994:
cmp r0, #4
beq _080329A6
b _080329AA
_0803299A:
bl sub_32BE4
b _080329AA
_080329A0:
bl sub_329F4
b _080329AA
_080329A6:
bl sub_1C5AC
_080329AA:
pop {r0}
bx r0
thumb_func_start sub_329B0
sub_329B0: @ 0x080329B0
push {r4, lr}
ldr r0, _080329E4 @ =gUnknown_020314E0
ldr r2, [r0]
movs r3, #0
movs r0, #0xb4
strh r0, [r2, #0x28]
movs r4, #0xdd
lsls r4, r4, #1
adds r1, r2, r4
strh r0, [r1]
ldr r0, _080329E8 @ =0x0007A120
str r0, [r2, #0x3c]
ldr r0, _080329EC @ =gMain
ldrh r1, [r0, #0x38]
movs r1, #0xce
strh r1, [r0, #0x38]
ldrh r1, [r0, #0x3c]
strh r3, [r0, #0x3c]
ldr r0, _080329F0 @ =0x000005F7
adds r2, r2, r0
movs r0, #1
strb r0, [r2]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080329E4: .4byte gUnknown_020314E0
_080329E8: .4byte 0x0007A120
_080329EC: .4byte gMain
_080329F0: .4byte 0x000005F7
thumb_func_start sub_329F4
sub_329F4: @ 0x080329F4
push {r4, r5, r6, r7, lr}

View File

@ -453,14 +453,14 @@ extern void ClearSomeArray(void);
//extern ? sub_19A20();
//extern ? sub_19B10();
//extern ? sub_19B64();
//extern ? sub_19B90();
extern void sub_19B90();
//extern ? sub_19C04();
//extern ? sub_19CC8();
//extern ? sub_19D04();
//extern ? sub_19E10();
//extern ? sub_19F70();
//extern ? sub_19FA0();
//extern ? sub_1A0F4();
extern void sub_1A0F4();
//extern ? sub_1A2C0();
//extern ? sub_1A98C();
//extern ? sub_1A9E8();
@ -473,11 +473,11 @@ extern void ClearSomeArray(void);
//extern ? sub_1B140();
//extern ? sub_1BB68();
//extern ? sub_1C544();
//extern ? sub_1C560();
//extern ? sub_1C5AC();
extern void sub_1C560();
extern void sub_1C5AC();
//extern ? sub_1C73C();
//extern ? sub_1C7F4();
//extern ? sub_1D128();
extern void sub_1D128();
//extern ? sub_1D4D0();
//extern ? sub_1D5D8();
//extern ? sub_1DA74();
@ -486,14 +486,14 @@ extern void ClearSomeArray(void);
//extern ? sub_1DDDC();
//extern ? sub_1EC48();
//extern ? sub_1F158();
//extern ? sub_1F2A4();
//extern ? sub_1F59C();
extern void sub_1F2A4();
extern void sub_1F59C();
//extern ? sub_1F698();
//extern ? sub_1FA48();
//extern ? sub_1FBC4();
//extern ? sub_1FF0C();
//extern ? sub_201B8();
//extern ? sub_203CC();
extern void sub_203CC();
//extern ? sub_20EC0();
//extern ? sub_21238();
//extern ? sub_21300();
@ -503,11 +503,11 @@ extern void ClearSomeArray(void);
//extern ? sub_216FC();
//extern ? sub_219A8();
//extern ? sub_219EC();
//extern ? sub_21B0C();
extern void sub_21B0C();
//extern ? sub_21D78();
//extern ? sub_21FBC();
//extern ? sub_225F0();
//extern ? sub_22978();
extern void sub_225F0();
extern void sub_22978();
//extern ? sub_22A30();
//extern ? sub_22C6C();
//extern ? sub_22D54();
@ -561,30 +561,30 @@ extern void ClearSomeArray(void);
//extern ? sub_2C518();
//extern ? sub_2C538();
//extern ? sub_2C9A4();
//extern ? sub_2CA9C();
extern void sub_2CA9C();
//extern ? sub_2CD98();
//extern ? sub_2CE80();
//extern ? sub_2D104();
extern void sub_2CE80();
extern void sub_2D104();
//extern ? sub_2D204();
//extern ? sub_2DE54();
//extern ? sub_2E094();
//extern ? sub_2E67C();
//extern ? sub_2E6AC();
//extern ? sub_2F140();
//extern ? sub_2F26C();
//extern ? sub_2F504();
//extern ? sub_2F79C();
//extern ? sub_2FCD0();
//extern ? sub_300D8();
//extern ? sub_30178();
//extern ? sub_30480();
//extern ? sub_304C8();
//extern ? sub_308DC();
//extern ? sub_30EB4();
//extern ? sub_31144();
//extern ? sub_313A0();
//extern ? sub_31498();
//extern ? sub_31B30();
extern void sub_2E67C();
extern void sub_2E6AC();
extern void sub_2F140();
extern void sub_2F26C();
extern void sub_2F504();
extern void sub_2F79C();
extern void sub_2FCD0();
extern void sub_300D8();
extern void sub_30178();
extern void sub_30480();
extern void sub_304C8();
extern void sub_308DC();
extern void sub_30EB4();
extern void sub_31144();
extern void sub_313A0();
extern void sub_31498();
extern void sub_31B30();
//extern ? sub_31BE8();
//extern ? sub_31CF8();
//extern ? sub_31F6C();
@ -595,15 +595,15 @@ extern void ClearSomeArray(void);
//extern ? sub_325E0();
//extern ? sub_326F4();
//extern ? sub_3276C();
//extern ? sub_327C0();
//extern ? sub_328C8();
extern void sub_327C0();
extern void sub_328C8();
//extern ? sub_32914();
//extern ? sub_32968();
//extern ? sub_329B0();
//extern ? sub_329F4();
//extern ? sub_32B74();
//extern ? sub_32BE4();
//extern ? sub_32DF8();
extern void sub_32968();
extern void sub_329B0();
extern void sub_329F4();
extern void sub_32B74();
extern void sub_32BE4();
extern void sub_32DF8();
//extern ? sub_32F3C();
//extern ? sub_33130();
//extern ? sub_3342C();
@ -661,7 +661,7 @@ extern void ClearSomeArray(void);
//extern ? sub_47100();
//extern ? sub_47110();
//extern ? sub_47160();
//extern ? sub_472E4();
extern void sub_472E4();
//extern ? sub_47344();
//extern ? sub_474F4();
//extern ? sub_47670();
@ -733,7 +733,7 @@ extern void ClearSomeArray(void);
//extern ? sub_4F30C();
//extern ? sub_4F4B4();
//extern ? sub_4F660();
//extern ? sub_4F814();
extern void sub_4F814();
//extern ? sub_4F95C();
//extern ? sub_4F9F0();
//extern ? sub_4FAC0();

View File

@ -81,22 +81,52 @@ enum
struct PinballGame
{
/*0x000*/ u8 filler0[0x35];
/*0x000*/ u8 filler0[0x13];
/*0x013*/ s8 unk13;
/*0x014*/ u8 filler14[0x11];
/*0x025*/ s8 unk25;
/*0x026*/ u16 unk26;
/*0x028*/ u16 unk28;
/*0x02A*/ u8 filler2A[0xB];
/*0x035*/ s8 area;
/*0x036*/ u8 filler36[0xF5];
/*0x036*/ u8 filler36[0x6];
/*0x03C*/ u32 unk3C;
/*0x040*/ u8 filler40[0x28];
/*0x068*/ s16 unk68;
/*0x06A*/ u8 filler6A[0xC1];
/*0x12B*/ s8 unk12B;
/*0x12C*/ s8 unk12C;
/*0x12D*/ u8 filler12D;
/*0x12E*/ s16 unk12E;
/*0x130*/ s16 unk130[8];
/*0x140*/ u8 filler140[0x458];
/*0x598*/ u16 unk598; // Current catch/hatch mode species?
/*0x140*/ u8 filler140[0x54];
/*0x194*/ s8 unk194;
/*0x195*/ u8 filler195[0x25];
/*0x1BA*/ u16 unk1BA;
/*0x1BC*/ u8 filler1BC[0x1C];
/*0x1D8*/ u16 unk1D8;
/*0x1DA*/ u16 unk1DA;
/*0x1DC*/ u8 filler1DC[0x9];
/*0x1E5*/ u8 unk1E5;
/*0x1E6*/ u8 unk1E6;
/*0x1E7*/ u8 filler1E7[0xB5];
/*0x29C*/ u16 unk29C;
/*0x29E*/ u8 filler29E[0xA6];
/*0x344*/ u32 unk344;
/*0x348*/ u8 filler348[0x250];
/*0x598*/ u16 unk598; // Current catch/hatch mode species? Is it evo mode as well?
/*0x59A*/ u8 filler59A[0x2];
/*0x59C*/ u16 unk59C; // Previous catch mode species?
/*0x59E*/ u16 unk59E; // Previous hatch mode species?
/*0x5A0*/ u8 filler5A0[0x50];
/*0x5F0*/ u16 unk5F0;
/*0x5F2*/ u8 filler5F2[0x14B];
/*0x5F2*/ u8 filler5F2[0x5];
/*0x5F7*/ u8 unk5F7;
/*0x5F8*/ u8 filler5F8[0x8];
/*0x600*/ u16 unk600;
/*0x602*/ u8 filler602[0x126];
/*0x728*/ u8 unk728; // TODO: unknown type
/*0x729*/ u8 filler729[0x14];
/*0x73D*/ s8 unk73D;
};

View File

@ -1,6 +1,8 @@
#include "global.h"
#include "main.h"
#include "constants/species.h"
#include "functions.h"
#include "m4a.h"
#include "main.h"
extern const u16 gWildMonLocations[][2][8];
extern const u16 gUnknown_086A4A38[2][26];
@ -329,3 +331,186 @@ void sub_325E0(void)
gUnknown_020314E0->unk59E = gUnknown_020314E0->unk598;
}
void sub_326F4(void)
{
gUnknown_020314E0->unk73D = 2;
gUnknown_020314E0->unk1E5 = 0;
gUnknown_020314E0->unk1E6 = 1;
sub_1F2A4();
sub_21B0C();
sub_1F59C();
sub_300D8();
sub_30178();
gUnknown_020314E0->unk1D8 = 0x100;
gUnknown_020314E0->unk1DA = 0x100;
sub_30480();
sub_304C8();
sub_31144();
sub_313A0();
sub_2E6AC();
sub_31B30();
}
void sub_3276C(void)
{
sub_19B90();
sub_327C0();
if (!gMain.unkF)
sub_328C8();
sub_32DF8();
if (gUnknown_020314E0->unk29C)
{
// TODO: is this a fake match? Seems weird.
gUnknown_020314E0->unk29C--;
if (gUnknown_020314E0->unk29C == 0)
m4aMPlayVolumeControl(&gMPlayInfo_BGM,0xffff,0x100);
}
}
void sub_327C0(void)
{
s32 temp;
sub_4F814();
sub_1A0F4();
sub_2CA9C();
if (gUnknown_020314E0->unk68 < 0x5a)
{
sub_304C8();
sub_31498();
}
// TODO: if this is a fake match, it will take a braver one than I to fix it.
if (gUnknown_020314E0->unk13 < 3)
{
if ((gUnknown_020314E0->unk344 & 0xFFFF00) == 0x300)
{
gUnknown_020314E0->unk728 = 1;
}
else
{
gUnknown_020314E0->unk728 = 0;
}
}
else
{
gUnknown_020314E0->unk728 = 0;
}
if (gUnknown_020314E0->unk68 < 0x96)
{
sub_2E6AC();
sub_313A0();
}
if (gUnknown_020314E0->unk68 < 0xC4)
{
sub_30178();
sub_2F140();
}
if (gUnknown_020314E0->unk68 < 0xCA)
{
sub_2FCD0();
}
if (gUnknown_020314E0->unk68 < 0xDC)
{
sub_1F59C();
}
sub_308DC();
if (0x76 < gUnknown_020314E0->unk68)
{
sub_2F504();
sub_30EB4();
}
sub_2CE80();
if (0xA8 < gUnknown_020314E0->unk68)
sub_2D104();
sub_203CC();
sub_21B0C();
sub_1D128();
sub_31B30();
if (gUnknown_020314E0->unk194 != 0) // TODO: unsure of style here. It's not a bool8 (unless bool8 == s8), so I'm making the != 0 explicit for now.
sub_225F0();
sub_472E4();
}
void sub_328C8(void)
{
sub_300D8();
sub_32968();
sub_1F2A4();
if (gUnknown_020314E0->unk600 != 0)
gUnknown_020314E0->unk600--;
sub_2F26C();
sub_2E67C();
sub_31144();
if (!(gMain.unkF & 0x20))
sub_2F79C();
}
void sub_32914(void)
{
if (gMain.unkF == 0)
{
switch (gUnknown_020314E0->unk25)
{
case 1:
sub_32B74();
break;
case 3:
sub_329B0();
break;
case 4:
sub_1C560();
break;
}
gUnknown_020314E0->unk26 = 0x3C;
}
}
void sub_32968(void)
{
if (gUnknown_020314E0->unk26 != 0)
gUnknown_020314E0->unk26--;
switch (gUnknown_020314E0->unk25)
{
case 1:
sub_32BE4();
break;
case 3:
sub_329F4();
break;
case 4:
sub_1C5AC();
break;
}
}
void sub_329B0(void)
{
gUnknown_020314E0->unk28 = 0xB4;
gUnknown_020314E0->unk1BA = 0xB4;
gUnknown_020314E0->unk3C = 500000;
gMain.blendControl = 0xCE;
gMain.blendBrightness = 0;
gUnknown_020314E0->unk5F7 = 1;
}