mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-04-26 08:49:23 -05:00
Decompile sub_49D0
This commit is contained in:
parent
80af7bd81e
commit
b08fc81a3c
142
asm/pokedex.s
142
asm/pokedex.s
|
|
@ -4,148 +4,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_49D0
|
||||
sub_49D0: @ 0x080049D0
|
||||
push {r4, r5, lr}
|
||||
bl sub_599C
|
||||
ldr r5, _08004A08 @ =gMain
|
||||
ldrh r1, [r5, #0x18]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08004A1C
|
||||
movs r0, #0x66
|
||||
bl m4aSongNumStart
|
||||
ldr r0, _08004A0C @ =gUnknown_0202BEC4
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
ldr r0, _08004A10 @ =gUnknown_0202BEFC
|
||||
strb r1, [r0]
|
||||
ldr r1, _08004A14 @ =gUnknown_0202BF04
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
ldr r0, _08004A18 @ =gUnknown_0202A588
|
||||
movs r4, #1
|
||||
strh r4, [r0]
|
||||
bl sub_2568
|
||||
strb r4, [r5, #3]
|
||||
b _08004AF2
|
||||
.align 2, 0
|
||||
_08004A08: .4byte gMain
|
||||
_08004A0C: .4byte gUnknown_0202BEC4
|
||||
_08004A10: .4byte gUnknown_0202BEFC
|
||||
_08004A14: .4byte gUnknown_0202BF04
|
||||
_08004A18: .4byte gUnknown_0202A588
|
||||
_08004A1C:
|
||||
ldr r4, _08004A7C @ =gUnknown_0202ADD0
|
||||
ldr r0, _08004A80 @ =gUnknown_0202BEC8
|
||||
ldr r1, _08004A84 @ =gUnknown_0202C5F0
|
||||
ldr r2, _08004A88 @ =gUnknown_0201A4D0
|
||||
bl sub_1B04
|
||||
str r0, [r4]
|
||||
ldr r1, _08004A8C @ =gUnknown_0202BDF0
|
||||
movs r3, #3
|
||||
ands r3, r0
|
||||
str r3, [r1]
|
||||
ldr r2, _08004A90 @ =gUnknown_0201C1AC
|
||||
movs r1, #0x1c
|
||||
ands r1, r0
|
||||
lsrs r1, r1, #2
|
||||
strb r1, [r2]
|
||||
ldr r2, _08004A94 @ =gUnknown_0202ADDC
|
||||
movs r1, #0xe0
|
||||
lsls r1, r1, #4
|
||||
ands r1, r0
|
||||
lsrs r1, r1, #9
|
||||
strb r1, [r2]
|
||||
movs r1, #0x40
|
||||
ands r1, r0
|
||||
cmp r1, #0
|
||||
beq _08004AF2
|
||||
cmp r3, #1
|
||||
bhi _08004AF2
|
||||
bl sub_5EC8
|
||||
ldr r0, [r4]
|
||||
movs r1, #0x80
|
||||
lsls r1, r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _08004AAC
|
||||
bl sub_5EA4
|
||||
lsls r0, r0, #0x10
|
||||
asrs r1, r0, #0x10
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bne _08004A98
|
||||
movs r0, #9
|
||||
strb r0, [r5, #3]
|
||||
b _08004AAC
|
||||
.align 2, 0
|
||||
_08004A7C: .4byte gUnknown_0202ADD0
|
||||
_08004A80: .4byte gUnknown_0202BEC8
|
||||
_08004A84: .4byte gUnknown_0202C5F0
|
||||
_08004A88: .4byte gUnknown_0201A4D0
|
||||
_08004A8C: .4byte gUnknown_0202BDF0
|
||||
_08004A90: .4byte gUnknown_0201C1AC
|
||||
_08004A94: .4byte gUnknown_0202ADDC
|
||||
_08004A98:
|
||||
cmp r1, #1
|
||||
bne _08004AAC
|
||||
ldr r0, _08004AF8 @ =gUnknown_0202BEFC
|
||||
movs r1, #2
|
||||
strb r1, [r0]
|
||||
movs r0, #8
|
||||
strb r0, [r5, #3]
|
||||
movs r0, #0x8a
|
||||
bl m4aSongNumStart
|
||||
_08004AAC:
|
||||
ldr r1, _08004AFC @ =gUnknown_0201A510
|
||||
ldrh r0, [r1]
|
||||
adds r0, #1
|
||||
strh r0, [r1]
|
||||
ldr r0, _08004B00 @ =gUnknown_0202ADD0
|
||||
ldr r0, [r0]
|
||||
movs r1, #0xfe
|
||||
lsls r1, r1, #0xf
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08004AF2
|
||||
ldr r0, _08004B04 @ =gUnknown_0201B128
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
movs r0, #1
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bne _08004AF2
|
||||
ldr r1, _08004B08 @ =gUnknown_0201A444
|
||||
ldrh r0, [r1]
|
||||
adds r0, #1
|
||||
strh r0, [r1]
|
||||
lsls r0, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xb4
|
||||
ble _08004AF2
|
||||
ldr r1, _08004AF8 @ =gUnknown_0202BEFC
|
||||
movs r0, #2
|
||||
strb r0, [r1]
|
||||
ldr r1, _08004B0C @ =gMain
|
||||
movs r0, #8
|
||||
strb r0, [r1, #3]
|
||||
movs r0, #0x8a
|
||||
bl m4aSongNumStart
|
||||
_08004AF2:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08004AF8: .4byte gUnknown_0202BEFC
|
||||
_08004AFC: .4byte gUnknown_0201A510
|
||||
_08004B00: .4byte gUnknown_0202ADD0
|
||||
_08004B04: .4byte gUnknown_0201B128
|
||||
_08004B08: .4byte gUnknown_0201A444
|
||||
_08004B0C: .4byte gMain
|
||||
|
||||
thumb_func_start sub_4B10
|
||||
sub_4B10: @ 0x08004B10
|
||||
ldr r1, _08004B2C @ =gUnknown_0201A444
|
||||
|
|
|
|||
|
|
@ -798,7 +798,7 @@ extern void sub_19B4(void);
|
|||
//extern ? sub_1A78();
|
||||
//extern ? nullsub_15();
|
||||
extern void sub_1AA4(void);
|
||||
//extern ? sub_1B04();
|
||||
extern s32 sub_1B04(u32 *, u32 *, u32 *);
|
||||
//extern ? sub_1C5C();
|
||||
//extern ? sub_1C84();
|
||||
//extern ? sub_1CD4();
|
||||
|
|
|
|||
|
|
@ -247,4 +247,15 @@ extern u8 gUnknown_0201B124;
|
|||
|
||||
extern struct PokemonSpecies gUnknown_086A3700[];
|
||||
|
||||
extern u32 gUnknown_0202ADD0;
|
||||
extern u32 gUnknown_0202BEC8;
|
||||
extern u32 gUnknown_0202C5F0;
|
||||
extern u32 gUnknown_0201A4D0;
|
||||
extern u32 gUnknown_0202BDF0;
|
||||
extern u8 gUnknown_0201C1AC;
|
||||
extern u8 gUnknown_0202ADDC;
|
||||
extern u16 gUnknown_0201A510;
|
||||
extern s16 gUnknown_0201A444;
|
||||
extern s8 gUnknown_0201B128;
|
||||
|
||||
#endif // GUARD_VARIABLES_H
|
||||
|
|
|
|||
|
|
@ -14,6 +14,8 @@ void sub_4D74(void);
|
|||
void sub_4FC8(void);
|
||||
void sub_5064(void);
|
||||
void sub_51CC(void);
|
||||
s16 sub_5EA4(void); // TODO Pretty sure it's s16, but could be u16
|
||||
void sub_5EC8(void);
|
||||
void sub_70E0(s16, s32);
|
||||
void sub_88E4(void);
|
||||
|
||||
|
|
@ -520,3 +522,61 @@ void sub_49A8(void)
|
|||
sub_599C();
|
||||
gMain.subState = 7;
|
||||
}
|
||||
|
||||
void sub_49D0(void)
|
||||
{
|
||||
s16 var0;
|
||||
|
||||
sub_599C();
|
||||
|
||||
if (gMain.newKeys & B_BUTTON)
|
||||
{
|
||||
m4aSongNumStart(0x66);
|
||||
gUnknown_0202BEC4 = 0;
|
||||
gUnknown_0202BEFC = 0;
|
||||
gUnknown_0202BF04 = 1;
|
||||
gUnknown_0202A588 = 1;
|
||||
sub_2568();
|
||||
gMain.subState = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_0202ADD0 = sub_1B04(&gUnknown_0202BEC8, &gUnknown_0202C5F0, &gUnknown_0201A4D0);
|
||||
gUnknown_0202BDF0 = gUnknown_0202ADD0 & 3;
|
||||
gUnknown_0201C1AC = (gUnknown_0202ADD0 & 0x1C) >> 2;
|
||||
gUnknown_0202ADDC = (gUnknown_0202ADD0 & 0xe00) >> 9;
|
||||
|
||||
if ((gUnknown_0202ADD0 & 0x40) && (gUnknown_0202BDF0 < 2))
|
||||
{
|
||||
sub_5EC8();
|
||||
|
||||
if (!(gUnknown_0202ADD0 & 0x100))
|
||||
{
|
||||
var0 = sub_5EA4();
|
||||
if (var0 == -1)
|
||||
{
|
||||
gMain.subState = 9;
|
||||
}
|
||||
else if (var0 == 1)
|
||||
{
|
||||
gUnknown_0202BEFC = 2;
|
||||
gMain.subState = 8;
|
||||
m4aSongNumStart(0x8A);
|
||||
}
|
||||
}
|
||||
|
||||
gUnknown_0201A510++;
|
||||
|
||||
if ((gUnknown_0202ADD0 & 0x7f0000) && (gUnknown_0201B128 == -1))
|
||||
{
|
||||
gUnknown_0201A444++;
|
||||
if (0xB4 < gUnknown_0201A444)
|
||||
{
|
||||
gUnknown_0202BEFC = 2;
|
||||
gMain.subState = 8;
|
||||
m4aSongNumStart(0x8a);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
#include "functions.h"
|
||||
|
||||
extern u32 gUnknown_0202ADD0;
|
||||
extern u16 gUnknown_0201A444;
|
||||
extern s16 gUnknown_0201A444;
|
||||
extern u32 gUnknown_0202BDF0;
|
||||
extern u8 gUnknown_0201C1AC;
|
||||
extern u8 gUnknown_0202ADDC;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user