fakematch and nonmatch

This commit is contained in:
DizzyEggg
2019-01-05 19:25:46 +01:00
parent 95db853a78
commit b756996581
3 changed files with 38 additions and 105 deletions
+16 -11
View File
@@ -5847,17 +5847,22 @@ static void sub_8194220(u8 taskId)
gTasks[i].data[0] = 0; gTasks[i].data[0] = 0;
} }
ScanlineEffect_Clear(); ScanlineEffect_Clear();
for (i = 0; i < 91; i++)
{ i = 0;
gScanlineEffectRegBuffers[0][i] = 0x1F0A; while (i < 91)
gScanlineEffectRegBuffers[1][i] = 0x1F0A; {
} gScanlineEffectRegBuffers[0][i] = 0x1F0A;
for (i = 91; i < 160; i++) gScanlineEffectRegBuffers[1][i] = 0x1F0A;
{ i++;
asm(""::"r"(i)); }
gScanlineEffectRegBuffers[0][i] = 0x1F09;
gScanlineEffectRegBuffers[1][i] = 0x1F09; while (i < 160)
} {
gScanlineEffectRegBuffers[0][i] = 0x1F09;
gScanlineEffectRegBuffers[1][i] = 0x1F09;
i++;
}
ScanlineEffect_SetParams(gUnknown_0860CF44); ScanlineEffect_SetParams(gUnknown_0860CF44);
DestroyTask(taskId); DestroyTask(taskId);
break; break;
+12 -6
View File
@@ -656,16 +656,19 @@ static void CB2_InitBattleInternal(void)
gBattle_WIN0V = 0x5051; gBattle_WIN0V = 0x5051;
ScanlineEffect_Clear(); ScanlineEffect_Clear();
for (i = 0; i < 80; i++) i = 0;
while (i < 80)
{ {
gScanlineEffectRegBuffers[0][i] = 0xF0; gScanlineEffectRegBuffers[0][i] = 0xF0;
gScanlineEffectRegBuffers[1][i] = 0xF0; gScanlineEffectRegBuffers[1][i] = 0xF0;
i++;
} }
for (i = 80; i < 160; i++)
while (i < 160)
{ {
asm(""::"r"(i));
gScanlineEffectRegBuffers[0][i] = 0xFF10; gScanlineEffectRegBuffers[0][i] = 0xFF10;
gScanlineEffectRegBuffers[1][i] = 0xFF10; gScanlineEffectRegBuffers[1][i] = 0xFF10;
i++;
} }
ScanlineEffect_SetParams(sIntroScanlineParams16Bit); ScanlineEffect_SetParams(sIntroScanlineParams16Bit);
@@ -2222,16 +2225,19 @@ void sub_8038D64(void)
gBattle_WIN0V = 0x5051; gBattle_WIN0V = 0x5051;
ScanlineEffect_Clear(); ScanlineEffect_Clear();
for (i = 0; i < 80; i++) i = 0;
while (i < 80)
{ {
gScanlineEffectRegBuffers[0][i] = 0xF0; gScanlineEffectRegBuffers[0][i] = 0xF0;
gScanlineEffectRegBuffers[1][i] = 0xF0; gScanlineEffectRegBuffers[1][i] = 0xF0;
i++;
} }
for (i = 80; i < 160; i++)
while (i < 160)
{ {
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter.
gScanlineEffectRegBuffers[0][i] = 0xFF10; gScanlineEffectRegBuffers[0][i] = 0xFF10;
gScanlineEffectRegBuffers[1][i] = 0xFF10; gScanlineEffectRegBuffers[1][i] = 0xFF10;
i++;
} }
ResetPaletteFade(); ResetPaletteFade();
+1 -79
View File
@@ -3491,13 +3491,12 @@ static u32 sub_807A5F4(struct Pokemon *monList, int a1, int monIdx)
} }
} }
#ifdef NONMATCHING
s32 sub_807A728(void) s32 sub_807A728(void)
{ {
s32 val; s32 val;
u16 version; u16 version;
if (gReceivedRemoteLinkPlayers) if (gReceivedRemoteLinkPlayers != 0)
{ {
val = 0; val = 0;
version = (gLinkPlayers[GetMultiplayerId() ^ 1].version & 0xFF); version = (gLinkPlayers[GetMultiplayerId() ^ 1].version & 0xFF);
@@ -3536,83 +3535,6 @@ s32 sub_807A728(void)
} }
return 0; return 0;
} }
#else
NAKED
s32 sub_807A728(void)
{
asm_unified("push {r4-r7,lr}\n\
ldr r0, =gReceivedRemoteLinkPlayers\n\
ldrb r0, [r0]\n\
cmp r0, 0\n\
beq _0807A7B4\n\
movs r4, 0\n\
bl GetMultiplayerId\n\
ldr r5, =gLinkPlayers\n\
movs r7, 0x1\n\
eors r0, r7\n\
lsls r0, 24\n\
lsrs r0, 24\n\
lsls r1, r0, 3\n\
subs r1, r0\n\
lsls r1, 2\n\
adds r1, r5\n\
ldrb r1, [r1]\n\
subs r0, r1, 0x1\n\
lsls r0, 16\n\
lsrs r0, 16\n\
cmp r0, 0x2\n\
bls _0807A7B4\n\
subs r0, r1, 0x4\n\
lsls r0, 16\n\
lsrs r0, 16\n\
cmp r0, 0x1\n\
bhi _0807A762\n\
movs r4, 0x2\n\
_0807A762:\n\
cmp r4, 0\n\
ble _0807A7B4\n\
bl GetMultiplayerId\n\
lsls r0, 24\n\
lsrs r0, 24\n\
lsls r1, r0, 3\n\
subs r1, r0\n\
lsls r1, 2\n\
adds r1, r5\n\
ldrb r1, [r1, 0x12]\n\
movs r6, 0xF0\n\
adds r0, r6, 0\n\
ands r0, r1\n\
cmp r0, 0\n\
beq _0807A7B0\n\
cmp r4, 0x2\n\
bne _0807A7B4\n\
bl GetMultiplayerId\n\
eors r0, r7\n\
lsls r0, 24\n\
lsrs r0, 24\n\
lsls r1, r0, 3\n\
subs r1, r0\n\
lsls r1, 2\n\
adds r1, r5\n\
ldrb r1, [r1, 0x12]\n\
adds r0, r6, 0\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0807A7B4\n\
movs r0, 0x2\n\
b _0807A7B6\n\
.pool\n\
_0807A7B0:\n\
movs r0, 0x1\n\
b _0807A7B6\n\
_0807A7B4:\n\
movs r0, 0\n\
_0807A7B6:\n\
pop {r4-r7}\n\
pop {r1}\n\
bx r1");
}
#endif // NONMATCHING
static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isObedientBitSet) static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isObedientBitSet)
{ {