through sub_800A588
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include "items.h"
|
||||
#include "hold_effects.h"
|
||||
#include "link.h"
|
||||
#include "link_rfu.h"
|
||||
#include "bg.h"
|
||||
#include "dma3.h"
|
||||
#include "string_util.h"
|
||||
@@ -734,7 +735,7 @@ static void CB2_HandleStartBattle(void)
|
||||
sub_805EF14();
|
||||
gBattleCommunication[MULTIUSE_STATE] = 1;
|
||||
}
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800E0E8();
|
||||
break;
|
||||
case 1:
|
||||
@@ -758,7 +759,7 @@ static void CB2_HandleStartBattle(void)
|
||||
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32);
|
||||
gBattleCommunication[MULTIUSE_STATE] = 2;
|
||||
}
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800DFB4(0, 0);
|
||||
}
|
||||
}
|
||||
@@ -929,7 +930,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
|
||||
sub_805EF14();
|
||||
gBattleCommunication[MULTIUSE_STATE] = 1;
|
||||
}
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800E0E8();
|
||||
// fall through
|
||||
case 1:
|
||||
@@ -960,7 +961,7 @@ static void CB2_HandleStartMultiPartnerBattle(void)
|
||||
gBattleCommunication[MULTIUSE_STATE] = 2;
|
||||
}
|
||||
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800DFB4(0, 0);
|
||||
}
|
||||
}
|
||||
@@ -1237,14 +1238,14 @@ static void CB2_PreInitMultiBattle(void)
|
||||
if (sub_800A520() && !gPaletteFade.active)
|
||||
{
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800ADF8();
|
||||
else
|
||||
sub_800AC34();
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
if (sub_8010500())
|
||||
{
|
||||
@@ -1329,7 +1330,7 @@ static void CB2_HandleStartMultiBattle(void)
|
||||
sub_805EF14();
|
||||
gBattleCommunication[MULTIUSE_STATE] = 1;
|
||||
}
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800E0E8();
|
||||
break;
|
||||
case 1:
|
||||
@@ -1347,7 +1348,7 @@ static void CB2_HandleStartMultiBattle(void)
|
||||
SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->field_180, 32);
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
}
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800DFB4(0, 0);
|
||||
}
|
||||
}
|
||||
@@ -2132,12 +2133,12 @@ static void sub_8038F34(void)
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (!gLinkVSyncDisabled)
|
||||
if (!gSerialIsRFU)
|
||||
sub_800AC34();
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
break;
|
||||
case 9:
|
||||
if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1)
|
||||
if (!gMain.field_439_x4 || gSerialIsRFU || gReceivedRemoteLinkPlayers != 1)
|
||||
{
|
||||
gMain.field_439_x4 = 0;
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
@@ -2316,13 +2317,13 @@ static void sub_803939C(void)
|
||||
case 8:
|
||||
if (--gBattleCommunication[1] == 0)
|
||||
{
|
||||
if (gMain.field_439_x4 && !gLinkVSyncDisabled)
|
||||
if (gMain.field_439_x4 && !gSerialIsRFU)
|
||||
sub_800AC34();
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (!gMain.field_439_x4 || gLinkVSyncDisabled || gReceivedRemoteLinkPlayers != 1)
|
||||
if (!gMain.field_439_x4 || gSerialIsRFU || gReceivedRemoteLinkPlayers != 1)
|
||||
{
|
||||
gMain.field_439_x4 = 0;
|
||||
if (!gPaletteFade.active)
|
||||
|
||||
@@ -896,7 +896,7 @@ static void HandleMoveSwitchting(void)
|
||||
|
||||
static void sub_80586F8(void)
|
||||
{
|
||||
if (gLinkVSyncDisabled == 0)
|
||||
if (gSerialIsRFU == 0)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers == 0)
|
||||
{
|
||||
@@ -932,7 +932,7 @@ void sub_80587B0(void)
|
||||
{
|
||||
if (sub_800A520())
|
||||
{
|
||||
if (gLinkVSyncDisabled == 0)
|
||||
if (gSerialIsRFU == 0)
|
||||
sub_800AC34();
|
||||
else
|
||||
sub_800ADF8();
|
||||
|
||||
@@ -59,7 +59,7 @@ void HandleLinkBattleSetup(void)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
{
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800B488();
|
||||
if (!gReceivedRemoteLinkPlayers)
|
||||
sub_8009734();
|
||||
@@ -780,7 +780,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId)
|
||||
gTasks[taskId].data[11]++;
|
||||
break;
|
||||
case 2:
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
gTasks[taskId].data[11]++;
|
||||
}
|
||||
|
||||
@@ -405,7 +405,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
sub_800E0E8();
|
||||
sub_800DFB4(0, 0);
|
||||
@@ -1188,7 +1188,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
|
||||
case 5:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
sub_800E084();
|
||||
|
||||
Free(GetBgTilemapBuffer(3));
|
||||
|
||||
119
src/link.c
119
src/link.c
@@ -16,6 +16,7 @@
|
||||
#include "palette.h"
|
||||
#include "task.h"
|
||||
#include "trade.h"
|
||||
#include "link_rfu.h"
|
||||
#include "link.h"
|
||||
|
||||
// Static type declarations
|
||||
@@ -37,13 +38,6 @@ struct LinkTestBGInfo
|
||||
u32 dummy_C;
|
||||
};
|
||||
|
||||
struct SIOCnt {
|
||||
u32 cnt0_0:4;
|
||||
u32 cnt0_2:2;
|
||||
};
|
||||
|
||||
#define REG_SIOCNT_STRUCT (*(volatile struct SIOCnt *)REG_ADDR_SIOCNT)
|
||||
|
||||
// Static RAM declarations
|
||||
|
||||
IWRAM_DATA struct BlockTransfer gUnknown_03000D10;
|
||||
@@ -88,7 +82,7 @@ u8 gUnknown_030030EC[MAX_LINK_PLAYERS];
|
||||
u8 gUnknown_030030F0[MAX_LINK_PLAYERS];
|
||||
u16 gUnknown_030030F4;
|
||||
u8 gUnknown_030030F8;
|
||||
bool8 gLinkVSyncDisabled;
|
||||
bool8 gSerialIsRFU;
|
||||
bool8 gUnknown_03003100;
|
||||
u16 gUnknown_03003110[8];
|
||||
u8 gUnknown_03003120;
|
||||
@@ -137,16 +131,6 @@ void sub_800B524(struct LinkPlayer *linkPlayer);
|
||||
void sub_800B53C(void);
|
||||
void sub_800B594(void);
|
||||
|
||||
// rfu
|
||||
u32 sub_800BEC0(void);
|
||||
void sub_800E700(void);
|
||||
void sub_800EDD4(void);
|
||||
bool32 sub_800F7E4(void);
|
||||
void sub_800F804(void);
|
||||
void sub_800F850(void);
|
||||
void Rfu_set_zero(void);
|
||||
u8 sub_80104F4(void);
|
||||
|
||||
// .rodata
|
||||
|
||||
ALIGNED(4) const u16 gWirelessLinkDisplayPal[] = INCBIN_U16("graphics/interface/wireless_link_display.gbapal");
|
||||
@@ -333,7 +317,7 @@ void sub_8009734(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!gLinkVSyncDisabled)
|
||||
if (!gSerialIsRFU)
|
||||
{
|
||||
sub_800B628();
|
||||
sub_80096D0();
|
||||
@@ -365,7 +349,7 @@ void sub_8009734(void)
|
||||
void sub_80097E8(void)
|
||||
{
|
||||
gReceivedRemoteLinkPlayers = FALSE;
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
sub_800EDD4();
|
||||
}
|
||||
@@ -467,7 +451,7 @@ u16 sub_80099E0(const u16 *src)
|
||||
gUnknown_03003084 = *src;
|
||||
if (gUnknown_030030E0 & 0x40)
|
||||
{
|
||||
sub_8009AA0(REG_SIOCNT_STRUCT.cnt0_2);
|
||||
sub_8009AA0(SIO_MULTI_CNT->id);
|
||||
if (gUnknown_03003140 != NULL)
|
||||
{
|
||||
gUnknown_03003140();
|
||||
@@ -685,7 +669,7 @@ void sub_8009D90(u16 command)
|
||||
|
||||
void sub_8009F18(void)
|
||||
{
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
sub_800F804();
|
||||
}
|
||||
@@ -694,7 +678,7 @@ void sub_8009F18(void)
|
||||
|
||||
bool32 sub_8009F3C(void)
|
||||
{
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
return sub_800F7E4();
|
||||
}
|
||||
@@ -715,7 +699,7 @@ static void sub_8009F70(void)
|
||||
|
||||
void sub_8009F8C(void)
|
||||
{
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
Rfu_set_zero();
|
||||
}
|
||||
@@ -727,7 +711,7 @@ void sub_8009F8C(void)
|
||||
|
||||
void sub_8009FAC(void)
|
||||
{
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
Rfu_set_zero();
|
||||
}
|
||||
@@ -739,7 +723,7 @@ void sub_8009FAC(void)
|
||||
|
||||
u8 GetLinkPlayerCount(void)
|
||||
{
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
return sub_80104F4();
|
||||
}
|
||||
@@ -997,7 +981,7 @@ void sub_800A3F8(void)
|
||||
void sub_800A418(void)
|
||||
{
|
||||
gUnknown_020223C0 = 0;
|
||||
if (gLinkVSyncDisabled)
|
||||
if (gSerialIsRFU)
|
||||
{
|
||||
sub_800F850();
|
||||
}
|
||||
@@ -1006,3 +990,84 @@ void sub_800A418(void)
|
||||
gUnknown_03003140 = sub_800A3F8;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_800A44C(void)
|
||||
{
|
||||
return gUnknown_020223C0;
|
||||
}
|
||||
|
||||
void sub_800A458(void)
|
||||
{
|
||||
sub_8009D90(0xaaaa);
|
||||
}
|
||||
|
||||
u8 GetMultiplayerId(void)
|
||||
{
|
||||
if (gSerialIsRFU == TRUE)
|
||||
{
|
||||
return rfu_get_multiplayer_id();
|
||||
}
|
||||
return SIO_MULTI_CNT->id;
|
||||
}
|
||||
|
||||
u8 bitmask_all_link_players_but_self(void)
|
||||
{
|
||||
u8 mpId;
|
||||
|
||||
mpId = GetMultiplayerId();
|
||||
return ((1 << MAX_LINK_PLAYERS) - 1) ^ (1 << mpId);
|
||||
}
|
||||
|
||||
bool8 SendBlock(u8 unused, const void *src, u16 size)
|
||||
{
|
||||
if (gSerialIsRFU == TRUE)
|
||||
{
|
||||
return sub_800FE84(src, size);
|
||||
}
|
||||
return sub_800A2F4(src, size);
|
||||
}
|
||||
|
||||
bool8 sub_800A4D8(u8 a0)
|
||||
{
|
||||
if (gSerialIsRFU == TRUE)
|
||||
{
|
||||
return sub_8010100(a0);
|
||||
}
|
||||
if (gUnknown_03003140 == NULL)
|
||||
{
|
||||
gUnknown_03003150 = a0;
|
||||
sub_8009D90(0xcccc);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_800A520(void)
|
||||
{
|
||||
if (gSerialIsRFU == TRUE)
|
||||
{
|
||||
return sub_8010500();
|
||||
}
|
||||
return gUnknown_03003140 == NULL;
|
||||
}
|
||||
|
||||
u8 GetBlockReceivedStatus(void)
|
||||
{
|
||||
if (gSerialIsRFU == TRUE)
|
||||
{
|
||||
return sub_800FCD8();
|
||||
}
|
||||
return (gUnknown_0300307C[3] << 3) | (gUnknown_0300307C[2] << 2) | (gUnknown_0300307C[1] << 1) | (gUnknown_0300307C[0] << 0);
|
||||
}
|
||||
|
||||
void sub_800A588(u8 who)
|
||||
{
|
||||
if (gSerialIsRFU == TRUE)
|
||||
{
|
||||
sub_800F6FC(who);
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_0300307C[who] = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -336,7 +336,7 @@ extern void ProcessDma3Requests(void);
|
||||
|
||||
static void VBlankIntr(void)
|
||||
{
|
||||
if (gLinkVSyncDisabled != FALSE)
|
||||
if (gSerialIsRFU != FALSE)
|
||||
LinkVSync();
|
||||
else if (gUnknown_03002748 == FALSE)
|
||||
sub_800B9B8();
|
||||
|
||||
@@ -177,7 +177,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
|
||||
|
||||
ActionSelectionCreateCursorAt(gActionSelectionCursor[gBankInMenu], 0);
|
||||
|
||||
if (gLinkVSyncDisabled != 0 && gReceivedRemoteLinkPlayers != 0)
|
||||
if (gSerialIsRFU != 0 && gReceivedRemoteLinkPlayers != 0)
|
||||
{
|
||||
sub_800E0E8();
|
||||
sub_800DFB4(0, 0);
|
||||
|
||||
Reference in New Issue
Block a user