mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-04-26 00:37:22 -05:00
parent
4be4a3328e
commit
2cbab2489a
|
|
@ -6,103 +6,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_4B280
|
||||
sub_4B280: @ 0x0804B280
|
||||
push {r4, r5, lr}
|
||||
movs r3, #0
|
||||
ldr r4, _0804B2F8 @ =gCurrentPinballGame
|
||||
ldr r0, _0804B2FC @ =gMain
|
||||
mov ip, r0
|
||||
adds r2, r4, #0
|
||||
movs r1, #0
|
||||
_0804B28E:
|
||||
ldr r0, [r2]
|
||||
adds r0, #4
|
||||
adds r0, r0, r3
|
||||
strb r1, [r0]
|
||||
ldr r0, [r2]
|
||||
adds r0, #9
|
||||
adds r0, r0, r3
|
||||
strb r1, [r0]
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r3, r0, #0x10
|
||||
cmp r3, #4
|
||||
bls _0804B28E
|
||||
mov r1, ip
|
||||
ldrb r0, [r1, #0xf]
|
||||
cmp r0, #0
|
||||
bne _0804B32E
|
||||
movs r3, #0
|
||||
movs r5, #1
|
||||
_0804B2B4:
|
||||
lsls r2, r3, #2
|
||||
mov r1, ip
|
||||
adds r1, #0x60
|
||||
adds r1, r2, r1
|
||||
mov r0, ip
|
||||
adds r0, #0x62
|
||||
adds r2, r2, r0
|
||||
ldrh r1, [r1]
|
||||
ldrh r0, [r2]
|
||||
orrs r1, r0
|
||||
ldr r2, _0804B300 @ =0x000003FF
|
||||
adds r0, r2, #0
|
||||
ands r1, r0
|
||||
mov r2, ip
|
||||
ldrh r0, [r2, #0x1c]
|
||||
ands r0, r1
|
||||
cmp r1, r0
|
||||
bne _0804B304
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xe
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0804B2EC
|
||||
adds r0, r1, #4
|
||||
adds r0, r0, r3
|
||||
strb r5, [r0]
|
||||
_0804B2EC:
|
||||
ldr r0, [r4]
|
||||
adds r0, #0xe
|
||||
adds r0, r0, r3
|
||||
strb r5, [r0]
|
||||
b _0804B324
|
||||
.align 2, 0
|
||||
_0804B2F8: .4byte gCurrentPinballGame
|
||||
_0804B2FC: .4byte gMain
|
||||
_0804B300: .4byte 0x000003FF
|
||||
_0804B304:
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xe
|
||||
adds r0, r0, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0804B31A
|
||||
adds r0, r1, #0
|
||||
adds r0, #9
|
||||
adds r0, r0, r3
|
||||
strb r5, [r0]
|
||||
_0804B31A:
|
||||
ldr r0, [r4]
|
||||
adds r0, #0xe
|
||||
adds r0, r0, r3
|
||||
movs r1, #0
|
||||
strb r1, [r0]
|
||||
_0804B324:
|
||||
adds r0, r3, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r3, r0, #0x10
|
||||
cmp r3, #4
|
||||
bls _0804B2B4
|
||||
_0804B32E:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
|
||||
thumb_func_start sub_4B334
|
||||
sub_4B334: @ 0x0804B334
|
||||
push {r4, r5, r6, r7, lr}
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -66,8 +66,6 @@
|
|||
#define TEST_BUTTON_EXACT(field, button) (((field) & (button)) == (button))
|
||||
#define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button)
|
||||
#define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button)
|
||||
#define JOY_NEW_EXACT(button) TEST_BUTTON_EXACT(gMain.newKeys, button)
|
||||
#define JOY_HELD_EXACT(button) TEST_BUTTON_EXACT(gMain.heldKeys, button)
|
||||
|
||||
struct UnkPinballGame1334
|
||||
{
|
||||
|
|
@ -90,7 +88,10 @@ struct UnkPinballGame1334
|
|||
|
||||
struct PinballGame
|
||||
{
|
||||
/*0x000*/ u8 filler0[0x13];
|
||||
/*0x000*/ u8 filler0[0x4];
|
||||
/*0x004*/ u8 unk4[5];
|
||||
/*0x009*/ u8 unk9[5];
|
||||
/*0x00E*/ u8 unkE[5];
|
||||
/*0x013*/ s8 unk13;
|
||||
/*0x014*/ s8 unk14;
|
||||
/*0x015*/ u8 filler15;
|
||||
|
|
|
|||
|
|
@ -97,16 +97,7 @@ struct Main
|
|||
/*0x54*/ u8 filler54[0x4];
|
||||
/*0x58*/ u32 unk58;
|
||||
/*0x5C*/ u32 unk5C;
|
||||
/*0x60*/ u16 unk60;
|
||||
/*0x62*/ u16 unk62;
|
||||
/*0x64*/ u16 unk64;
|
||||
/*0x66*/ u16 unk66;
|
||||
/*0x68*/ u16 unk68;
|
||||
/*0x6A*/ u16 unk6A;
|
||||
/*0x6C*/ u16 unk6C;
|
||||
/*0x6E*/ u16 unk6E;
|
||||
/*0x70*/ u16 unk70;
|
||||
/*0x72*/ u16 unk72;
|
||||
/*0x60*/ u16 buttonConfigs[5][2];
|
||||
|
||||
// This field must be accessed using the following macro to produce matching code.
|
||||
#define gMain_saveData (*(struct SaveData *)(&gMain.saveData))
|
||||
|
|
|
|||
120
src/options.c
120
src/options.c
|
|
@ -1635,16 +1635,16 @@ void sub_525CC(s8 buttonConfigType)
|
|||
switch (buttonConfigType)
|
||||
{
|
||||
case BUTTON_CONFIG_RESET:
|
||||
gMain.unk60 = gUnknown_086BB910[5][0];
|
||||
gMain.unk62 = gUnknown_086BB910[10][0];
|
||||
gMain.unk64 = gUnknown_086BB910[0][0];
|
||||
gMain.unk66 = gUnknown_086BB910[10][0];
|
||||
gMain.unk68 = gUnknown_086BB910[9][0];
|
||||
gMain.unk6A = gUnknown_086BB910[10][0];
|
||||
gMain.unk6C = gUnknown_086BB910[8][0];
|
||||
gMain.unk6E = gUnknown_086BB910[10][0];
|
||||
gMain.unk70 = gUnknown_086BB910[9][0];
|
||||
gMain.unk72 = gUnknown_086BB910[8][0];
|
||||
gMain.buttonConfigs[0][0] = gUnknown_086BB910[5][0];
|
||||
gMain.buttonConfigs[0][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[1][0] = gUnknown_086BB910[0][0];
|
||||
gMain.buttonConfigs[1][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[2][0] = gUnknown_086BB910[9][0];
|
||||
gMain.buttonConfigs[2][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[3][0] = gUnknown_086BB910[8][0];
|
||||
gMain.buttonConfigs[3][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[4][0] = gUnknown_086BB910[9][0];
|
||||
gMain.buttonConfigs[4][1] = gUnknown_086BB910[8][0];
|
||||
gMain_saveData.customButtonConfig[PINBALL_INPUT_LEFT_FLIPPER][0] = gUnknown_086BB910[1][0];
|
||||
gMain_saveData.customButtonConfig[PINBALL_INPUT_LEFT_FLIPPER][1] = gUnknown_086BB910[10][0];
|
||||
gMain_saveData.customButtonConfig[PINBALL_INPUT_RIGHT_FLIPPER][0] = gUnknown_086BB910[0][0];
|
||||
|
|
@ -1659,64 +1659,64 @@ void sub_525CC(s8 buttonConfigType)
|
|||
gUnknown_02031B18[i] = gUnknown_08527EFE[i];
|
||||
break;
|
||||
case BUTTON_CONFIG_TYPE_A:
|
||||
gMain.unk60 = gUnknown_086BB910[5][0];
|
||||
gMain.unk62 = gUnknown_086BB910[10][0];
|
||||
gMain.unk64 = gUnknown_086BB910[0][0];
|
||||
gMain.unk66 = gUnknown_086BB910[10][0];
|
||||
gMain.unk68 = gUnknown_086BB910[9][0];
|
||||
gMain.unk6A = gUnknown_086BB910[10][0];
|
||||
gMain.unk6C = gUnknown_086BB910[8][0];
|
||||
gMain.unk6E = gUnknown_086BB910[10][0];
|
||||
gMain.unk70 = gUnknown_086BB910[9][0];
|
||||
gMain.unk72 = gUnknown_086BB910[8][0];
|
||||
gMain.buttonConfigs[0][0] = gUnknown_086BB910[5][0];
|
||||
gMain.buttonConfigs[0][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[1][0] = gUnknown_086BB910[0][0];
|
||||
gMain.buttonConfigs[1][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[2][0] = gUnknown_086BB910[9][0];
|
||||
gMain.buttonConfigs[2][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[3][0] = gUnknown_086BB910[8][0];
|
||||
gMain.buttonConfigs[3][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[4][0] = gUnknown_086BB910[9][0];
|
||||
gMain.buttonConfigs[4][1] = gUnknown_086BB910[8][0];
|
||||
break;
|
||||
case BUTTON_CONFIG_TYPE_B:
|
||||
gMain.unk60 = gUnknown_086BB910[5][0];
|
||||
gMain.unk62 = gUnknown_086BB910[10][0];
|
||||
gMain.unk64 = gUnknown_086BB910[0][0];
|
||||
gMain.unk66 = gUnknown_086BB910[10][0];
|
||||
gMain.unk68 = gUnknown_086BB910[9][0];
|
||||
gMain.unk6A = gUnknown_086BB910[10][0];
|
||||
gMain.unk6C = gUnknown_086BB910[8][0];
|
||||
gMain.unk6E = gUnknown_086BB910[10][0];
|
||||
gMain.unk70 = gUnknown_086BB910[1][0];
|
||||
gMain.unk72 = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[0][0] = gUnknown_086BB910[5][0];
|
||||
gMain.buttonConfigs[0][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[1][0] = gUnknown_086BB910[0][0];
|
||||
gMain.buttonConfigs[1][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[2][0] = gUnknown_086BB910[9][0];
|
||||
gMain.buttonConfigs[2][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[3][0] = gUnknown_086BB910[8][0];
|
||||
gMain.buttonConfigs[3][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[4][0] = gUnknown_086BB910[1][0];
|
||||
gMain.buttonConfigs[4][1] = gUnknown_086BB910[10][0];
|
||||
break;
|
||||
case BUTTON_CONFIG_TYPE_C:
|
||||
gMain.unk60 = gUnknown_086BB910[9][0];
|
||||
gMain.unk62 = gUnknown_086BB910[10][0];
|
||||
gMain.unk64 = gUnknown_086BB910[8][0];
|
||||
gMain.unk66 = gUnknown_086BB910[10][0];
|
||||
gMain.unk68 = gUnknown_086BB910[5][0];
|
||||
gMain.unk6A = gUnknown_086BB910[10][0];
|
||||
gMain.unk6C = gUnknown_086BB910[0][0];
|
||||
gMain.unk6E = gUnknown_086BB910[10][0];
|
||||
gMain.unk70 = gUnknown_086BB910[5][0];
|
||||
gMain.unk72 = gUnknown_086BB910[0][0];
|
||||
gMain.buttonConfigs[0][0] = gUnknown_086BB910[9][0];
|
||||
gMain.buttonConfigs[0][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[1][0] = gUnknown_086BB910[8][0];
|
||||
gMain.buttonConfigs[1][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[2][0] = gUnknown_086BB910[5][0];
|
||||
gMain.buttonConfigs[2][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[3][0] = gUnknown_086BB910[0][0];
|
||||
gMain.buttonConfigs[3][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[4][0] = gUnknown_086BB910[5][0];
|
||||
gMain.buttonConfigs[4][1] = gUnknown_086BB910[0][0];
|
||||
break;
|
||||
case BUTTON_CONFIG_TYPE_D:
|
||||
gMain.unk60 = gUnknown_086BB910[9][0];
|
||||
gMain.unk62 = gUnknown_086BB910[10][0];
|
||||
gMain.unk64 = gUnknown_086BB910[8][0];
|
||||
gMain.unk66 = gUnknown_086BB910[10][0];
|
||||
gMain.unk68 = gUnknown_086BB910[5][0];
|
||||
gMain.unk6A = gUnknown_086BB910[10][0];
|
||||
gMain.unk6C = gUnknown_086BB910[4][0];
|
||||
gMain.unk6E = gUnknown_086BB910[10][0];
|
||||
gMain.unk70 = gUnknown_086BB910[6][0];
|
||||
gMain.unk72 = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[0][0] = gUnknown_086BB910[9][0];
|
||||
gMain.buttonConfigs[0][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[1][0] = gUnknown_086BB910[8][0];
|
||||
gMain.buttonConfigs[1][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[2][0] = gUnknown_086BB910[5][0];
|
||||
gMain.buttonConfigs[2][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[3][0] = gUnknown_086BB910[4][0];
|
||||
gMain.buttonConfigs[3][1] = gUnknown_086BB910[10][0];
|
||||
gMain.buttonConfigs[4][0] = gUnknown_086BB910[6][0];
|
||||
gMain.buttonConfigs[4][1] = gUnknown_086BB910[10][0];
|
||||
break;
|
||||
case BUTTON_CONFIG_TYPE_EDIT:
|
||||
gMain.unk60 = gMain_saveData.customButtonConfig[PINBALL_INPUT_LEFT_FLIPPER][0];
|
||||
gMain.unk62 = gMain_saveData.customButtonConfig[PINBALL_INPUT_LEFT_FLIPPER][1];
|
||||
gMain.unk64 = gMain_saveData.customButtonConfig[PINBALL_INPUT_RIGHT_FLIPPER][0];
|
||||
gMain.unk66 = gMain_saveData.customButtonConfig[PINBALL_INPUT_RIGHT_FLIPPER][1];
|
||||
gMain.unk68 = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_LEFT][0];
|
||||
gMain.unk6A = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_LEFT][1];
|
||||
gMain.unk6C = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_RIGHT][0];
|
||||
gMain.unk6E = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_RIGHT][1];
|
||||
gMain.unk70 = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_UP][0];
|
||||
gMain.unk72 = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_UP][1];
|
||||
gMain.buttonConfigs[0][0] = gMain_saveData.customButtonConfig[PINBALL_INPUT_LEFT_FLIPPER][0];
|
||||
gMain.buttonConfigs[0][1] = gMain_saveData.customButtonConfig[PINBALL_INPUT_LEFT_FLIPPER][1];
|
||||
gMain.buttonConfigs[1][0] = gMain_saveData.customButtonConfig[PINBALL_INPUT_RIGHT_FLIPPER][0];
|
||||
gMain.buttonConfigs[1][1] = gMain_saveData.customButtonConfig[PINBALL_INPUT_RIGHT_FLIPPER][1];
|
||||
gMain.buttonConfigs[2][0] = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_LEFT][0];
|
||||
gMain.buttonConfigs[2][1] = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_LEFT][1];
|
||||
gMain.buttonConfigs[3][0] = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_RIGHT][0];
|
||||
gMain.buttonConfigs[3][1] = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_RIGHT][1];
|
||||
gMain.buttonConfigs[4][0] = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_UP][0];
|
||||
gMain.buttonConfigs[4][1] = gMain_saveData.customButtonConfig[PINBALL_INPUT_TILT_UP][1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -843,3 +843,36 @@ void sub_4B20C(void)
|
|||
void nullsub_19(void)
|
||||
{
|
||||
}
|
||||
|
||||
void sub_4B280(void)
|
||||
{
|
||||
u16 i;
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk4[i] = 0;
|
||||
gCurrentPinballGame->unk9[i] = 0;
|
||||
}
|
||||
|
||||
if (gMain.unkF)
|
||||
return;
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
{
|
||||
int buttonConfigKeyMask = (gMain.buttonConfigs[i][0] | gMain.buttonConfigs[i][1]) & KEYS_MASK;
|
||||
if (buttonConfigKeyMask == JOY_HELD(buttonConfigKeyMask))
|
||||
{
|
||||
if (gCurrentPinballGame->unkE[i] == 0)
|
||||
gCurrentPinballGame->unk4[i] = 1;
|
||||
|
||||
gCurrentPinballGame->unkE[i] = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unkE[i])
|
||||
gCurrentPinballGame->unk9[i] = 1;
|
||||
|
||||
gCurrentPinballGame->unkE[i] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user