summaryrefslogtreecommitdiff
path: root/src/record_mixing.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/record_mixing.c')
-rw-r--r--src/record_mixing.c407
1 files changed, 204 insertions, 203 deletions
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 12b87b2b1..57a6790f1 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "record_mixing.h"
#include "asm.h"
+#include "event_data.h"
#include "link.h"
#include "menu.h"
#include "rom4.h"
@@ -9,7 +10,7 @@
#include "sound.h"
#include "string_util.h"
#include "task.h"
-#include "event_data.h"
+#include "dewford_trend.h"
extern void *recordMixingSecretBases;
extern void *recordMixingTvShows;
@@ -59,7 +60,7 @@ void sub_80B92AC(void)
{
sub_80BC300();
sub_80C045C();
-
+
memcpy(unk_2018000.secretBases, recordMixingSecretBases, sizeof(unk_2018000.secretBases));
memcpy(unk_2018000.tvShows, recordMixingTvShows, sizeof(unk_2018000.tvShows));
memcpy(unk_2018000.filler1004, gUnknown_083D0274, 0x40);
@@ -70,8 +71,8 @@ void sub_80B92AC(void)
sub_8041324(gSaveBlock1.filler_2F9C, gUnknown_02038738);
memcpy(unk_2018000.filler10AC, gUnknown_083D0280, 0x78);
memcpy(unk_2018000.filler1124, gUnknown_083D0284, 0xA4);
-
- if(GetMultiplayerId() == 0)
+
+ if (GetMultiplayerId() == 0)
unk_2018000.filler11C8[0] = sub_8126338();
}
#else
@@ -80,84 +81,84 @@ void sub_80B92AC(void)
{
asm(".syntax unified\n\
push {r4-r6,lr}\n\
- bl sub_80BC300\n\
- bl sub_80C045C\n\
- ldr r6, _080B9364 @ =0x02018000\n\
- ldr r0, _080B9368 @ =recordMixingSecretBases\n\
- ldr r1, [r0]\n\
- movs r2, 0xC8\n\
- lsls r2, 4\n\
- adds r0, r6, 0\n\
- bl memcpy\n\
- movs r1, 0xC8\n\
- lsls r1, 4\n\
- adds r0, r6, r1\n\
- ldr r1, _080B936C @ =recordMixingTvShows\n\
- ldr r1, [r1]\n\
- movs r2, 0xE1\n\
- lsls r2, 2\n\
- bl memcpy\n\
- ldr r2, _080B9370 @ =0x00001004\n\
- adds r0, r6, r2\n\
- ldr r1, _080B9374 @ =gUnknown_083D0274\n\
- ldr r1, [r1]\n\
- movs r2, 0x40\n\
- bl memcpy\n\
- ldr r1, _080B9378 @ =0x00001044\n\
- adds r0, r6, r1\n\
- ldr r1, _080B937C @ =gUnknown_083D0278\n\
- ldr r1, [r1]\n\
- movs r2, 0x40\n\
- bl memcpy\n\
- ldr r2, _080B9380 @ =0x00001084\n\
- adds r0, r6, r2\n\
- ldr r1, _080B9384 @ =recordMixingEasyChatPairs\n\
- ldr r1, [r1]\n\
- movs r2, 0x28\n\
- bl memcpy\n\
- ldr r5, _080B9388 @ =gUnknown_02038738\n\
- ldr r4, _080B938C @ =gSaveBlock1\n\
- ldr r0, _080B9390 @ =0x0000303c\n\
- adds r1, r4, r0\n\
- adds r0, r5, 0\n\
- movs r2, 0x38\n\
- bl memcpy\n\
- ldr r2, _080B9394 @ =0x00003074\n\
- adds r1, r4, r2\n\
- adds r0, r5, 0\n\
- adds r0, 0x38\n\
- movs r2, 0x38\n\
- bl memcpy\n\
- ldr r0, _080B9398 @ =0x00002f9c\n\
- adds r4, r0\n\
- adds r0, r4, 0\n\
- adds r1, r5, 0\n\
- bl sub_8041324\n\
- ldr r1, _080B939C @ =0x000010ac\n\
- adds r0, r6, r1\n\
- ldr r1, _080B93A0 @ =gUnknown_083D0280\n\
- ldr r1, [r1]\n\
- movs r2, 0x78\n\
- bl memcpy\n\
- ldr r2, _080B93A4 @ =0x00001124\n\
- adds r0, r6, r2\n\
- ldr r1, _080B93A8 @ =gUnknown_083D0284\n\
- ldr r1, [r1]\n\
- movs r2, 0xA4\n\
- bl memcpy\n\
- bl GetMultiplayerId\n\
- lsls r0, 24\n\
- cmp r0, 0\n\
- bne _080B935C\n\
- bl sub_8126338\n\
- ldr r2, _080B93AC @ =0x000011c8\n\
- adds r1, r6, r2\n\
- strh r0, [r1]\n\
+ bl sub_80BC300\n\
+ bl sub_80C045C\n\
+ ldr r6, _080B9364 @ =0x02018000\n\
+ ldr r0, _080B9368 @ =recordMixingSecretBases\n\
+ ldr r1, [r0]\n\
+ movs r2, 0xC8\n\
+ lsls r2, 4\n\
+ adds r0, r6, 0\n\
+ bl memcpy\n\
+ movs r1, 0xC8\n\
+ lsls r1, 4\n\
+ adds r0, r6, r1\n\
+ ldr r1, _080B936C @ =recordMixingTvShows\n\
+ ldr r1, [r1]\n\
+ movs r2, 0xE1\n\
+ lsls r2, 2\n\
+ bl memcpy\n\
+ ldr r2, _080B9370 @ =0x00001004\n\
+ adds r0, r6, r2\n\
+ ldr r1, _080B9374 @ =gUnknown_083D0274\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x40\n\
+ bl memcpy\n\
+ ldr r1, _080B9378 @ =0x00001044\n\
+ adds r0, r6, r1\n\
+ ldr r1, _080B937C @ =gUnknown_083D0278\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x40\n\
+ bl memcpy\n\
+ ldr r2, _080B9380 @ =0x00001084\n\
+ adds r0, r6, r2\n\
+ ldr r1, _080B9384 @ =recordMixingEasyChatPairs\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x28\n\
+ bl memcpy\n\
+ ldr r5, _080B9388 @ =gUnknown_02038738\n\
+ ldr r4, _080B938C @ =gSaveBlock1\n\
+ ldr r0, _080B9390 @ =0x0000303c\n\
+ adds r1, r4, r0\n\
+ adds r0, r5, 0\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ ldr r2, _080B9394 @ =0x00003074\n\
+ adds r1, r4, r2\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x38\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ ldr r0, _080B9398 @ =0x00002f9c\n\
+ adds r4, r0\n\
+ adds r0, r4, 0\n\
+ adds r1, r5, 0\n\
+ bl sub_8041324\n\
+ ldr r1, _080B939C @ =0x000010ac\n\
+ adds r0, r6, r1\n\
+ ldr r1, _080B93A0 @ =gUnknown_083D0280\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x78\n\
+ bl memcpy\n\
+ ldr r2, _080B93A4 @ =0x00001124\n\
+ adds r0, r6, r2\n\
+ ldr r1, _080B93A8 @ =gUnknown_083D0284\n\
+ ldr r1, [r1]\n\
+ movs r2, 0xA4\n\
+ bl memcpy\n\
+ bl GetMultiplayerId\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080B935C\n\
+ bl sub_8126338\n\
+ ldr r2, _080B93AC @ =0x000011c8\n\
+ adds r1, r6, r2\n\
+ strh r0, [r1]\n\
_080B935C:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
_080B9364: .4byte 0x02018000\n\
_080B9368: .4byte recordMixingSecretBases\n\
_080B936C: .4byte recordMixingTvShows\n\
@@ -199,7 +200,7 @@ void sub_80B93B0(u32 a)
void sub_80B9450(u8 taskId)
{
gTasks[taskId].data[0]++;
- if(gTasks[taskId].data[0] == 50)
+ if (gTasks[taskId].data[0] == 50)
{
PlaySE(SE_W213);
gTasks[taskId].data[0] = 0;
@@ -211,8 +212,8 @@ void sub_80B9450(u8 taskId)
void sub_80B9484(u8 taskId)
{
s16 *taskData = gTasks[taskId].data;
-
- switch(taskData[TD_STATE])
+
+ switch (taskData[TD_STATE])
{
case 0:
sub_8007270(gSpecialVar_0x8005);
@@ -225,7 +226,7 @@ void sub_80B9484(u8 taskId)
taskData[15] = CreateTask(sub_80B9450, 0x51);
break;
case 1:
- if(!gTasks[taskData[10]].isActive)
+ if (!gTasks[taskData[10]].isActive)
{
taskData[TD_STATE] = 2;
FlagSet(SYS_MIX_RECORD);
@@ -239,7 +240,7 @@ void sub_80B9484(u8 taskId)
PlaySE(SE_W226);
break;
case 3:
- if(!gTasks[taskData[10]].isActive)
+ if (!gTasks[taskData[10]].isActive)
{
taskData[TD_STATE] = 4;
taskData[10] = sub_8083664();
@@ -250,11 +251,11 @@ void sub_80B9484(u8 taskId)
break;
case 4:
taskData[8]++;
- if(taskData[8] > 60)
+ if (taskData[8] > 60)
taskData[TD_STATE] = 5;
break;
case 5:
- if(!gTasks[taskData[10]].isActive)
+ if (!gTasks[taskData[10]].isActive)
{
sub_8055588();
MenuZeroFillScreen();
@@ -268,8 +269,8 @@ void sub_80B9484(u8 taskId)
void sub_80B95F0(u8 taskId)
{
struct Task *task = &gTasks[taskId];
-
- switch(task->data[TD_STATE])
+
+ switch (task->data[TD_STATE])
{
case 0:
sub_80B9A78();
@@ -281,7 +282,7 @@ void sub_80B95F0(u8 taskId)
break;
case 100:
task->data[12]++;
- if(task->data[12] > 20)
+ if (task->data[12] > 20)
{
task->data[12] = 0;
task->data[TD_STATE] = 101;
@@ -290,10 +291,10 @@ void sub_80B95F0(u8 taskId)
case 101:
{
u8 players = GetLinkPlayerCount_2();
-
- if(IsLinkMaster() == 1)
+
+ if (IsLinkMaster() == 1)
{
- if(players == sub_800820C())
+ if (players == sub_800820C())
{
PlaySE(0x15);
task->data[TD_STATE] = 201;
@@ -308,9 +309,9 @@ void sub_80B95F0(u8 taskId)
break;
}
case 201:
- if(sub_800820C() == GetLinkPlayerCount_2())
+ if (sub_800820C() == GetLinkPlayerCount_2())
{
- if(++task->data[12] > GetLinkPlayerCount_2() * 30)
+ if (++task->data[12] > GetLinkPlayerCount_2() * 30)
{
sub_8007F4C();
task->data[TD_STATE] = 1;
@@ -318,19 +319,19 @@ void sub_80B95F0(u8 taskId)
}
break;
case 301:
- if(sub_800820C() == GetLinkPlayerCount_2())
+ if (sub_800820C() == GetLinkPlayerCount_2())
task->data[TD_STATE] = 1;
break;
case 400:
task->data[12]++;
- if(task->data[12] > 20)
+ if (task->data[12] > 20)
{
task->data[TD_STATE] = 1;
task->data[12] = 0;
}
break;
case 1:
- if(gReceivedRemoteLinkPlayers)
+ if (gReceivedRemoteLinkPlayers)
{
ConvertIntToDecimalStringN(gStringVar1, GetMultiplayerId_(), 2, 2);
task->data[TD_STATE] = 5;
@@ -339,7 +340,7 @@ void sub_80B95F0(u8 taskId)
case 2:
{
u8 subTaskId;
-
+
task->data[6] = GetLinkPlayerCount_2();
task->data[TD_STATE] = 0;
task->data[5] = GetMultiplayerId_();
@@ -354,7 +355,7 @@ void sub_80B95F0(u8 taskId)
}
case 5:
task->data[10]++;
- if(task->data[10] > 60)
+ if (task->data[10] > 60)
{
task->data[10] = 0;
task->data[TD_STATE] = 2;
@@ -366,19 +367,19 @@ void sub_80B95F0(u8 taskId)
void sub_80B97DC(u8 taskId)
{
struct Task *task = &gTasks[taskId];
-
- switch(task->data[TD_STATE])
+
+ switch (task->data[TD_STATE])
{
case 0: //Copy record data to send buffer
{
void *recordData = (u8 *)LoadPtrFromTaskData(&task->data[2]) + BUFFER_CHUNK_SIZE * task->data[4];
-
+
memcpy(gBlockSendBuffer, recordData, BUFFER_CHUNK_SIZE);
task->data[TD_STATE]++;
break;
}
case 1:
- if(GetMultiplayerId() == 0)
+ if (GetMultiplayerId() == 0)
sub_8007E9C(1);
task->data[TD_STATE]++;
break;
@@ -386,13 +387,13 @@ void sub_80B97DC(u8 taskId)
break;
case 3:
task->data[4]++;
- if((u16)task->data[4] == 24)
+ if ((u16)task->data[4] == 24)
task->data[TD_STATE]++;
else
task->data[TD_STATE] = 0;
break;
case 4:
- if(!gTasks[task->data[10]].isActive)
+ if (!gTasks[task->data[10]].isActive)
task->func = sub_80B9A1C;
}
}
@@ -402,31 +403,31 @@ void Task_CopyRecvBuffer(u8 taskId)
struct Task *task = &gTasks[taskId];
s32 recvStatus = GetBlockReceivedStatus();
u32 sp8 = 0;
-
- if(recvStatus == sub_8008198())
+
+ if (recvStatus == sub_8008198())
{
u8 player;
-
- for(player = 0; player < GetLinkPlayerCount(); player++)
+
+ for (player = 0; player < GetLinkPlayerCount(); player++)
{
//_080B98D4
u8 *ptr;
void *src;
u8 *dst;
-
- if((recvStatus >> player) & 1)
+
+ if ((recvStatus >> player) & 1)
{
ptr = LoadPtrFromTaskData(&task->data[5]);
dst = ptr + task->data[player + 1] * BUFFER_CHUNK_SIZE + player * sizeof(struct PlayerRecords);
src = GetPlayerRecvBuffer(player);
- if((u32)(task->data[player + 1] + 1) * BUFFER_CHUNK_SIZE > sizeof(struct PlayerRecords))
+ if ((u32)(task->data[player + 1] + 1) * BUFFER_CHUNK_SIZE > sizeof(struct PlayerRecords))
memcpy(dst, src, sizeof(struct PlayerRecords) - task->data[player + 1] * BUFFER_CHUNK_SIZE);
else
memcpy(dst, src, BUFFER_CHUNK_SIZE);
//_080B993C
ResetBlockReceivedFlag(player);
task->data[player + 1]++;
- if((u16)task->data[player + 1] == 0x18)
+ if ((u16)task->data[player + 1] == 0x18)
sp8 = (u8)(sp8 + 1);
}
}
@@ -434,24 +435,24 @@ void Task_CopyRecvBuffer(u8 taskId)
gTasks[task->data[0]].data[0]++;
}
//_080B998A
- if(sp8 == GetLinkPlayerCount())
+ if (sp8 == GetLinkPlayerCount())
DestroyTask(taskId);
}
void sub_80B99B4(u8 taskId)
{
struct Task *task = &gTasks[taskId];
-
- if(!gTasks[task->data[10]].isActive)
+
+ if (!gTasks[task->data[10]].isActive)
DestroyTask(taskId);
}
void sub_80B99E8(u8 taskId)
{
struct Task *task = &gTasks[taskId];
-
+
task->func = sub_80B99B4;
- if(gUnknown_03000718 == 1)
+ if (gUnknown_03000718 == 1)
sub_80B93B0(task->data[5]);
}
@@ -492,21 +493,21 @@ void sub_80B9A88(u8 *a)
u32 i;
u32 id;
u32 players = GetLinkPlayerCount();
-
- switch(players)
+
+ switch (players)
{
case 2:
- for(i = 0; i < 2; i++)
+ for (i = 0; i < 2; i++)
a[i] = gUnknown_083D0288[i];
break;
case 3:
id = GetLinkPlayerTrainerId(0) % 2;
- for(i = 0; i < 3; i++)
+ for (i = 0; i < 3; i++)
a[i] = gUnknown_083D028A[id][i];
break;
case 4:
id = GetLinkPlayerTrainerId(0) % 9;
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
a[i] = gUnknown_083D0290[id][i];
break;
default:
@@ -518,7 +519,7 @@ void sub_80B9B1C(u8 *a, size_t size, u8 index)
{
u8 arr[4];
u8 *ptr;
-
+
sub_80B9A88(arr);
//Probably not how it was originally written, but this matches.
memcpy(a + index * size, (ptr = gUnknown_083D0278), 0x40);
@@ -551,70 +552,70 @@ void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d)
{
asm(".syntax unified\n\
push {r4-r6,lr}\n\
- mov r6, r10\n\
- mov r5, r9\n\
- mov r4, r8\n\
- push {r4-r6}\n\
- sub sp, 0x38\n\
- mov r8, r0\n\
- mov r10, r1\n\
- mov r9, r2\n\
- adds r4, r3, 0\n\
- ldr r5, [sp, 0x54]\n\
- lsls r4, 24\n\
- lsls r5, 24\n\
- lsrs r5, 24\n\
- lsrs r4, 23\n\
- add r4, r9\n\
- ldrb r0, [r4]\n\
- mov r6, r10\n\
- muls r6, r0\n\
- add r6, r8\n\
- ldrb r0, [r4, 0x1]\n\
- lsls r1, r0, 3\n\
- subs r1, r0\n\
- lsls r1, 3\n\
- adds r1, r6, r1\n\
- mov r0, sp\n\
- movs r2, 0x38\n\
- bl memcpy\n\
- lsls r5, 1\n\
- add r5, r9\n\
- ldrb r0, [r5]\n\
- mov r1, r10\n\
- muls r1, r0\n\
- adds r0, r1, 0\n\
- add r8, r0\n\
- ldrb r1, [r4, 0x1]\n\
- lsls r0, r1, 3\n\
- subs r0, r1\n\
- lsls r0, 3\n\
- adds r6, r0\n\
- ldrb r0, [r5, 0x1]\n\
- lsls r1, r0, 3\n\
- subs r1, r0\n\
- lsls r1, 3\n\
- add r1, r8\n\
- adds r0, r6, 0\n\
- movs r2, 0x38\n\
- bl memcpy\n\
- ldrb r1, [r5, 0x1]\n\
- lsls r0, r1, 3\n\
- subs r0, r1\n\
- lsls r0, 3\n\
- add r8, r0\n\
- mov r0, r8\n\
- mov r1, sp\n\
- movs r2, 0x38\n\
- bl memcpy\n\
- add sp, 0x38\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
+ mov r6, r10\n\
+ mov r5, r9\n\
+ mov r4, r8\n\
+ push {r4-r6}\n\
+ sub sp, 0x38\n\
+ mov r8, r0\n\
+ mov r10, r1\n\
+ mov r9, r2\n\
+ adds r4, r3, 0\n\
+ ldr r5, [sp, 0x54]\n\
+ lsls r4, 24\n\
+ lsls r5, 24\n\
+ lsrs r5, 24\n\
+ lsrs r4, 23\n\
+ add r4, r9\n\
+ ldrb r0, [r4]\n\
+ mov r6, r10\n\
+ muls r6, r0\n\
+ add r6, r8\n\
+ ldrb r0, [r4, 0x1]\n\
+ lsls r1, r0, 3\n\
+ subs r1, r0\n\
+ lsls r1, 3\n\
+ adds r1, r6, r1\n\
+ mov r0, sp\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ lsls r5, 1\n\
+ add r5, r9\n\
+ ldrb r0, [r5]\n\
+ mov r1, r10\n\
+ muls r1, r0\n\
+ adds r0, r1, 0\n\
+ add r8, r0\n\
+ ldrb r1, [r4, 0x1]\n\
+ lsls r0, r1, 3\n\
+ subs r0, r1\n\
+ lsls r0, 3\n\
+ adds r6, r0\n\
+ ldrb r0, [r5, 0x1]\n\
+ lsls r1, r0, 3\n\
+ subs r1, r0\n\
+ lsls r1, 3\n\
+ add r1, r8\n\
+ adds r0, r6, 0\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ ldrb r1, [r5, 0x1]\n\
+ lsls r0, r1, 3\n\
+ subs r0, r1\n\
+ lsls r0, 3\n\
+ add r8, r0\n\
+ mov r0, r8\n\
+ mov r1, sp\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ add sp, 0x38\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
.syntax divided\n");
}
#endif
@@ -623,8 +624,8 @@ u8 sub_80B9C4C(u8 *a)
{
int i;
u8 r2 = 0;
-
- for(i = 0; i < 0x100; i++)
+
+ for (i = 0; i < 0x100; i++)
r2 += a[i];
return r2;
}
@@ -647,7 +648,7 @@ struct UnkStruct1
u32 unk48;
u32 unk4C;
u32 unk50;
-
+
};
/*
@@ -657,7 +658,7 @@ extern void sub_80B9C6C(void *a, u32 b, u8 c, void *d)
struct UnkStruct1 s;
u16 r8;
u16 r3;
-
+
s.unk2C = a;
s.unk30 = b;
s.unk38 = d;
@@ -666,15 +667,15 @@ extern void sub_80B9C6C(void *a, u32 b, u8 c, void *d)
SeedRng(gLinkPlayers[0].trainerId);
r8 = GetLinkPlayerCount();
r3 = 0;
-
+
s.unk4C = 12;
-
- while(r3 < 4)
+
+ while (r3 < 4)
{
s.unk4[r3] |= 0xFF;
s.unk8[r3] = 0;
-
+
s.unk1C[r3][0] = 0;
s.unk1C[r3][1] = 0;
r3++;
@@ -683,19 +684,19 @@ extern void sub_80B9C6C(void *a, u32 b, u8 c, void *d)
r3 = 0;
s.unk50 = r8 << 16;
s.unk48 = s.unk30 * s.unk34;
-
- if(s.unk3C < r8)
+
+ if (s.unk3C < r8)
{
do //_080B9D00
{
u32 *r6 = (u32 *)(s.unk2C + s.unk30 * r3);
- if(r6[0x1C] != 0 && r6[0x1C] > 0)
+ if (r6[0x1C] != 0 && r6[0x1C] > 0)
{
-
+
}
//_080B9D3C
}
- while(r3 < r8);
+ while (r3 < r8);
}
//_080B9D46
}