summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2018-01-10 13:18:31 -0600
committercamthesaxman <cameronghall@cox.net>2018-01-10 13:18:31 -0600
commitbb2c758e8fa730b2bd19b92119a2bd7e37af57f8 (patch)
tree2574b4b45b52dc72f88d5064ef6b9b5a74a6cec4 /src
parentbeac14a9a0ab072186fa99afcfcc0d844b77a68d (diff)
finish labeling scanline_effect.c
Diffstat (limited to 'src')
-rwxr-xr-xsrc/battle/anim/draw.c4
-rw-r--r--src/battle/battle_2.c20
-rw-r--r--src/battle/battle_4.c4
-rw-r--r--src/battle/battle_controller_player.c4
-rw-r--r--src/battle/battle_transition.c22
-rw-r--r--src/battle/reshow_battle_screen.c10
-rw-r--r--src/contest.c14
-rw-r--r--src/debug/matsuda_debug_menu.c14
-rw-r--r--src/easy_chat_1.c2
-rw-r--r--src/easy_chat_2.c2
-rw-r--r--src/engine/option_menu.c2
-rw-r--r--src/engine/reset_rtc_screen.c2
-rw-r--r--src/engine/trainer_card.c2
-rw-r--r--src/field/field_screen_effect.c6
-rw-r--r--src/field/overworld.c2
-rw-r--r--src/field/start_menu.c2
-rw-r--r--src/pokemon/pokemon_summary_screen.c20
-rw-r--r--src/scanline_effect.c187
-rw-r--r--src/scene/evolution_scene.c24
-rw-r--r--src/scene/hall_of_fame.c2
-rw-r--r--src/scene/title_screen.c2
21 files changed, 174 insertions, 173 deletions
diff --git a/src/battle/anim/draw.c b/src/battle/anim/draw.c
index fc74e3f46..f9e505bf2 100755
--- a/src/battle/anim/draw.c
+++ b/src/battle/anim/draw.c
@@ -53,8 +53,8 @@ void sub_80D0C88(u8 taskId)
}
params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
- params.unk8 = 1;
- params.unk9 = 0;
+ params.initState = 1;
+ params.unused9 = 0;
ScanlineEffect_SetParams(params);
task->func = sub_80D0D68;
}
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index f4fff742c..990535b4e 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -108,9 +108,9 @@ extern u16 gUnknown_02024DE8;
extern u8 gActionSelectionCursor[];
extern u8 gMoveSelectionCursor[];
extern u8 gUnknown_02038470[];
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern struct Window gUnknown_030041D0;
extern u16 gBattle_WIN1H;
extern struct Window gUnknown_03004210;
@@ -219,7 +219,7 @@ void InitBattle(void)
REG_WINOUT = 0;
gBattle_WIN0H = 0xF0;
gBattle_WIN0V = 0x5051;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
{
@@ -242,8 +242,8 @@ void InitBattle(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
gBattleTerrain = BattleSetup_GetTerrain();
Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
Text_InitWindowWithTemplate(&gUnknown_030041D0, &gWindowTemplate_81E71D0);
@@ -1064,8 +1064,8 @@ void sub_800FCFC(void)
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
REG_WIN0H = gBattle_WIN0H;
REG_WIN0V = gBattle_WIN0V;
REG_WIN1H = gBattle_WIN1H;
@@ -1197,7 +1197,7 @@ void c2_8011A1C(void)
REG_WINOUT = 0;
gBattle_WIN0H = 0xF0;
gBattle_WIN0V = 0x5051;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
{
@@ -1218,8 +1218,8 @@ void c2_8011A1C(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
Text_InitWindowWithTemplate(&gUnknown_030041D0, &gWindowTemplate_81E71D0);
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index 164329c1b..ae8f94130 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -93,7 +93,7 @@ extern u16 gChosenMove; //last used move in battle
extern u8 gBankInMenu;
extern u8 gActionForBanks[4];
extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one
extern u8 gCurrentTurnActionNumber;
extern u16 gTrappingMoves[];
@@ -17229,7 +17229,7 @@ static void atkF2_displaydexinfo(void)
LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(0x0600d000));
LoadCompressedPalette(gBattleTerrainPalette_BattleTower, 0x20, 0x60);
REG_BG3CNT = 0x5a0b;
- gUnknown_030041B0 = 0x100;
+ gBattle_BG3_X = 0x100;
BeginNormalPaletteFade(0xfffc, 0, 0x10, 0, 0);
gBattleCommunication[0]++;
}
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 489581132..a5f833b6c 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -67,9 +67,9 @@ extern u8 gUnknown_02024E68[];
extern struct SpriteTemplate gUnknown_02024E8C;
extern u8 gAnimMoveTurn;
extern u8 gUnknown_02038470[];
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG0_X;
diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c
index 843203a1e..f7cdc0694 100644
--- a/src/battle/battle_transition.c
+++ b/src/battle/battle_transition.c
@@ -16,7 +16,7 @@
#include "scanline_effect.h"
void sub_807DE10(void);
-void dp12_8087EA4(void);
+void ScanlineEffect_Clear(void);
extern const struct OamData gFieldOamData_32x32;
@@ -670,7 +670,7 @@ static bool8 Phase2_Transition_Swirl_Func1(struct Task* task)
u16 savedIME;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
sub_811D6E8(gScanlineEffectRegBuffers[1], TRANSITION_STRUCT.field_14, 0, 2, 0, 160);
@@ -730,7 +730,7 @@ static bool8 Phase2_Transition_Shuffle_Func1(struct Task* task)
u16 savedIME;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
memset(gScanlineEffectRegBuffers[1], TRANSITION_STRUCT.field_16, 0x140);
@@ -798,7 +798,7 @@ static bool8 Phase2_Transition_BigPokeball_Func1(struct Task* task)
u16 *dst1, *dst2;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
task->data[1] = 16;
task->data[2] = 0;
@@ -1076,7 +1076,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.WININ = 0;
TRANSITION_STRUCT.WINOUT = 63;
@@ -1269,7 +1269,7 @@ static bool8 Phase2_Transition_Ripple_Func1(struct Task* task)
u8 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 160; i++)
{
@@ -1348,7 +1348,7 @@ static bool8 Phase2_Transition_Wave_Func1(struct Task* task)
u8 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.WININ = 63;
TRANSITION_STRUCT.WINOUT = 0;
@@ -1460,7 +1460,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task* task)
u8 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
Mugshots_CreateOpponentPlayerSprites(task);
task->data[1] = 0;
@@ -1844,7 +1844,7 @@ static bool8 Phase2_Transition_Slice_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
task->data[2] = 256;
task->data[3] = 1;
@@ -1943,7 +1943,7 @@ static bool8 Phase2_Transition_WhiteFade_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.BLDCNT = 0xBF;
TRANSITION_STRUCT.BLDY = 0;
@@ -2158,7 +2158,7 @@ static bool8 Phase2_Transition_Shards_Func1(struct Task* task)
u16 i;
sub_811D658();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
TRANSITION_STRUCT.WININ = 0x3F;
TRANSITION_STRUCT.WINOUT = 0;
diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c
index 83dad5f60..a78cb20df 100644
--- a/src/battle/reshow_battle_screen.c
+++ b/src/battle/reshow_battle_screen.c
@@ -15,9 +15,9 @@ extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG0_X;
extern u16 gBattle_BG1_X;
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern u16 gBattle_BG0_Y;
extern u8 gReservedSpritePaletteCount;
extern u8 gActionSelectionCursor[4];
@@ -77,7 +77,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
switch (gReshowState)
{
case 0:
- dp12_8087EA4();
+ ScanlineEffect_Clear();
Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
@@ -87,8 +87,8 @@ static void CB2_ReshowBattleScreenAfterMenu(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
break;
case 1:
{
diff --git a/src/contest.c b/src/contest.c
index e41838cb1..875fe4502 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -51,9 +51,9 @@ extern u8 gBanksBySide[];
extern u8 gObjectBankIDs[];
extern u8 gIsLinkContest;
extern u8 gContestPlayerMonIndex;
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern s16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern u16 gBattle_WIN1H;
extern struct Window gUnknown_03004210;
extern u16 gBattle_WIN0V;
@@ -330,8 +330,8 @@ void ResetContestGpuRegs(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
gBattle_WIN0H = 0;
gBattle_WIN0V = 0;
gBattle_WIN1H = 0;
@@ -412,7 +412,7 @@ void CB2_StartContest(void)
SetVBlankCallback(NULL);
SetUpContestWindow();
ResetContestGpuRegs();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ResetPaletteFade();
gPaletteFade.bufferTransferDisabled = TRUE;
DmaClearLarge32(3, (void *)VRAM, VRAM_SIZE, 0x1000);
@@ -626,8 +626,8 @@ void ContestVBlankCallback(void)
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
REG_WIN0H = gBattle_WIN0H;
REG_WIN0V = gBattle_WIN0V;
REG_WIN1H = gBattle_WIN1H;
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index 7c250b584..1da337b04 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -35,8 +35,8 @@ extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
-extern u16 gUnknown_030041B0;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
extern struct Window gUnknown_03004210;
extern u8 (*gCallback_03004AE8)(void);
@@ -463,8 +463,8 @@ static void sub_80A9F50(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
}
static void sub_80A9FE4(void)
@@ -511,8 +511,8 @@ static void sub_80AA090(void)
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -528,7 +528,7 @@ static void sub_80AA10C(void)
gPaletteFade.bufferTransferDisabled = 1;
SetVBlankCallback(0);
sub_80A9F50();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ResetPaletteFade();
ResetSpriteData();
ResetTasks();
diff --git a/src/easy_chat_1.c b/src/easy_chat_1.c
index 3bed951d6..4b64846f9 100644
--- a/src/easy_chat_1.c
+++ b/src/easy_chat_1.c
@@ -297,7 +297,7 @@ void sub_80E62F8(void)
SetVBlankCallback(0);
ResetPaletteFade();
ResetSpriteData();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ScanlineEffect_Stop();
sub_80EAD08();
ScanlineEffect_SetParams(gUnknown_083DB698);
diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c
index e7b65bef0..dc8bddd5a 100644
--- a/src/easy_chat_2.c
+++ b/src/easy_chat_2.c
@@ -2053,7 +2053,7 @@ void sub_80EAD08(void)
u16 r2;
u16 i;
- r4 = gScanlineEffectRegBuffers[gScanlineEffect.srcBank];
+ r4 = gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
r4 += 88;
r2 = (gEasyChatStruct->unk1BA - 88) & 0xFF;
diff --git a/src/engine/option_menu.c b/src/engine/option_menu.c
index cb5f66649..1fc78efaa 100644
--- a/src/engine/option_menu.c
+++ b/src/engine/option_menu.c
@@ -3,12 +3,12 @@
#include "main.h"
#include "menu.h"
#include "palette.h"
+#include "scanline_effect.h"
#include "sprite.h"
#include "strings2.h"
#include "task.h"
extern void SetPokemonCryStereo(u32 val);
-extern void ScanlineEffect_Stop(void);
//Task data
enum {
diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c
index d077bc670..a8b49a8eb 100644
--- a/src/engine/reset_rtc_screen.c
+++ b/src/engine/reset_rtc_screen.c
@@ -439,7 +439,7 @@ void CB2_InitResetRtcScreen(void)
ResetOamRange(0, 128);
LoadOam();
ScanlineEffect_Stop();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ResetSpriteData();
ResetTasks();
ResetPaletteFade();
diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c
index be22b24c4..ab43ac716 100644
--- a/src/engine/trainer_card.c
+++ b/src/engine/trainer_card.c
@@ -730,7 +730,7 @@ bool8 sub_8093AA0(struct Task *task)
u32 i;
ewram0_2.var_4 = FALSE;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
for (i = 0; i < 0xA0; i++)
gScanlineEffectRegBuffers[1][i] = -4;
SetHBlankCallback(sub_8093D7C);
diff --git a/src/field/field_screen_effect.c b/src/field/field_screen_effect.c
index bc70e1a63..61301c5a9 100644
--- a/src/field/field_screen_effect.c
+++ b/src/field/field_screen_effect.c
@@ -64,11 +64,11 @@ static void sub_8081424(u8 taskId)
switch (data[0])
{
case 0:
- sub_8081398(&gScanlineEffectRegBuffers[gScanlineEffect.srcBank][0], data[1], data[2], data[3]);
+ sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]);
data[0] = 1;
break;
case 1:
- sub_8081398(&gScanlineEffectRegBuffers[gScanlineEffect.srcBank][0], data[1], data[2], data[3]);
+ sub_8081398(gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer], data[1], data[2], data[3]);
data[0] = 0;
data[3] += data[5];
if (data[3] > data[4])
@@ -85,7 +85,7 @@ static void sub_8081424(u8 taskId)
}
break;
case 2:
- dp12_8087EA4();
+ ScanlineEffect_Clear();
DestroyTask(taskId);
break;
}
diff --git a/src/field/overworld.c b/src/field/overworld.c
index 2590852af..86b0a5dac 100644
--- a/src/field/overworld.c
+++ b/src/field/overworld.c
@@ -1731,7 +1731,7 @@ void sub_8054D4C(u32 a1)
ResetTasks();
ResetSpriteData();
ResetPaletteFade();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
ResetCameraUpdateInfo();
InstallCameraPanAheadCallback();
sub_805C7C4(0);
diff --git a/src/field/start_menu.c b/src/field/start_menu.c
index 6017f56bf..d6881cb01 100644
--- a/src/field/start_menu.c
+++ b/src/field/start_menu.c
@@ -771,7 +771,7 @@ static bool32 sub_80719FC(u8 *step)
ResetSpriteData();
ResetTasks();
ResetPaletteFade();
- dp12_8087EA4();
+ ScanlineEffect_Clear();
break;
case 2:
Text_LoadWindowTemplate(&gWindowTemplate_81E6CE4);
diff --git a/src/pokemon/pokemon_summary_screen.c b/src/pokemon/pokemon_summary_screen.c
index ec327796a..bf8306fc0 100644
--- a/src/pokemon/pokemon_summary_screen.c
+++ b/src/pokemon/pokemon_summary_screen.c
@@ -123,12 +123,12 @@ extern u8 StorageSystemGetNextMonIndex(struct BoxPokemon *, u8, u8, u8);
extern struct MusicPlayerInfo gMPlay_BGM;
extern u8 gUnknown_020384F0;
extern u8 gUnknown_08208238[];
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_Y;
extern u16 gBattle_BG2_Y;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG1_X;
extern u16 gBattle_BG2_X;
-extern u16 gUnknown_030041B0;
+extern u16 gBattle_BG3_X;
extern TaskFunc gUnknown_03005CF0;
extern struct Sprite *gUnknown_020384F4;
extern struct SpriteTemplate gUnknown_02024E8C;
@@ -586,8 +586,8 @@ void sub_809D85C(void)
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
@@ -813,11 +813,11 @@ bool8 sub_809DA84(void)
case 20:
if (GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
{
- gUnknown_030041B0 = 256;
+ gBattle_BG3_X = 256;
}
else
{
- gUnknown_030041B0 = 0;
+ gBattle_BG3_X = 0;
}
gMain.state++;
@@ -872,8 +872,8 @@ static void sub_809DE64(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 0;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 0;
+ gBattle_BG3_Y = 0;
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
@@ -2176,11 +2176,11 @@ void sub_809F43C(u8 taskId)
pssData.loadGfxState = 0;
if (GetMonData(&pssData.loadedMon, MON_DATA_IS_EGG))
{
- gUnknown_030041B0 = 256;
+ gBattle_BG3_X = 256;
}
else
{
- gUnknown_030041B0 = 0;
+ gBattle_BG3_X = 0;
}
gMain.state++;
diff --git a/src/scanline_effect.c b/src/scanline_effect.c
index 0fa5b024d..b4de0689f 100644
--- a/src/scanline_effect.c
+++ b/src/scanline_effect.c
@@ -13,10 +13,10 @@ extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
-extern u16 gUnknown_030041B0;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
-EWRAM_DATA static u8 gUnknown_0202FFA4 = 0;
+EWRAM_DATA static u8 sShouldStopWaveTask = FALSE;
struct ScanlineEffect gScanlineEffect;
@@ -27,27 +27,27 @@ u16 gScanlineEffectRegBuffers[2][0x3C0];
void ScanlineEffect_Stop(void)
{
- gScanlineEffect.unk15 = 0;
+ gScanlineEffect.state = 0;
DmaStop(0);
- if (gScanlineEffect.taskId != 0xFF)
+ if (gScanlineEffect.waveTaskId != 0xFF)
{
- DestroyTask(gScanlineEffect.taskId);
- gScanlineEffect.taskId = 0xFF;
+ DestroyTask(gScanlineEffect.waveTaskId);
+ gScanlineEffect.waveTaskId = 0xFF;
}
}
-void dp12_8087EA4(void)
+void ScanlineEffect_Clear(void)
{
CpuFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers));
- gScanlineEffect.src[0] = NULL;
- gScanlineEffect.src[1] = NULL;
+ gScanlineEffect.dmaSrcBuffers[0] = NULL;
+ gScanlineEffect.dmaSrcBuffers[1] = NULL;
gScanlineEffect.dmaDest = NULL;
gScanlineEffect.dmaControl = 0;
- gScanlineEffect.srcBank = 0;
- gScanlineEffect.unk15 = 0;
- gScanlineEffect.unk16 = 0;
- gScanlineEffect.unk17 = 0;
- gScanlineEffect.taskId = 0xFF;
+ gScanlineEffect.srcBuffer = 0;
+ gScanlineEffect.state = 0;
+ gScanlineEffect.unused16 = 0;
+ gScanlineEffect.unused17 = 0;
+ gScanlineEffect.waveTaskId = 0xFF;
}
void ScanlineEffect_SetParams(struct ScanlineEffectParams params)
@@ -56,48 +56,49 @@ void ScanlineEffect_SetParams(struct ScanlineEffectParams params)
{
// Set the DMA src to the value for the second scanline because the
// first DMA transfer occurs in HBlank *after* the first scanline is drawn
- gScanlineEffect.src[0] = (u16 *)gScanlineEffectRegBuffers[0] + 1;
- gScanlineEffect.src[1] = (u16 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.dmaSrcBuffers[0] = (u16 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u16 *)gScanlineEffectRegBuffers[1] + 1;
gScanlineEffect.setFirstScanlineReg = CopyValue16Bit;
}
else // assume 32-bit
{
// Set the DMA src to the value for the second scanline because the
// first DMA transfer occurs in HBlank *after* the first scanline is drawn
- gScanlineEffect.src[0] = (u32 *)gScanlineEffectRegBuffers[0] + 1;
- gScanlineEffect.src[1] = (u32 *)gScanlineEffectRegBuffers[1] + 1;
+ gScanlineEffect.dmaSrcBuffers[0] = (u32 *)gScanlineEffectRegBuffers[0] + 1;
+ gScanlineEffect.dmaSrcBuffers[1] = (u32 *)gScanlineEffectRegBuffers[1] + 1;
gScanlineEffect.setFirstScanlineReg = CopyValue32Bit;
}
gScanlineEffect.dmaControl = params.dmaControl;
- gScanlineEffect.dmaDest = params.dmaDest;
- gScanlineEffect.unk15 = params.unk8;
- gScanlineEffect.unk16 = params.unk9;
- gScanlineEffect.unk17 = params.unk9;
+ gScanlineEffect.dmaDest = params.dmaDest;
+ gScanlineEffect.state = params.initState;
+ gScanlineEffect.unused16 = params.unused9;
+ gScanlineEffect.unused17 = params.unused9;
}
void ScanlineEffect_InitHBlankDmaTransfer(void)
{
- if (gScanlineEffect.unk15 != 0)
+ if (gScanlineEffect.state == 0)
{
- if (gScanlineEffect.unk15 == 3)
- {
- gScanlineEffect.unk15 = 0;
- DmaStop(0);
- gUnknown_0202FFA4 = 1;
- }
- else
- {
- DmaStop(0);
- // Set DMA to copy to dest register on each HBlank for the next frame.
- // The HBlank DMA transfers do not occurr during VBlank, so the transfer
- // will begin on the HBlank after the first scanline
- DmaSet(0, gScanlineEffect.src[gScanlineEffect.srcBank], gScanlineEffect.dmaDest, gScanlineEffect.dmaControl);
- // Manually set the reg for the first scanline
- gScanlineEffect.setFirstScanlineReg();
- // Swap current buffer
- gScanlineEffect.srcBank ^= 1;
- }
+ return;
+ }
+ else if (gScanlineEffect.state == 3)
+ {
+ gScanlineEffect.state = 0;
+ DmaStop(0);
+ sShouldStopWaveTask = TRUE;
+ }
+ else
+ {
+ DmaStop(0);
+ // Set DMA to copy to dest register on each HBlank for the next frame.
+ // The HBlank DMA transfers do not occurr during VBlank, so the transfer
+ // will begin on the HBlank after the first scanline
+ DmaSet(0, gScanlineEffect.dmaSrcBuffers[gScanlineEffect.srcBuffer], gScanlineEffect.dmaDest, gScanlineEffect.dmaControl);
+ // Manually set the reg for the first scanline
+ gScanlineEffect.setFirstScanlineReg();
+ // Swap current buffer
+ gScanlineEffect.srcBuffer ^= 1;
}
}
@@ -107,7 +108,7 @@ void ScanlineEffect_InitHBlankDmaTransfer(void)
static void CopyValue16Bit(void)
{
u16 *dest = (u16 *)gScanlineEffect.dmaDest;
- u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBank];
+ u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
*dest = *src;
}
@@ -115,86 +116,87 @@ static void CopyValue16Bit(void)
static void CopyValue32Bit(void)
{
u32 *dest = (u32 *)gScanlineEffect.dmaDest;
- u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBank];
+ u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
*dest = *src;
}
-#define tStartLine data[0]
-#define tEndLine data[1]
-#define framesUntilMove data[4]
-#define tDelayInterval data[5]
-#define tRegOffset data[6]
+#define tStartLine data[0]
+#define tEndLine data[1]
+#define tWaveLength data[2]
+#define tSrcBufferOffset data[3]
+#define tFramesUntilMove data[4]
+#define tDelayInterval data[5]
+#define tRegOffset data[6]
+#define tApplyBattleBgOffsets data[7]
static void TaskFunc_UpdateWavePerFrame(u8 taskId)
{
int value = 0;
+ int i;
+ int offset;
- if (gUnknown_0202FFA4)
+ if (sShouldStopWaveTask)
{
DestroyTask(taskId);
- gScanlineEffect.taskId = 0xFF;
+ gScanlineEffect.waveTaskId = 0xFF;
}
else
{
- if (gTasks[taskId].data[7])
+ if (gTasks[taskId].tApplyBattleBgOffsets)
{
switch (gTasks[taskId].tRegOffset)
{
- case 0x0:
+ case SCANLINE_EFFECT_REG_BG0HOFS:
value = gBattle_BG0_X;
break;
- case 0x2:
+ case SCANLINE_EFFECT_REG_BG0VOFS:
value = gBattle_BG0_Y;
break;
- case 0x4:
+ case SCANLINE_EFFECT_REG_BG1HOFS:
value = gBattle_BG1_X;
break;
- case 0x6:
+ case SCANLINE_EFFECT_REG_BG1VOFS:
value = gBattle_BG1_Y;
break;
- case 0x8:
+ case SCANLINE_EFFECT_REG_BG2HOFS:
value = gBattle_BG2_X;
break;
- case 0xA:
+ case SCANLINE_EFFECT_REG_BG2VOFS:
value = gBattle_BG2_Y;
break;
- case 0xC:
- value = gUnknown_030041B0;
+ case SCANLINE_EFFECT_REG_BG3HOFS:
+ value = gBattle_BG3_X;
break;
- case 0xE:
- value = gUnknown_030041B8;
+ case SCANLINE_EFFECT_REG_BG3VOFS:
+ value = gBattle_BG3_Y;
break;
}
}
- if (gTasks[taskId].framesUntilMove != 0)
+ if (gTasks[taskId].tFramesUntilMove != 0)
{
- int i;
- int offset;
-
- gTasks[taskId].framesUntilMove--;
- offset = gTasks[taskId].data[3] + 320;
+ gTasks[taskId].tFramesUntilMove--;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
{
- gScanlineEffectRegBuffers[gScanlineEffect.srcBank][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
offset++;
}
}
else
{
- int i;
- int offset;
-
- gTasks[taskId].framesUntilMove = gTasks[taskId].tDelayInterval;
- offset = gTasks[taskId].data[3] + 320;
+ gTasks[taskId].tFramesUntilMove = gTasks[taskId].tDelayInterval;
+ offset = gTasks[taskId].tSrcBufferOffset + 320;
for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
{
- gScanlineEffectRegBuffers[gScanlineEffect.srcBank][i] = gScanlineEffectRegBuffers[0][offset] + value;
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = gScanlineEffectRegBuffers[0][offset] + value;
offset++;
}
- gTasks[taskId].data[3]++;
- if (gTasks[taskId].data[3] == gTasks[taskId].data[2])
- gTasks[taskId].data[3] = 0;
+
+ // increment src buffer offset
+ gTasks[taskId].tSrcBufferOffset++;
+ if (gTasks[taskId].tSrcBufferOffset == gTasks[taskId].tWaveLength)
+ gTasks[taskId].tSrcBufferOffset = 0;
}
}
}
@@ -216,39 +218,38 @@ static void GenerateWave(u16 *buffer, u8 frequency, u8 amplitude, u8 unused)
// 'frequency' and 'amplitude' control the frequency and amplitude of the wave.
// 'delayInterval' controls how fast the wave travels up the screen. The wave will shift upwards one scanline every 'delayInterval'+1 frames.
// 'regOffset' is the offset of the video register to modify.
-u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 a7)
+u8 ScanlineEffect_InitWave(u8 startLine, u8 endLine, u8 frequency, u8 amplitude, u8 delayInterval, u8 regOffset, bool8 applyBattleBgOffsets)
{
int i;
int offset;
struct ScanlineEffectParams params;
u8 taskId;
- dp12_8087EA4();
+ ScanlineEffect_Clear();
params.dmaDest = (void *)(REG_ADDR_BG0HOFS + regOffset);
params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
- params.unk8 = 1;
- params.unk9 = 0;
+ params.initState = 1;
+ params.unused9 = 0;
ScanlineEffect_SetParams(params);
taskId = CreateTask(TaskFunc_UpdateWavePerFrame, 0);
- gTasks[taskId].tStartLine = startLine;
- gTasks[taskId].tEndLine = endLine;
- gTasks[taskId].data[2] = 256 / frequency;
- gTasks[taskId].data[3] = 0;
- gTasks[taskId].framesUntilMove = delayInterval;
- gTasks[taskId].tDelayInterval = delayInterval;
- gTasks[taskId].tRegOffset = regOffset;
- gTasks[taskId].data[7] = a7;
+ gTasks[taskId].tStartLine = startLine;
+ gTasks[taskId].tEndLine = endLine;
+ gTasks[taskId].tWaveLength = 256 / frequency;
+ gTasks[taskId].tSrcBufferOffset = 0;
+ gTasks[taskId].tFramesUntilMove = delayInterval;
+ gTasks[taskId].tDelayInterval = delayInterval;
+ gTasks[taskId].tRegOffset = regOffset;
+ gTasks[taskId].tApplyBattleBgOffsets = applyBattleBgOffsets;
- gScanlineEffect.taskId = taskId;
- gUnknown_0202FFA4 = 0;
+ gScanlineEffect.waveTaskId = taskId;
+ sShouldStopWaveTask = FALSE;
GenerateWave(&gScanlineEffectRegBuffers[0][320], frequency, amplitude, endLine - startLine);
offset = 320;
-
for (i = startLine; i < endLine; i++)
{
gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[0][offset];
diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c
index aeea3e292..53eb2f1e8 100644
--- a/src/scene/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -71,8 +71,8 @@ extern u16 gBattle_BG1_X;
extern u16 gBattle_BG1_Y;
extern u16 gBattle_BG2_X;
extern u16 gBattle_BG2_Y;
-extern u16 gUnknown_030041B0;
-extern u16 gUnknown_030041B8;
+extern u16 gBattle_BG3_X;
+extern u16 gBattle_BG3_Y;
extern u8 gBattleTerrain;
extern u8 gReservedSpritePaletteCount;
extern u16 gMoveToLearn;
@@ -206,8 +206,8 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo,
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 256;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 256;
+ gBattle_BG3_Y = 0;
Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
gBattleTerrain = BATTLE_TERRAIN_PLAIN;
@@ -314,8 +314,8 @@ static void CB2_EvolutionSceneLoadGraphics(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 256;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 256;
+ gBattle_BG3_Y = 0;
Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58);
gBattleTerrain = BATTLE_TERRAIN_PLAIN;
@@ -368,8 +368,8 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
gBattle_BG1_Y = 0;
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
- gUnknown_030041B0 = 256;
- gUnknown_030041B8 = 0;
+ gBattle_BG3_X = 256;
+ gBattle_BG3_Y = 0;
gMain.state++;
break;
case 1:
@@ -3929,8 +3929,8 @@ static void VBlankCB_EvolutionScene(void)
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -3945,8 +3945,8 @@ static void VBlankCB_TradeEvolutionScene(void)
REG_BG1VOFS = gBattle_BG1_Y;
REG_BG2HOFS = gBattle_BG2_X;
REG_BG2VOFS = gBattle_BG2_Y;
- REG_BG3HOFS = gUnknown_030041B0;
- REG_BG3VOFS = gUnknown_030041B8;
+ REG_BG3HOFS = gBattle_BG3_X;
+ REG_BG3VOFS = gBattle_BG3_Y;
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
diff --git a/src/scene/hall_of_fame.c b/src/scene/hall_of_fame.c
index f39745c02..303dcf3e0 100644
--- a/src/scene/hall_of_fame.c
+++ b/src/scene/hall_of_fame.c
@@ -16,6 +16,7 @@
#include "data2.h"
#include "decompress.h"
#include "random.h"
+#include "scanline_effect.h"
#include "trig.h"
#include "ewram.h"
@@ -95,7 +96,6 @@ bool8 sub_80C5DCC(void);
bool8 sub_80C5F98(void);
void ReturnFromHallOfFamePC(void);
u16 SpeciesToPokedexNum(u16 species);
-void ScanlineEffect_Stop(void);
// data and gfx
diff --git a/src/scene/title_screen.c b/src/scene/title_screen.c
index 2de3554fe..202b752a6 100644
--- a/src/scene/title_screen.c
+++ b/src/scene/title_screen.c
@@ -711,7 +711,7 @@ void CB2_InitTitleScreen(void)
if (!UpdatePaletteFade())
{
StartPokemonLogoShine(FALSE);
- ScanlineEffect_InitWave(0, DISPLAY_HEIGHT, 4, 4, 0, 4, 1);
+ ScanlineEffect_InitWave(0, DISPLAY_HEIGHT, 4, 4, 0, SCANLINE_EFFECT_REG_BG1HOFS, TRUE);
SetMainCallback2(MainCB2);
}
break;