mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
* Decompile sub_176B0 * removed exp object
This commit is contained in:
parent
a1ddcdc356
commit
32cd26024c
238
asm/rom_11B9C.s
238
asm/rom_11B9C.s
|
|
@ -6264,243 +6264,7 @@ _08017628: .4byte 0x000003AB
|
|||
_0801762C: .4byte 0x000003DA
|
||||
_08017630: .4byte 0x000003A2
|
||||
|
||||
.section .text176B0
|
||||
|
||||
thumb_func_start sub_176B0
|
||||
sub_176B0: @ 0x080176B0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #8
|
||||
mov r8, r0
|
||||
mov sl, r1
|
||||
add r2, sp, #4
|
||||
movs r1, #0
|
||||
strh r1, [r2]
|
||||
ldr r0, _080177B0 @ =gCurrentPinballGame
|
||||
ldr r0, [r0]
|
||||
mov sb, r0
|
||||
ldr r0, _080177B4 @ =0x0000132C
|
||||
add r0, sb
|
||||
ldr r0, [r0]
|
||||
strh r1, [r0, #4]
|
||||
mov r0, r8
|
||||
movs r1, #0
|
||||
ldrsh r4, [r0, r1]
|
||||
adds r0, r4, #0
|
||||
cmp r4, #0
|
||||
bge _080176E2
|
||||
adds r0, r4, #7
|
||||
_080176E2:
|
||||
asrs r1, r0, #3
|
||||
lsls r0, r1, #0x10
|
||||
lsrs r0, r0, #0x10
|
||||
ldr r2, _080177B8 @ =0xFFFF0000
|
||||
mov ip, r2
|
||||
ands r5, r2
|
||||
orrs r5, r0
|
||||
mov r0, r8
|
||||
movs r2, #2
|
||||
ldrsh r3, [r0, r2]
|
||||
adds r0, r3, #0
|
||||
cmp r3, #0
|
||||
bge _080176FE
|
||||
adds r0, r3, #7
|
||||
_080176FE:
|
||||
asrs r0, r0, #3
|
||||
lsls r2, r0, #0x10
|
||||
ldr r7, _080177BC @ =0x0000FFFF
|
||||
ands r5, r7
|
||||
lsls r1, r1, #3
|
||||
subs r1, r4, r1
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r1, r1, #0x10
|
||||
mov r4, ip
|
||||
ands r6, r4
|
||||
orrs r6, r1
|
||||
lsls r0, r0, #3
|
||||
subs r0, r3, r0
|
||||
lsls r0, r0, #0x10
|
||||
ands r6, r7
|
||||
orrs r6, r0
|
||||
orrs r5, r2
|
||||
asrs r4, r2, #0x10
|
||||
adds r2, r4, #0
|
||||
cmp r4, #0
|
||||
bge _0801772A
|
||||
adds r2, #0x3f
|
||||
_0801772A:
|
||||
asrs r2, r2, #6
|
||||
mov r0, sb
|
||||
adds r0, #0x24
|
||||
movs r3, #0
|
||||
ldrsb r3, [r0, r3]
|
||||
lsls r1, r2, #6
|
||||
subs r1, r4, r1
|
||||
lsls r1, r1, #0x10
|
||||
ands r5, r7
|
||||
ldr r0, _080177C0 @ =gUnknown_02031520
|
||||
mov ip, r0
|
||||
adds r3, r3, r2
|
||||
lsls r3, r3, #2
|
||||
mov r2, ip
|
||||
adds r2, #0x38
|
||||
adds r2, r3, r2
|
||||
lsls r0, r5, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
asrs r1, r1, #0xa
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r2]
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r0
|
||||
mov r4, ip
|
||||
adds r4, #0x48
|
||||
adds r4, r3, r4
|
||||
movs r0, #0
|
||||
ldrsh r2, [r1, r0]
|
||||
asrs r1, r6, #0x10
|
||||
lsls r0, r6, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
lsls r1, r1, #3
|
||||
lsls r2, r2, #6
|
||||
adds r1, r1, r2
|
||||
adds r1, r1, r0
|
||||
ldr r2, [r4]
|
||||
lsls r0, r1, #1
|
||||
adds r0, r0, r2
|
||||
ldrh r2, [r0]
|
||||
mov r0, sp
|
||||
strh r2, [r0]
|
||||
mov r0, ip
|
||||
adds r0, #0x58
|
||||
adds r3, r3, r0
|
||||
ldr r0, [r3]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
mov r4, sp
|
||||
adds r4, #2
|
||||
strb r0, [r4]
|
||||
mov r0, r8
|
||||
mov r1, sp
|
||||
adds r2, r4, #0
|
||||
bl sub_17898
|
||||
ldrb r0, [r4]
|
||||
movs r3, #0xf
|
||||
ands r3, r0
|
||||
lsrs r5, r0, #4
|
||||
subs r0, r3, #1
|
||||
cmp r0, #5
|
||||
bhi _08017876
|
||||
lsls r0, r0, #2
|
||||
ldr r1, _080177C4 @ =_080177C8
|
||||
adds r0, r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080177B0: .4byte gCurrentPinballGame
|
||||
_080177B4: .4byte 0x0000132C
|
||||
_080177B8: .4byte 0xFFFF0000
|
||||
_080177BC: .4byte 0x0000FFFF
|
||||
_080177C0: .4byte gUnknown_02031520
|
||||
_080177C4: .4byte _080177C8
|
||||
_080177C8: @ jump table
|
||||
.4byte _080177E0 @ case 0
|
||||
.4byte _08017804 @ case 1
|
||||
.4byte _08017804 @ case 2
|
||||
.4byte _080177E0 @ case 3
|
||||
.4byte _08017874 @ case 4
|
||||
.4byte _080177E0 @ case 5
|
||||
_080177E0:
|
||||
ldr r2, _08017800 @ =gCurrentPinballGame
|
||||
ldr r0, [r2]
|
||||
subs r1, r3, #1
|
||||
adds r0, #0x23
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
adds r0, #0x22
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
mov r0, sp
|
||||
ldrh r0, [r0]
|
||||
mov r2, sl
|
||||
strh r0, [r2]
|
||||
mov r4, sp
|
||||
strh r1, [r4, #4]
|
||||
b _08017876
|
||||
.align 2, 0
|
||||
_08017800: .4byte gCurrentPinballGame
|
||||
_08017804:
|
||||
ldr r2, _0801785C @ =gCurrentPinballGame
|
||||
ldr r0, [r2]
|
||||
adds r0, #0x23
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
adds r0, #0x22
|
||||
movs r3, #1
|
||||
strb r3, [r0]
|
||||
mov r0, sp
|
||||
ldrh r1, [r0]
|
||||
ldr r0, _08017860 @ =0x0000FFF0
|
||||
ands r0, r1
|
||||
mov r1, sl
|
||||
strh r0, [r1]
|
||||
mov r4, sp
|
||||
strh r3, [r4, #4]
|
||||
ldr r1, [r2]
|
||||
ldr r0, _08017864 @ =0x00000404
|
||||
adds r3, r1, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r3, r0]
|
||||
adds r4, r2, #0
|
||||
cmp r0, #0
|
||||
bne _0801784E
|
||||
ldr r2, _08017868 @ =0x00000406
|
||||
adds r0, r1, r2
|
||||
movs r2, #0
|
||||
ldrsb r2, [r0, r2]
|
||||
cmp r2, #0
|
||||
bne _0801784E
|
||||
movs r0, #1
|
||||
strb r0, [r3]
|
||||
ldr r0, [r4]
|
||||
ldr r1, _0801786C @ =0x0000040A
|
||||
adds r0, r0, r1
|
||||
strh r2, [r0]
|
||||
_0801784E:
|
||||
ldr r0, [r4]
|
||||
ldr r2, _08017870 @ =0x0000040C
|
||||
adds r0, r0, r2
|
||||
movs r1, #0x28
|
||||
strh r1, [r0]
|
||||
b _08017876
|
||||
.align 2, 0
|
||||
_0801785C: .4byte gCurrentPinballGame
|
||||
_08017860: .4byte 0x0000FFF0
|
||||
_08017864: .4byte 0x00000404
|
||||
_08017868: .4byte 0x00000406
|
||||
_0801786C: .4byte 0x0000040A
|
||||
_08017870: .4byte 0x0000040C
|
||||
_08017874:
|
||||
movs r5, #4
|
||||
_08017876:
|
||||
adds r0, r5, #0
|
||||
add r1, sp, #4
|
||||
mov r2, sl
|
||||
bl sub_179D0
|
||||
mov r4, sp
|
||||
movs r1, #4
|
||||
ldrsh r0, [r4, r1]
|
||||
add sp, #8
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.section .text17898
|
||||
|
||||
thumb_func_start sub_17898
|
||||
sub_17898: @ 0x08017898
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -394,8 +394,8 @@ extern void sub_1493C(void);
|
|||
//extern ? sub_173FC();
|
||||
extern void sub_17634(u8);
|
||||
//extern ? sub_176B0();
|
||||
//extern ? sub_17898();
|
||||
//extern ? sub_179D0();
|
||||
extern void sub_17898(struct Vector16 *, u16 *, u8 *);
|
||||
extern void sub_179D0(u8, u16 *, u16 *);
|
||||
//extern ? sub_17C1C();
|
||||
//extern ? sub_17F28();
|
||||
//extern ? sub_18180();
|
||||
|
|
|
|||
|
|
@ -369,9 +369,9 @@ struct PinballGame
|
|||
/*0x3FE*/ u8 filler3FE[0x2];
|
||||
/*0x400*/ s16 unk400;
|
||||
/*0x402*/ s16 unk402;
|
||||
/*0x404*/ u8 unk404;
|
||||
/*0x404*/ s8 unk404;
|
||||
/*0x405*/ u8 unk405;
|
||||
/*0x406*/ u8 unk406;
|
||||
/*0x406*/ s8 unk406;
|
||||
/*0x407*/ u8 filler407[0x1];
|
||||
/*0x408*/ s16 unk408;
|
||||
/*0x40A*/ s16 unk40A;
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ SECTIONS
|
|||
src/rom_13D24.o(.text);
|
||||
asm/rom_11B9C.o(.text14488);
|
||||
src/rom_17634.o(.text);
|
||||
asm/rom_11B9C.o(.text176B0);
|
||||
asm/rom_11B9C.o(.text17898);
|
||||
src/rom_18784.o(.text);
|
||||
src/rom_19B64.o(.text);
|
||||
src/rom_19D04.o(.text);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#include "global.h"
|
||||
|
||||
void sub_17634(u8 param)
|
||||
void sub_17634(u8 arg0)
|
||||
{
|
||||
switch (param)
|
||||
switch (arg0)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
|
|
@ -26,4 +26,72 @@ void sub_17634(u8 param)
|
|||
case 15:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
s16 sub_176B0(struct Vector16 *arg0, u16 *arg1)
|
||||
{
|
||||
struct Vector16 vec1;
|
||||
struct Vector16 vec2;
|
||||
u16 sp00;
|
||||
u8 sp02;
|
||||
u16 return_val;
|
||||
s16 unk0;
|
||||
s32 unk1;
|
||||
s32 unk2;
|
||||
|
||||
u32 some_enum;
|
||||
u32 switch_enum;
|
||||
|
||||
return_val = 0;
|
||||
gCurrentPinballGame->ball->unk4 = 0;
|
||||
|
||||
vec1.x = arg0->x / 8;
|
||||
vec1.y = arg0->y / 8;
|
||||
vec2.x = arg0->x % 8;
|
||||
vec2.y = arg0->y % 8;
|
||||
unk1 = vec1.y / 64;
|
||||
unk2 = gCurrentPinballGame->unk24;
|
||||
vec1.y %= 64;
|
||||
unk0 = gUnknown_02031520.unk38[unk2 + unk1][vec1.y * 64 + vec1.x];
|
||||
sp00 = gUnknown_02031520.unk48[unk2 + unk1][unk0 * 64 + vec2.y * 8 + vec2.x];
|
||||
sp02 = gUnknown_02031520.unk58[unk2 + unk1][unk0 * 64 + vec2.y * 8 + vec2.x];
|
||||
|
||||
sub_17898(arg0, &sp00, &sp02);
|
||||
switch_enum = sp02 & 0xF;
|
||||
some_enum = sp02 >> 4;
|
||||
|
||||
switch (switch_enum)
|
||||
{
|
||||
case 1:
|
||||
case 4:
|
||||
case 6:
|
||||
gCurrentPinballGame->unk23 = switch_enum - 1;
|
||||
gCurrentPinballGame->unk22 = 1;
|
||||
*arg1 = sp00;
|
||||
return_val = 1;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
gCurrentPinballGame->unk23 = 0;
|
||||
gCurrentPinballGame->unk22 = 1;
|
||||
*arg1 = sp00 & 0x0000FFF0;
|
||||
return_val = 1;
|
||||
if (gCurrentPinballGame->unk404 == 0)
|
||||
{
|
||||
s32 unk3 = gCurrentPinballGame->unk406;
|
||||
if (unk3 == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk404 = 1;
|
||||
gCurrentPinballGame->unk40A = unk3;
|
||||
}
|
||||
}
|
||||
gCurrentPinballGame->unk40C = 40;
|
||||
break;
|
||||
case 5:
|
||||
some_enum = 4;
|
||||
break;
|
||||
}
|
||||
|
||||
sub_179D0(some_enum, &return_val, arg1);
|
||||
return return_val;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user