summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/battle_anim_812C144.s26
-rwxr-xr-xasm/battle_intro.s24
-rw-r--r--asm/contest_link_80C2020.s2
-rwxr-xr-xasm/dark.s24
-rwxr-xr-xasm/dragon.s10
-rwxr-xr-xasm/ground.s8
-rw-r--r--asm/pokenav.s16
-rwxr-xr-xasm/psychic.s10
-rwxr-xr-xasm/water.s26
-rw-r--r--common_syms/scanline_effect.txt2
-rw-r--r--include/data2.h4
-rw-r--r--include/scanline_effect.h27
-rwxr-xr-xsrc/battle/anim/draw.c28
-rw-r--r--src/battle/battle_2.c22
-rw-r--r--src/battle/battle_transition.c148
-rw-r--r--src/contest.c2
-rw-r--r--src/debug/matsuda_debug_menu.c2
-rw-r--r--src/easy_chat_1.c6
-rw-r--r--src/easy_chat_2.c2
-rw-r--r--src/engine/trainer_card.c28
-rw-r--r--src/field/field_screen_effect.c18
-rw-r--r--src/field/overworld.c6
-rw-r--r--src/field/use_pokeblock.c4
-rw-r--r--src/pokenav_before.c2
-rw-r--r--src/scanline_effect.c170
-rw-r--r--src/scene/evolution_scene.c4
-rw-r--r--src/scene/title_screen.c4
-rw-r--r--sym_common.txt24
-rw-r--r--sym_ewram.txt7
29 files changed, 328 insertions, 328 deletions
diff --git a/asm/battle_anim_812C144.s b/asm/battle_anim_812C144.s
index 5fc9199eb..8a6a8fffa 100644
--- a/asm/battle_anim_812C144.s
+++ b/asm/battle_anim_812C144.s
@@ -1752,7 +1752,7 @@ _0812CE70:
ldrsh r0, [r5, r6]
cmp r1, r0
bgt _0812CEA6
- ldr r4, _0812CEB0 @ =gUnknown_03004DE0
+ ldr r4, _0812CEB0 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r4
@@ -1777,7 +1777,7 @@ _0812CEA6:
ldr r0, _0812CEB4 @ =REG_BG1HOFS
b _0812CEBA
.align 2, 0
-_0812CEB0: .4byte gUnknown_03004DE0
+_0812CEB0: .4byte gScanlineEffectRegBuffers
_0812CEB4: .4byte REG_BG1HOFS
_0812CEB8:
ldr r0, _0812CEE4 @ =REG_BG2HOFS
@@ -1794,7 +1794,7 @@ _0812CEBA:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldr r0, _0812CEEC @ =sub_812CEF0
str r0, [r5]
add sp, 0xC
@@ -1889,7 +1889,7 @@ _0812CF74:
ldrsh r0, [r4, r2]
cmp r1, r0
bge _0812CFA8
- ldr r5, _0812D000 @ =gUnknown_03004DE0
+ ldr r5, _0812D000 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1917,7 +1917,7 @@ _0812CFA8:
ldrsh r0, [r4, r2]
cmp r1, r0
bgt _0812CFDC
- ldr r5, _0812D000 @ =gUnknown_03004DE0
+ ldr r5, _0812D000 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1957,7 +1957,7 @@ _0812CFF8:
pop {r0}
bx r0
.align 2, 0
-_0812D000: .4byte gUnknown_03004DE0
+_0812D000: .4byte gScanlineEffectRegBuffers
_0812D004: .4byte gScanlineEffect
thumb_func_end sub_812CEF0
@@ -6545,7 +6545,7 @@ _0812F3EE:
ldrh r3, [r0]
movs r7, 0
movs r2, 0
- ldr r6, _0812F468 @ =gUnknown_03004DE0
+ ldr r6, _0812F468 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r0, r6
@@ -6586,7 +6586,7 @@ _0812F3FE:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldr r0, _0812F470 @ =sub_812F474
str r0, [r4]
add sp, 0xC
@@ -6599,7 +6599,7 @@ _0812F458: .4byte REG_BLDCNT
_0812F45C: .4byte 0x00003f44
_0812F460: .4byte gBattle_BG2_X
_0812F464: .4byte gBattle_BG2_Y
-_0812F468: .4byte gUnknown_03004DE0
+_0812F468: .4byte gScanlineEffectRegBuffers
_0812F46C: .4byte 0xa6600001
_0812F470: .4byte sub_812F474
thumb_func_end sub_812F314
@@ -6732,7 +6732,7 @@ _0812F55A:
subs r0, r1
lsls r0, 7
adds r2, r0
- ldr r0, _0812F664 @ =gUnknown_03004DE0
+ ldr r0, _0812F664 @ =gScanlineEffectRegBuffers
adds r2, r0
lsls r4, 16
asrs r4, 16
@@ -6750,7 +6750,7 @@ _0812F55A:
subs r0, r1
lsls r0, 7
adds r3, r0
- ldr r1, _0812F664 @ =gUnknown_03004DE0
+ ldr r1, _0812F664 @ =gScanlineEffectRegBuffers
adds r3, r1
lsls r1, r7, 16
asrs r1, 16
@@ -6814,7 +6814,7 @@ _0812F60A:
lsls r1, r2, 17
cmp r1, 0
blt _0812F636
- ldr r4, _0812F664 @ =gUnknown_03004DE0
+ ldr r4, _0812F664 @ =gScanlineEffectRegBuffers
ldr r7, [sp, 0x4]
lsls r0, r7, 16
asrs r0, 16
@@ -6857,7 +6857,7 @@ _0812F636:
b _0812F676
.align 2, 0
_0812F660: .4byte gScanlineEffect
-_0812F664: .4byte gUnknown_03004DE0
+_0812F664: .4byte gScanlineEffectRegBuffers
_0812F668: .4byte gSineTable
_0812F66C: .4byte 0xffff0000
_0812F670:
diff --git a/asm/battle_intro.s b/asm/battle_intro.s
index 16689a911..3f3c58a65 100755
--- a/asm/battle_intro.s
+++ b/asm/battle_intro.s
@@ -301,7 +301,7 @@ _080E45FE:
movs r3, 0
ldr r5, _080E46A0 @ =gScanlineEffect
mov r9, r5
- ldr r7, _080E46A4 @ =gUnknown_03004DE0
+ ldr r7, _080E46A4 @ =gScanlineEffectRegBuffers
mov r6, r9
adds r5, r1, 0
_080E460A:
@@ -319,7 +319,7 @@ _080E460A:
ble _080E460A
cmp r3, 0x9F
bgt _080E464E
- ldr r7, _080E46A4 @ =gUnknown_03004DE0
+ ldr r7, _080E46A4 @ =gScanlineEffectRegBuffers
ldr r6, _080E46A0 @ =gScanlineEffect
ldr r1, _080E46A8 @ =gTasks
mov r2, r12
@@ -378,7 +378,7 @@ _080E4694: .4byte 0x0000ffc8
_080E4698: .4byte gBattle_WIN0V
_080E469C: .4byte 0xfffffc04
_080E46A0: .4byte gScanlineEffect
-_080E46A4: .4byte gUnknown_03004DE0
+_080E46A4: .4byte gScanlineEffectRegBuffers
_080E46A8: .4byte gTasks
_080E46AC: .4byte 0x0600e000
_080E46B0: .4byte 0x05000200
@@ -671,7 +671,7 @@ _080E48E0:
movs r3, 0
ldr r4, _080E4978 @ =gScanlineEffect
mov r8, r4
- ldr r0, _080E497C @ =gUnknown_03004DE0
+ ldr r0, _080E497C @ =gScanlineEffectRegBuffers
mov r12, r0
mov r7, r8
adds r4, r1, 0
@@ -690,7 +690,7 @@ _080E48EE:
ble _080E48EE
cmp r3, 0x9F
bgt _080E4932
- ldr r1, _080E497C @ =gUnknown_03004DE0
+ ldr r1, _080E497C @ =gScanlineEffectRegBuffers
mov r12, r1
ldr r7, _080E4978 @ =gScanlineEffect
ldr r1, _080E4980 @ =gTasks
@@ -746,7 +746,7 @@ _080E4932:
_080E4970: .4byte gBattle_WIN0V
_080E4974: .4byte 0xfffffc04
_080E4978: .4byte gScanlineEffect
-_080E497C: .4byte gUnknown_03004DE0
+_080E497C: .4byte gScanlineEffectRegBuffers
_080E4980: .4byte gTasks
_080E4984: .4byte 0x0600e000
_080E4988: .4byte 0x05000200
@@ -980,7 +980,7 @@ _080E4B50:
movs r3, 0
ldr r6, _080E4BE8 @ =gScanlineEffect
mov r8, r6
- ldr r7, _080E4BEC @ =gUnknown_03004DE0
+ ldr r7, _080E4BEC @ =gScanlineEffectRegBuffers
adds r5, r1, 0
_080E4B5A:
lsls r2, r3, 1
@@ -997,7 +997,7 @@ _080E4B5A:
ble _080E4B5A
cmp r3, 0x9F
bgt _080E4B9E
- ldr r7, _080E4BEC @ =gUnknown_03004DE0
+ ldr r7, _080E4BEC @ =gScanlineEffectRegBuffers
ldr r6, _080E4BE8 @ =gScanlineEffect
ldr r1, _080E4BF0 @ =gTasks
mov r2, r12
@@ -1054,7 +1054,7 @@ _080E4B9E:
_080E4BE0: .4byte gBattle_WIN0V
_080E4BE4: .4byte 0xfffffc04
_080E4BE8: .4byte gScanlineEffect
-_080E4BEC: .4byte gUnknown_03004DE0
+_080E4BEC: .4byte gScanlineEffectRegBuffers
_080E4BF0: .4byte gTasks
_080E4BF4: .4byte 0x0600e000
_080E4BF8: .4byte 0x05000200
@@ -1325,7 +1325,7 @@ _080E4E16:
movs r3, 0
ldr r0, _080E4EA4 @ =gScanlineEffect
mov r9, r0
- ldr r2, _080E4EA8 @ =gUnknown_03004DE0
+ ldr r2, _080E4EA8 @ =gScanlineEffectRegBuffers
mov r8, r2
mov r7, r9
adds r4, r1, 0
@@ -1344,7 +1344,7 @@ _080E4E24:
ble _080E4E24
cmp r3, 0x9F
bgt _080E4E68
- ldr r0, _080E4EA8 @ =gUnknown_03004DE0
+ ldr r0, _080E4EA8 @ =gScanlineEffectRegBuffers
mov r8, r0
ldr r7, _080E4EA4 @ =gScanlineEffect
ldr r1, _080E4EAC @ =gTasks
@@ -1396,7 +1396,7 @@ _080E4E94:
_080E4E9C: .4byte gBattle_WIN0V
_080E4EA0: .4byte 0xfffffc04
_080E4EA4: .4byte gScanlineEffect
-_080E4EA8: .4byte gUnknown_03004DE0
+_080E4EA8: .4byte gScanlineEffectRegBuffers
_080E4EAC: .4byte gTasks
_080E4EB0: .4byte REG_BG1CNT
_080E4EB4:
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index 9d9ead35b..9cf156f07 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -532,7 +532,7 @@ sub_80C2448: @ 80C2448
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- bl ScanlineEffect_TransferDma
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
diff --git a/asm/dark.s b/asm/dark.s
index 37fdace81..9e09d8fbe 100755
--- a/asm/dark.s
+++ b/asm/dark.s
@@ -386,7 +386,7 @@ _080E01F4:
movs r0, 0x3
bl sub_80E08CC
movs r3, 0
- ldr r4, _080E0290 @ =gUnknown_03004DE0
+ ldr r4, _080E0290 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r4, r0
@@ -406,7 +406,7 @@ _080E0220:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldr r1, _080E0294 @ =REG_WINOUT
movs r0, 0x3F
eors r7, r0
@@ -441,7 +441,7 @@ _080E0280: .4byte 0x00003f44
_080E0284: .4byte REG_BG2VOFS
_080E0288: .4byte gBattle_BG1_X
_080E028C: .4byte 0xa2600001
-_080E0290: .4byte gUnknown_03004DE0
+_080E0290: .4byte gScanlineEffectRegBuffers
_080E0294: .4byte REG_WINOUT
_080E0298: .4byte gBattle_WIN0H
_080E029C: .4byte gBattle_WIN0V
@@ -786,7 +786,7 @@ _080E054E:
str r0, [sp, 0xC]
movs r3, 0
add r4, sp, 0xC
- ldr r6, _080E059C @ =gUnknown_03004DE0
+ ldr r6, _080E059C @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r7, r6, r0
@@ -815,7 +815,7 @@ _080E055C:
strb r2, [r4, 0x9]
ldr r0, [sp, 0xC]
ldr r2, [r4, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
_080E0590:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -823,7 +823,7 @@ _080E0590:
b _080E05F2
.align 2, 0
_080E0598: .4byte REG_BG2VOFS
-_080E059C: .4byte gUnknown_03004DE0
+_080E059C: .4byte gScanlineEffectRegBuffers
_080E05A0: .4byte 0xa2600001
_080E05A4:
movs r1, 0xE
@@ -1102,7 +1102,7 @@ sub_80E079C: @ 80E079C
movs r4, 0
cmp r0, 0
ble _080E07FC
- ldr r0, _080E0888 @ =gUnknown_03004DE0
+ ldr r0, _080E0888 @ =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, _080E088C @ =gScanlineEffect
_080E07D0:
@@ -1136,7 +1136,7 @@ _080E07FC:
ldrsh r0, [r6, r2]
cmp r1, r0
bgt _080E0846
- ldr r0, _080E0888 @ =gUnknown_03004DE0
+ ldr r0, _080E0888 @ =gScanlineEffectRegBuffers
mov r12, r0
ldr r7, _080E088C @ =gScanlineEffect
_080E0810:
@@ -1179,7 +1179,7 @@ _080E0846:
ldrsh r0, [r6, r3]
cmp r1, r0
bge _080E08BE
- ldr r7, _080E0888 @ =gUnknown_03004DE0
+ ldr r7, _080E0888 @ =gScanlineEffectRegBuffers
ldr r4, _080E088C @ =gScanlineEffect
_080E085E:
asrs r3, r2, 16
@@ -1204,7 +1204,7 @@ _080E0876:
blt _080E085E
b _080E08BE
.align 2, 0
-_080E0888: .4byte gUnknown_03004DE0
+_080E0888: .4byte gScanlineEffectRegBuffers
_080E088C: .4byte gScanlineEffect
_080E0890:
movs r1, 0x1C
@@ -1212,7 +1212,7 @@ _080E0890:
adds r5, r0, 0
adds r5, 0x9F
movs r4, 0
- ldr r3, _080E08C8 @ =gUnknown_03004DE0
+ ldr r3, _080E08C8 @ =gScanlineEffectRegBuffers
movs r2, 0xF0
lsls r2, 3
adds r6, r3, r2
@@ -1238,7 +1238,7 @@ _080E08BE:
pop {r0}
bx r0
.align 2, 0
-_080E08C8: .4byte gUnknown_03004DE0
+_080E08C8: .4byte gScanlineEffectRegBuffers
thumb_func_end sub_80E079C
thumb_func_start sub_80E08CC
diff --git a/asm/dragon.s b/asm/dragon.s
index c9a2d490a..59fdc4b68 100755
--- a/asm/dragon.s
+++ b/asm/dragon.s
@@ -510,7 +510,7 @@ _080DF996:
ldrsh r0, [r4, r1]
cmp r3, r0
bgt _080DF9C4
- ldr r5, _080DF9EC @ =gUnknown_03004DE0
+ ldr r5, _080DF9EC @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -533,7 +533,7 @@ _080DF9C4:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldr r0, _080DF9F0 @ =sub_80DF9F4
str r0, [r4]
add sp, 0xC
@@ -545,7 +545,7 @@ _080DF9DC: .4byte REG_BG2HOFS
_080DF9E0: .4byte gBattle_BG2_X
_080DF9E4: .4byte 0xa2600001
_080DF9E8: .4byte gAnimBankAttacker
-_080DF9EC: .4byte gUnknown_03004DE0
+_080DF9EC: .4byte gScanlineEffectRegBuffers
_080DF9F0: .4byte sub_80DF9F4
thumb_func_end sub_80DF924
@@ -659,7 +659,7 @@ sub_80DFAB0: @ 80DFAB0
ldrsh r0, [r5, r1]
cmp r4, r0
bgt _080DFB06
- ldr r7, _080DFB1C @ =gUnknown_03004DE0
+ ldr r7, _080DFB1C @ =gScanlineEffectRegBuffers
mov r12, r7
ldr r0, _080DFB20 @ =gSineTable
mov r8, r0
@@ -705,7 +705,7 @@ _080DFB06:
pop {r0}
bx r0
.align 2, 0
-_080DFB1C: .4byte gUnknown_03004DE0
+_080DFB1C: .4byte gScanlineEffectRegBuffers
_080DFB20: .4byte gSineTable
_080DFB24: .4byte gScanlineEffect
thumb_func_end sub_80DFAB0
diff --git a/asm/ground.s b/asm/ground.s
index 00abfd4f3..0ba721042 100755
--- a/asm/ground.s
+++ b/asm/ground.s
@@ -980,7 +980,7 @@ _080E169C:
asrs r4, r0, 16
cmp r2, r0
bge _080E16C8
- ldr r5, _080E1720 @ =gUnknown_03004DE0
+ ldr r5, _080E1720 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1003,7 +1003,7 @@ _080E16C8:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080E16F6
- ldr r4, _080E1720 @ =gUnknown_03004DE0
+ ldr r4, _080E1720 @ =gScanlineEffectRegBuffers
lsls r0, r3, 16
asrs r0, 16
adds r3, r0, 0
@@ -1035,7 +1035,7 @@ _080E16F6:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -1043,7 +1043,7 @@ _080E16F6:
.align 2, 0
_080E1718: .4byte gBattle_BG2_X
_080E171C: .4byte REG_BG2HOFS
-_080E1720: .4byte gUnknown_03004DE0
+_080E1720: .4byte gScanlineEffectRegBuffers
_080E1724: .4byte 0xa2600001
thumb_func_end sub_80E1668
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 3e410872e..e1b30bdf7 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -10957,7 +10957,7 @@ _080F5B68: .4byte gUnknown_083DFEC4
_080F5B6C: .4byte 0x00009345
_080F5B70:
bl dp12_8087EA4
- ldr r0, _080F5BA8 @ =gUnknown_03004DE0
+ ldr r0, _080F5BA8 @ =gScanlineEffectRegBuffers
movs r2, 0xEF
movs r3, 0xF4
lsls r3, 3
@@ -10984,7 +10984,7 @@ _080F5B82:
movs r0, 0x1
b _080F5BCE
.align 2, 0
-_080F5BA8: .4byte gUnknown_03004DE0
+_080F5BA8: .4byte gScanlineEffectRegBuffers
_080F5BAC: .4byte gUnknown_083DFEC4
_080F5BB0: .4byte 0x00009345
_080F5BB4:
@@ -10995,7 +10995,7 @@ _080F5BB4:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -11016,7 +11016,7 @@ sub_80F5BDC: @ 80F5BDC
ldr r1, _080F5BEC @ =gScanlineEffect
movs r0, 0x3
strb r0, [r1, 0x15]
- bl ScanlineEffect_TransferDma
+ bl ScanlineEffect_InitHBlankDmaTransfer
pop {r0}
bx r0
.align 2, 0
@@ -11045,7 +11045,7 @@ sub_80F5BF0: @ 80F5BF0
adds r0, r4, 0
bl sub_80F5A1C
movs r6, 0
- ldr r1, _080F5CC4 @ =gUnknown_03004DE0
+ ldr r1, _080F5CC4 @ =gScanlineEffectRegBuffers
mov r12, r1
movs r0, 0xF0
lsls r0, 3
@@ -11128,7 +11128,7 @@ _080F5CA6:
_080F5CB8: .4byte gUnknown_083DFEC4
_080F5CBC: .4byte 0x00009344
_080F5CC0: .4byte 0x0000911c
-_080F5CC4: .4byte gUnknown_03004DE0
+_080F5CC4: .4byte gScanlineEffectRegBuffers
_080F5CC8: .4byte 0x0000ffff
_080F5CCC: .4byte 0x00009130
_080F5CD0: .4byte 0x00009132
@@ -11164,7 +11164,7 @@ sub_80F5CDC: @ 80F5CDC
lsls r0, 17
lsrs r5, r0, 16
movs r7, 0
- ldr r1, _080F5DBC @ =gUnknown_03004DE0
+ ldr r1, _080F5DBC @ =gScanlineEffectRegBuffers
mov r12, r1
movs r4, 0xF0
lsls r4, 3
@@ -11248,7 +11248,7 @@ _080F5DA0:
_080F5DB0: .4byte gUnknown_083DFEC4
_080F5DB4: .4byte 0x00009344
_080F5DB8: .4byte 0x0000911c
-_080F5DBC: .4byte gUnknown_03004DE0
+_080F5DBC: .4byte gScanlineEffectRegBuffers
_080F5DC0: .4byte 0x0000ffff
_080F5DC4: .4byte 0x00009130
_080F5DC8: .4byte 0x00009132
diff --git a/asm/psychic.s b/asm/psychic.s
index bdc230dcb..7dbedd08f 100755
--- a/asm/psychic.s
+++ b/asm/psychic.s
@@ -1588,7 +1588,7 @@ _080DC380:
adds r0, 0x40
cmp r1, r0
bgt _080DC3BA
- ldr r5, _080DC3E8 @ =gUnknown_03004DE0
+ ldr r5, _080DC3E8 @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -1621,7 +1621,7 @@ _080DC3BA:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldr r0, _080DC3F0 @ =sub_80DC3F4
str r0, [r4]
add sp, 0xC
@@ -1631,7 +1631,7 @@ _080DC3BA:
.align 2, 0
_080DC3E0: .4byte gBattle_BG2_X
_080DC3E4: .4byte REG_BG2HOFS
-_080DC3E8: .4byte gUnknown_03004DE0
+_080DC3E8: .4byte gScanlineEffectRegBuffers
_080DC3EC: .4byte 0xa2600001
_080DC3F0: .4byte sub_80DC3F4
thumb_func_end sub_80DC2D4
@@ -1676,7 +1676,7 @@ _080DC426:
ldr r0, _080DC470 @ =gSineTable
mov r9, r0
movs r7, 0x3
- ldr r1, _080DC474 @ =gUnknown_03004DE0
+ ldr r1, _080DC474 @ =gScanlineEffectRegBuffers
mov r12, r1
movs r2, 0xF0
lsls r2, 3
@@ -1704,7 +1704,7 @@ _080DC448:
b _080DC484
.align 2, 0
_080DC470: .4byte gSineTable
-_080DC474: .4byte gUnknown_03004DE0
+_080DC474: .4byte gScanlineEffectRegBuffers
_080DC478:
cmp r3, 0
bge _080DC488
diff --git a/asm/water.s b/asm/water.s
index 4336374aa..56e552241 100755
--- a/asm/water.s
+++ b/asm/water.s
@@ -300,7 +300,7 @@ _080D3D9C:
movs r3, 0
movs r2, 0x10
ldrsh r0, [r4, r2]
- ldr r1, _080D3E6C @ =gUnknown_03004DE0
+ ldr r1, _080D3E6C @ =gScanlineEffectRegBuffers
mov r12, r1
cmp r3, r0
bge _080D3DDA
@@ -337,7 +337,7 @@ _080D3DDA:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080D3E14
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ ldr r5, _080D3E6C @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -366,7 +366,7 @@ _080D3E14:
asrs r0, r2, 16
cmp r0, 0x9F
bgt _080D3E4A
- ldr r5, _080D3E6C @ =gUnknown_03004DE0
+ ldr r5, _080D3E6C @ =gScanlineEffectRegBuffers
movs r0, 0xF0
lsls r0, 3
adds r6, r5, r0
@@ -407,7 +407,7 @@ _080D3E4A:
ldrh r0, [r4, 0xA]
b _080D3E8A
.align 2, 0
-_080D3E6C: .4byte gUnknown_03004DE0
+_080D3E6C: .4byte gScanlineEffectRegBuffers
_080D3E70: .4byte 0x0000ffff
_080D3E74:
lsls r0, r3, 16
@@ -436,7 +436,7 @@ _080D3E8A:
ldr r0, [sp]
ldr r1, [sp, 0x4]
ldr r2, [sp, 0x8]
- bl sub_80895F8
+ bl ScanlineEffect_SetParams
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -475,7 +475,7 @@ _080D3EE8:
ldrsh r0, [r4, r1]
cmp r3, r0
bge _080D3F1C
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers
ldr r5, _080D3F84 @ =gScanlineEffect
_080D3EF6:
lsls r1, r3, 16
@@ -505,7 +505,7 @@ _080D3F1C:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080D3F50
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers
ldr r5, _080D3F84 @ =gScanlineEffect
_080D3F2E:
asrs r3, r2, 16
@@ -531,7 +531,7 @@ _080D3F50:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080D4032
- ldr r6, _080D3F80 @ =gUnknown_03004DE0
+ ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers
ldr r5, _080D3F84 @ =gScanlineEffect
_080D3F5E:
asrs r3, r1, 16
@@ -551,7 +551,7 @@ _080D3F5E:
ble _080D3F5E
b _080D4032
.align 2, 0
-_080D3F80: .4byte gUnknown_03004DE0
+_080D3F80: .4byte gScanlineEffectRegBuffers
_080D3F84: .4byte gScanlineEffect
_080D3F88:
movs r3, 0
@@ -559,7 +559,7 @@ _080D3F88:
ldrsh r0, [r4, r1]
cmp r3, r0
bge _080D3FBC
- ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r6, _080D403C @ =gScanlineEffectRegBuffers
ldr r5, _080D4040 @ =gScanlineEffect
_080D3F96:
lsls r1, r3, 16
@@ -589,7 +589,7 @@ _080D3FBC:
ldrsh r0, [r4, r3]
cmp r1, r0
bge _080D3FF0
- ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r6, _080D403C @ =gScanlineEffectRegBuffers
ldr r5, _080D4040 @ =gScanlineEffect
_080D3FCE:
asrs r3, r2, 16
@@ -615,7 +615,7 @@ _080D3FF0:
asrs r0, r1, 16
cmp r0, 0x9F
bgt _080D401C
- ldr r6, _080D403C @ =gUnknown_03004DE0
+ ldr r6, _080D403C @ =gScanlineEffectRegBuffers
ldr r5, _080D4040 @ =gScanlineEffect
_080D3FFE:
asrs r3, r1, 16
@@ -649,7 +649,7 @@ _080D4032:
pop {r0}
bx r0
.align 2, 0
-_080D403C: .4byte gUnknown_03004DE0
+_080D403C: .4byte gScanlineEffectRegBuffers
_080D4040: .4byte gScanlineEffect
thumb_func_end sub_80D3D68
diff --git a/common_syms/scanline_effect.txt b/common_syms/scanline_effect.txt
new file mode 100644
index 000000000..280e7f891
--- /dev/null
+++ b/common_syms/scanline_effect.txt
@@ -0,0 +1,2 @@
+gScanlineEffect
+gScanlineEffectRegBuffers
diff --git a/include/data2.h b/include/data2.h
index 97cb4fd7a..9f6644714 100644
--- a/include/data2.h
+++ b/include/data2.h
@@ -3,7 +3,7 @@
#include "sprite.h"
-struct UnknownTaskStruct;
+struct ScanlineEffectParams;
struct MonCoords
{
@@ -42,7 +42,7 @@ extern u8 gSpeciesNames[][11];
extern const u8 gMoveNames[][13];
extern const u8 gAbilityNames[][13];
extern const u8 gTypeNames[][7];
-extern const struct UnknownTaskStruct gUnknown_081F9674;
+extern const struct ScanlineEffectParams gUnknown_081F9674;
extern const u8 gUnknown_081F96C8[];
extern struct CompressedSpriteSheet gUnknown_081FAEA4;
extern struct CompressedSpritePalette gUnknown_081FAEAC;
diff --git a/include/scanline_effect.h b/include/scanline_effect.h
index b28973eb3..242b35448 100644
--- a/include/scanline_effect.h
+++ b/include/scanline_effect.h
@@ -1,10 +1,13 @@
#ifndef GUARD_SCANLINE_EFFECT_H
#define GUARD_SCANLINE_EFFECT_H
-struct UnknownTaskStruct
+// DMA control value to ransfer a single 16-bit value at HBlank
+#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
+
+struct ScanlineEffectParams
{
- volatile void *dest;
- u32 control;
+ volatile void *dmaDest;
+ u32 dmaControl;
u8 unk8;
u8 unk9;
};
@@ -12,9 +15,9 @@ struct UnknownTaskStruct
struct ScanlineEffect
{
void *src[2];
- volatile void *dest;
- u32 unkC;
- void (*unk10)(void);
+ volatile void *dmaDest;
+ u32 dmaControl;
+ void (*setFirstScanlineReg)(void);
u8 srcBank;
u8 unk15;
u8 unk16;
@@ -25,17 +28,17 @@ struct ScanlineEffect
extern struct ScanlineEffect gScanlineEffect;
-extern u16 gUnknown_03004DE0[][0x3C0];
+extern u16 gScanlineEffectRegBuffers[][0x3C0];
void ScanlineEffect_Stop(void);
void ScanlineEffect_Stop(void);
void dp12_8087EA4(void);
void dp12_8087EA4(void);
-//void sub_80895F8(u32 i, u32 i1, u32 i2);
-//void sub_80895F8();
-void sub_80895F8(struct UnknownTaskStruct unk);
-void ScanlineEffect_TransferDma(void);
-void ScanlineEffect_TransferDma();
+//void ScanlineEffect_SetParams(u32 i, u32 i1, u32 i2);
+//void ScanlineEffect_SetParams();
+void ScanlineEffect_SetParams(struct ScanlineEffectParams unk);
+void ScanlineEffect_InitHBlankDmaTransfer(void);
+void ScanlineEffect_InitHBlankDmaTransfer();
//void ScanlineEffect_InitWave(int i, int i1, int i2, int i3, int i4, int i5, int i6);
u8 ScanlineEffect_InitWave(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
diff --git a/src/battle/anim/draw.c b/src/battle/anim/draw.c
index ac1ae08cb..fc74e3f46 100755
--- a/src/battle/anim/draw.c
+++ b/src/battle/anim/draw.c
@@ -21,7 +21,8 @@ static void sub_80D0E8C(struct Sprite* sprite);
void sub_80D0C88(u8 taskId)
{
struct Task* task = &gTasks[taskId];
- struct UnknownTaskStruct sp;
+ struct ScanlineEffectParams params;
+
s16 i;
task->data[0] = sub_8077FC0(gAnimBankTarget) + 32;
task->data[1] = 4;
@@ -30,30 +31,31 @@ void sub_80D0C88(u8 taskId)
task->data[4] = 0;
task->data[5] = 0;
task->data[15] = sub_807A100(gAnimBankTarget, 0);
+
if (GetBankIdentity_permutated(gAnimBankTarget) == 1)
{
task->data[6] = gBattle_BG1_X;
- sp.dest = (u16 *)REG_ADDR_BG1HOFS;
+ params.dmaDest = (u16 *)REG_ADDR_BG1HOFS;
}
else
{
task->data[6] = gBattle_BG2_X;
- sp.dest = (u16 *)REG_ADDR_BG2HOFS;
+ params.dmaDest = (u16 *)REG_ADDR_BG2HOFS;
}
for (i = task->data[0] - 0x40; i <= task->data[0];i++)
{
if (i >= 0)
{
- gUnknown_03004DE0[0][i] = task->data[6] + 0xF0;
- gUnknown_03004DE0[1][i] = task->data[6] + 0xF0;
+ gScanlineEffectRegBuffers[0][i] = task->data[6] + 0xF0;
+ gScanlineEffectRegBuffers[1][i] = task->data[6] + 0xF0;
}
}
- sp.control = 0xa2600001;
- sp.unk8 = 1;
- sp.unk9 = 0;
- sub_80895F8(sp);
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.unk8 = 1;
+ params.unk9 = 0;
+ ScanlineEffect_SetParams(params);
task->func = sub_80D0D68;
}
@@ -91,8 +93,8 @@ void sub_80D0D68(u8 taskId)
if (task->data[5] >= 0)
{
- gUnknown_03004DE0[0][task->data[5]] = task->data[6];
- gUnknown_03004DE0[1][task->data[5]] = task->data[6];
+ gScanlineEffectRegBuffers[0][task->data[5]] = task->data[6];
+ gScanlineEffectRegBuffers[1][task->data[5]] = task->data[6];
}
if (++task->data[3] >= task->data[15])
@@ -178,7 +180,7 @@ _080D0DE0:\n\
ldrsh r0, [r3, r1]\n\
cmp r0, 0\n\
blt _080D0E04\n\
- ldr r2, _080D0E28 @ =gUnknown_03004DE0\n\
+ ldr r2, _080D0E28 @ =gScanlineEffectRegBuffers\n\
lsls r0, 1\n\
adds r0, r2\n\
ldrh r1, [r3, 0x14]\n\
@@ -212,7 +214,7 @@ _080D0E22:\n\
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_080D0E28: .4byte gUnknown_03004DE0\n\
+_080D0E28: .4byte gScanlineEffectRegBuffers\n\
_080D0E2C: .4byte gScanlineEffect\n\
.syntax divided\n");
}
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index da6c9a2b4..f4fff742c 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -223,17 +223,17 @@ void InitBattle(void)
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0[0][i] = 0xF0;
- gUnknown_03004DE0[1][i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
- gUnknown_03004DE0[0][i] = 0xFF10;
- gUnknown_03004DE0[1][i] = 0xFF10;
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
- //sub_80895F8(gUnknown_081F9674.unk0, gUnknown_081F9674.unk4, gUnknown_081F9674.unk8);
- sub_80895F8(gUnknown_081F9674);
+ //ScanlineEffect_SetParams(gUnknown_081F9674.unk0, gUnknown_081F9674.unk4, gUnknown_081F9674.unk8);
+ ScanlineEffect_SetParams(gUnknown_081F9674);
Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
gBattle_BG0_X = 0;
@@ -1073,7 +1073,7 @@ void sub_800FCFC(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void nullsub_36(struct Sprite *sprite)
@@ -1201,14 +1201,14 @@ void c2_8011A1C(void)
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0[0][i] = 0xF0;
- gUnknown_03004DE0[1][i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
- gUnknown_03004DE0[0][i] = 0xFF10;
- gUnknown_03004DE0[1][i] = 0xFF10;
+ gScanlineEffectRegBuffers[0][i] = 0xFF10;
+ gScanlineEffectRegBuffers[1][i] = 0xFF10;
}
Text_LoadWindowTemplate(&gWindowTemplate_81E6C58);
ResetPaletteFade();
diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c
index 48ef86fa2..843203a1e 100644
--- a/src/battle/battle_transition.c
+++ b/src/battle/battle_transition.c
@@ -18,8 +18,6 @@
void sub_807DE10(void);
void dp12_8087EA4(void);
-extern u16 gUnknown_03005560[];
-
extern const struct OamData gFieldOamData_32x32;
struct TransitionData
@@ -674,7 +672,7 @@ static bool8 Phase2_Transition_Swirl_Func1(struct Task* task)
sub_811D658();
dp12_8087EA4();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
- sub_811D6E8(gUnknown_03005560, TRANSITION_STRUCT.field_14, 0, 2, 0, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[1], TRANSITION_STRUCT.field_14, 0, 2, 0, 160);
SetVBlankCallback(VBlankCB_Phase2_Transition_Swirl);
SetHBlankCallback(HBlankCB_Phase2_Transition_Swirl);
@@ -695,7 +693,7 @@ static bool8 Phase2_Transition_Swirl_Func2(struct Task* task)
task->data[1] += 4;
task->data[2] += 8;
- sub_811D6E8(gUnknown_03004DE0[0], TRANSITION_STRUCT.field_14, task->data[1], 2, task->data[2], 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], TRANSITION_STRUCT.field_14, task->data[1], 2, task->data[2], 160);
if (!gPaletteFade.active)
{
@@ -711,12 +709,12 @@ static void VBlankCB_Phase2_Transition_Swirl(void)
{
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Transition_Swirl(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1HOFS = var;
REG_BG2HOFS = var;
REG_BG3HOFS = var;
@@ -735,7 +733,7 @@ static bool8 Phase2_Transition_Shuffle_Func1(struct Task* task)
dp12_8087EA4();
BeginNormalPaletteFade(-1, 4, 0, 0x10, 0);
- memset(gUnknown_03005560, TRANSITION_STRUCT.field_16, 0x140);
+ memset(gScanlineEffectRegBuffers[1], TRANSITION_STRUCT.field_16, 0x140);
SetVBlankCallback(VBlankCB_Phase2_Transition_Shuffle);
SetHBlankCallback(HBlankCB_Phase2_Transition_Shuffle);
@@ -764,7 +762,7 @@ static bool8 Phase2_Transition_Shuffle_Func2(struct Task* task)
for (i = 0; i < 160; i++, r4 += 4224)
{
u16 var = r4 / 256;
- gUnknown_03004DE0[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
+ gScanlineEffectRegBuffers[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
}
if (!gPaletteFade.active)
@@ -778,12 +776,12 @@ static void VBlankCB_Phase2_Transition_Shuffle(void)
{
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Transition_Shuffle(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1VOFS = var;
REG_BG2VOFS = var;
REG_BG3VOFS = var;
@@ -815,7 +813,7 @@ static bool8 Phase2_Transition_BigPokeball_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03005560[i] = 240;
+ gScanlineEffectRegBuffers[1][i] = 240;
}
SetVBlankCallback(VBlankCB0_Phase2_Transition_BigPokeball);
@@ -844,7 +842,7 @@ static bool8 Phase2_Transition_BigPokeball_Func2(struct Task* task)
dst1[i * 32 + j] = *BigPokeballMap | 0xF000;
}
}
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5], 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5], 160);
task->tState++;
return TRUE;
@@ -864,7 +862,7 @@ static bool8 Phase2_Transition_BigPokeball_Func3(struct Task* task)
task->data[4] += 8;
task->data[5] -= 256;
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
TRANSITION_STRUCT.VBlank_DMA++;
return FALSE;
@@ -884,7 +882,7 @@ static bool8 Phase2_Transition_BigPokeball_Func4(struct Task* task)
task->data[4] += 8;
task->data[5] -= 256;
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
TRANSITION_STRUCT.VBlank_DMA++;
return FALSE;
@@ -896,7 +894,7 @@ static bool8 Phase2_Transition_BigPokeball_Func5(struct Task* task)
task->data[4] += 8;
task->data[5] -= 256;
- sub_811D6E8(gUnknown_03004DE0[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
+ sub_811D6E8(gScanlineEffectRegBuffers[0], 0, task->data[4], 132, task->data[5] >> 8, 160);
if (task->data[5] <= 0)
{
@@ -921,7 +919,7 @@ static bool8 Phase2_Transition_BigPokeball_Func6(struct Task* task)
if (task->data[1] < 0)
task->data[1] = 0;
}
- sub_811D764(gUnknown_03004DE0[0], 120, 80, task->data[1]);
+ sub_811D764(gScanlineEffectRegBuffers[0], 120, 80, task->data[1]);
if (task->data[1] == 0)
{
DmaStop(0);
@@ -943,7 +941,7 @@ static void Transition_BigPokeball_Vblank(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
@@ -954,13 +952,13 @@ static void Transition_BigPokeball_Vblank(void)
static void VBlankCB0_Phase2_Transition_BigPokeball(void)
{
Transition_BigPokeball_Vblank();
- DmaSet(0, gUnknown_03005560, &REG_BG0HOFS, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_BG0HOFS, 0xA2400001);
}
static void VBlankCB1_Phase2_Transition_BigPokeball(void)
{
Transition_BigPokeball_Vblank();
- DmaSet(0, gUnknown_03005560, &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void Phase2Task_Transition_PokeballsTrail(u8 taskID)
@@ -1087,7 +1085,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03005560[i] = 0xF3F4;
+ gScanlineEffectRegBuffers[1][i] = 0xF3F4;
}
SetVBlankCallback(VBlankCB_Phase2_Transition_Clockwise_BlackFade);
@@ -1104,7 +1102,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func2(struct Task* task)
sub_811D8FC(TRANSITION_STRUCT.data, 120, 80, TRANSITION_STRUCT.data[4], -1, 1, 1);
do
{
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] + 1) | 0x7800;
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] + 1) | 0x7800;
} while (!sub_811D978(TRANSITION_STRUCT.data, 1, 1));
TRANSITION_STRUCT.data[4] += 16;
@@ -1132,7 +1130,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func3(struct Task* task)
r1 = 120, r3 = TRANSITION_STRUCT.data[2] + 1;
if (TRANSITION_STRUCT.data[5] >= 80)
r1 = TRANSITION_STRUCT.data[2], r3 = 240;
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
if (var != 0)
break;
var = sub_811D978(TRANSITION_STRUCT.data, 1, 1);
@@ -1148,7 +1146,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func3(struct Task* task)
{
while (TRANSITION_STRUCT.data[3] < TRANSITION_STRUCT.data[5])
{
- gUnknown_03004DE0[0][++TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
+ gScanlineEffectRegBuffers[0][++TRANSITION_STRUCT.data[3]] = (r3) | (r1 << 8);
}
}
@@ -1163,7 +1161,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func4(struct Task* task)
sub_811D8FC(TRANSITION_STRUCT.data, 120, 80, TRANSITION_STRUCT.data[4], 160, 1, 1);
do
{
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] << 8) | 0xF0;
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (TRANSITION_STRUCT.data[2] << 8) | 0xF0;
} while (!sub_811D978(TRANSITION_STRUCT.data, 1, 1));
TRANSITION_STRUCT.data[4] -= 16;
@@ -1188,10 +1186,10 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func5(struct Task* task)
while (1)
{
- r1 = gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] & 0xFF, r2 = TRANSITION_STRUCT.data[2];
+ r1 = gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] & 0xFF, r2 = TRANSITION_STRUCT.data[2];
if (TRANSITION_STRUCT.data[5] <= 80)
r2 = 120, r1 = TRANSITION_STRUCT.data[2];
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
r3 = 0;
if (var != 0)
break;
@@ -1208,7 +1206,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func5(struct Task* task)
{
while (TRANSITION_STRUCT.data[3] > TRANSITION_STRUCT.data[5])
{
- gUnknown_03004DE0[0][--TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][--TRANSITION_STRUCT.data[3]] = (r1) | (r2 << 8);
}
}
@@ -1228,7 +1226,7 @@ static bool8 Phase2_Transition_Clockwise_BlackFade_Func6(struct Task* task)
r2 = 120, r3 = TRANSITION_STRUCT.data[2];
if (TRANSITION_STRUCT.data[2] >= 120)
r2 = 0, r3 = 240;
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r3) | (r2 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r3) | (r2 << 8);
} while (!sub_811D978(TRANSITION_STRUCT.data, 1, 1));
@@ -1253,12 +1251,12 @@ static void VBlankCB_Phase2_Transition_Clockwise_BlackFade(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- REG_WIN0H = gUnknown_03004DE0[1][0];
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ REG_WIN0H = gScanlineEffectRegBuffers[1][0];
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void Phase2Task_Transition_Ripple(u8 taskID)
@@ -1275,7 +1273,7 @@ static bool8 Phase2_Transition_Ripple_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03005560[i] = TRANSITION_STRUCT.field_16;
+ gScanlineEffectRegBuffers[1][i] = TRANSITION_STRUCT.field_16;
}
SetVBlankCallback(VBlankCB_Phase2_Transition_Ripple);
@@ -1308,7 +1306,7 @@ static bool8 Phase2_Transition_Ripple_Func2(struct Task* task)
// todo: fix the asm
s16 var = r4 >> 8;
asm("");
- gUnknown_03004DE0[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
+ gScanlineEffectRegBuffers[0][i] = TRANSITION_STRUCT.field_16 + Sin(var, r3);
asm("");
}
@@ -1329,12 +1327,12 @@ static void VBlankCB_Phase2_Transition_Ripple(void)
{
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
}
static void HBlankCB_Phase2_Transition_Ripple(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1VOFS = var;
REG_BG2VOFS = var;
REG_BG3VOFS = var;
@@ -1359,7 +1357,7 @@ static bool8 Phase2_Transition_Wave_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = 242;
+ gScanlineEffectRegBuffers[1][i] = 242;
}
SetVBlankCallback(VBlankCB_Phase2_Transition_Wave);
@@ -1375,7 +1373,7 @@ static bool8 Phase2_Transition_Wave_Func2(struct Task* task)
bool8 nextFunc;
TRANSITION_STRUCT.VBlank_DMA = 0;
- toStore = gUnknown_03004DE0[0];
+ toStore = gScanlineEffectRegBuffers[0];
r5 = task->data[2];
task->data[2] += 16;
task->data[1] += 8;
@@ -1411,11 +1409,11 @@ static void VBlankCB_Phase2_Transition_Wave(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
#define tMugshotOpponentID data[13]
@@ -1474,7 +1472,7 @@ static bool8 Phase2_Mugshot_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = 0xF0F1;
+ gScanlineEffectRegBuffers[1][i] = 0xF0F1;
}
SetVBlankCallback(VBlankCB0_Phase2_Mugshots);
@@ -1519,7 +1517,7 @@ static bool8 Phase2_Mugshot_Func3(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
- toStore = gUnknown_03004DE0[0];
+ toStore = gScanlineEffectRegBuffers[0];
r5 = task->data[1];
task->data[1] += 0x10;
@@ -1565,7 +1563,7 @@ static bool8 Phase2_Mugshot_Func4(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
- for (i = 0, toStore = gUnknown_03004DE0[0]; i < 160; i++, toStore++)
+ for (i = 0, toStore = gScanlineEffectRegBuffers[0]; i < 160; i++, toStore++)
{
*toStore = 0xF0;
}
@@ -1608,8 +1606,8 @@ static bool8 Phase2_Mugshot_Func6(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
SetVBlankCallback(NULL);
DmaStop(0);
- memset(gUnknown_03004DE0[0], 0, 0x140);
- memset(gUnknown_03004DE0[1], 0, 0x140);
+ memset(gScanlineEffectRegBuffers[0], 0, 0x140);
+ memset(gScanlineEffectRegBuffers[1], 0, 0x140);
REG_WIN0H = 0xF0;
REG_BLDY = 0;
task->tState++;
@@ -1642,15 +1640,15 @@ static bool8 Phase2_Mugshot_Func7(struct Task* task)
{
s16 index1 = 0x50 - i;
s16 index2 = 0x50 + i;
- if (gUnknown_03004DE0[0][index1] <= 15)
+ if (gScanlineEffectRegBuffers[0][index1] <= 15)
{
r6 = TRUE;
- gUnknown_03004DE0[0][index1]++;
+ gScanlineEffectRegBuffers[0][index1]++;
}
- if (gUnknown_03004DE0[0][index2] <= 15)
+ if (gScanlineEffectRegBuffers[0][index2] <= 15)
{
r6 = TRUE;
- gUnknown_03004DE0[0][index2]++;
+ gScanlineEffectRegBuffers[0][index2]++;
}
}
}
@@ -1678,7 +1676,7 @@ static bool8 Phase2_Mugshot_Func9(struct Task* task)
TRANSITION_STRUCT.VBlank_DMA = 0;
task->data[3]++;
- memset(gUnknown_03004DE0[0], task->data[3], 0x140);
+ memset(gScanlineEffectRegBuffers[0], task->data[3], 0x140);
if (task->data[3] > 15)
task->tState++;
@@ -1699,12 +1697,12 @@ static void VBlankCB0_Phase2_Mugshots(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_BG0VOFS = TRANSITION_STRUCT.field_1C;
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void VBlankCB1_Phase2_Mugshots(void)
@@ -1712,9 +1710,9 @@ static void VBlankCB1_Phase2_Mugshots(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA != 0)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_BLDCNT = TRANSITION_STRUCT.BLDCNT;
- DmaSet(0, gUnknown_03004DE0[1], &REG_BLDY, 0xA2400001);
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_BLDY, 0xA2400001);
}
static void HBlankCB_Phase2_Mugshots(void)
@@ -1856,8 +1854,8 @@ static bool8 Phase2_Transition_Slice_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = TRANSITION_STRUCT.field_14;
- gUnknown_03004DE0[1][160 + i] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = TRANSITION_STRUCT.field_14;
+ gScanlineEffectRegBuffers[1][160 + i] = 0xF0;
}
REG_IE |= INTR_FLAG_HBLANK;
@@ -1886,8 +1884,8 @@ static bool8 Phase2_Transition_Slice_Func2(struct Task* task)
for (i = 0; i < 160; i++)
{
- u16* storeLoc1 = &gUnknown_03004DE0[0][i];
- u16* storeLoc2 = &gUnknown_03004DE0[0][i + 160];
+ u16* storeLoc1 = &gScanlineEffectRegBuffers[0][i];
+ u16* storeLoc2 = &gScanlineEffectRegBuffers[0][i + 160];
if (1 & i)
{
*storeLoc1 = TRANSITION_STRUCT.field_14 + task->data[1];
@@ -1923,13 +1921,13 @@ static void VBlankCB_Phase2_Transition_Slice(void)
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 640);
- DmaSet(0, &gUnknown_03004DE0[1][160], &REG_WIN0H, 0xA2400001);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640);
+ DmaSet(0, &gScanlineEffectRegBuffers[1][160], &REG_WIN0H, 0xA2400001);
}
static void HBlankCB_Phase2_Transition_Slice(void)
{
- u16 var = gUnknown_03004DE0[1][REG_VCOUNT];
+ u16 var = gScanlineEffectRegBuffers[1][REG_VCOUNT];
REG_BG1HOFS = var;
REG_BG2HOFS = var;
REG_BG3HOFS = var;
@@ -1955,8 +1953,8 @@ static bool8 Phase2_Transition_WhiteFade_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[1][i] = 0;
- gUnknown_03004DE0[1][i + 160] = 0xF0;
+ gScanlineEffectRegBuffers[1][i] = 0;
+ gScanlineEffectRegBuffers[1][i + 160] = 0xF0;
}
REG_IE |= INTR_FLAG_HBLANK;
@@ -2038,8 +2036,8 @@ static void VBlankCB0_Phase2_Transition_WhiteFade(void)
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.field_6;
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 640);
- DmaSet(0, &gUnknown_03004DE0[1][160], &REG_WIN0H, 0xA2400001);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 640);
+ DmaSet(0, &gScanlineEffectRegBuffers[1][160], &REG_WIN0H, 0xA2400001);
}
static void VBlankCB1_Phase2_Transition_WhiteFade(void)
@@ -2055,7 +2053,7 @@ static void VBlankCB1_Phase2_Transition_WhiteFade(void)
static void HBlankCB_Phase2_Transition_WhiteFade(void)
{
- REG_BLDY = gUnknown_03004DE0[1][REG_VCOUNT];
+ REG_BLDY = gScanlineEffectRegBuffers[1][REG_VCOUNT];
}
static void sub_811CFD0(struct Sprite* sprite)
@@ -2069,8 +2067,8 @@ static void sub_811CFD0(struct Sprite* sprite)
else
{
u16 i;
- u16* ptr1 = &gUnknown_03004DE0[0][sprite->pos1.y];
- u16* ptr2 = &gUnknown_03004DE0[0][sprite->pos1.y + 160];
+ u16* ptr1 = &gScanlineEffectRegBuffers[0][sprite->pos1.y];
+ u16* ptr2 = &gScanlineEffectRegBuffers[0][sprite->pos1.y + 160];
for (i = 0; i < 20; i++)
{
ptr1[i] = sprite->data[0] >> 8;
@@ -2168,10 +2166,10 @@ static bool8 Phase2_Transition_Shards_Func1(struct Task* task)
for (i = 0; i < 160; i++)
{
- gUnknown_03004DE0[0][i] = 0xF0;
+ gScanlineEffectRegBuffers[0][i] = 0xF0;
}
- CpuSet(gUnknown_03004DE0[0], gUnknown_03004DE0[1], 0xA0);
+ CpuSet(gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 0xA0);
SetVBlankCallback(VBlankCB_Phase2_Transition_Shards);
task->tState++;
@@ -2200,8 +2198,8 @@ static bool8 Phase2_Transition_Shards_Func3(struct Task* task)
for (i = 0, nextFunc = FALSE; i < 16; i++)
{
- s16 r3 = gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] >> 8;
- s16 r4 = gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] & 0xFF;
+ s16 r3 = gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] >> 8;
+ s16 r4 = gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] & 0xFF;
if (task->data[2] == 0)
{
if (r3 < TRANSITION_STRUCT.data[2])
@@ -2216,7 +2214,7 @@ static bool8 Phase2_Transition_Shards_Func3(struct Task* task)
if (r4 <= r3)
r4 = r3;
}
- gUnknown_03004DE0[0][TRANSITION_STRUCT.data[3]] = (r4) | (r3 << 8);
+ gScanlineEffectRegBuffers[0][TRANSITION_STRUCT.data[3]] = (r4) | (r3 << 8);
if (nextFunc)
{
task->tState++;
@@ -2263,12 +2261,12 @@ static void VBlankCB_Phase2_Transition_Shards(void)
DmaStop(0);
VBlankCB_BattleTransition();
if (TRANSITION_STRUCT.VBlank_DMA)
- DmaCopy16(3, gUnknown_03004DE0[0], gUnknown_03004DE0[1], 320);
+ DmaCopy16(3, gScanlineEffectRegBuffers[0], gScanlineEffectRegBuffers[1], 320);
REG_WININ = TRANSITION_STRUCT.WININ;
REG_WINOUT = TRANSITION_STRUCT.WINOUT;
REG_WIN0V = TRANSITION_STRUCT.WIN0V;
- REG_WIN0H = gUnknown_03004DE0[1][0];
- DmaSet(0, gUnknown_03004DE0[1], &REG_WIN0H, 0xA2400001);
+ REG_WIN0H = gScanlineEffectRegBuffers[1][0];
+ DmaSet(0, gScanlineEffectRegBuffers[1], &REG_WIN0H, 0xA2400001);
}
static void CreatePhase1Task(s16 a0, s16 a1, s16 a2, s16 a3, s16 a4)
diff --git a/src/contest.c b/src/contest.c
index e39ce3daa..e41838cb1 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -635,7 +635,7 @@ void ContestVBlankCallback(void)
TransferPlttBuffer();
LoadOam();
ProcessSpriteCopyRequests();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void sub_80ABB70(u8 taskId)
diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c
index 85a8800e7..7c250b584 100644
--- a/src/debug/matsuda_debug_menu.c
+++ b/src/debug/matsuda_debug_menu.c
@@ -516,7 +516,7 @@ static void sub_80AA090(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void sub_80AA10C(void)
diff --git a/src/easy_chat_1.c b/src/easy_chat_1.c
index 7ca647b93..3bed951d6 100644
--- a/src/easy_chat_1.c
+++ b/src/easy_chat_1.c
@@ -43,7 +43,7 @@ const u16 gBerryMasterWifePhrases[][2] =
// const pointer to gEasyChatStruct-> easy_chat might be two separate files.
struct Shared1000 *const gEasyChatStruct = (struct Shared1000 *)(gSharedMem + 0x1000);
-const struct UnknownTaskStruct gUnknown_083DB698 =
+const struct ScanlineEffectParams gUnknown_083DB698 =
{
&REG_BG3VOFS,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
@@ -300,7 +300,7 @@ void sub_80E62F8(void)
dp12_8087EA4();
ScanlineEffect_Stop();
sub_80EAD08();
- sub_80895F8(gUnknown_083DB698);
+ ScanlineEffect_SetParams(gUnknown_083DB698);
FreeSpriteTileRanges();
FreeAllSpritePalettes();
break;
@@ -655,7 +655,7 @@ void sub_80E6A6C(void)
ProcessSpriteCopyRequests();
sub_80EAC5C();
TransferPlttBuffer();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void sub_80E6A88(void)
diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c
index 0f12b978d..e7b65bef0 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 = gUnknown_03004DE0[gScanlineEffect.srcBank];
+ r4 = gScanlineEffectRegBuffers[gScanlineEffect.srcBank];
r4 += 88;
r2 = (gEasyChatStruct->unk1BA - 88) & 0xFF;
diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c
index f1b115610..be22b24c4 100644
--- a/src/engine/trainer_card.c
+++ b/src/engine/trainer_card.c
@@ -256,7 +256,7 @@ static void sub_8093254(void)
ewram0_2.var_5 ^= 1;
}
if (ewram0_2.var_4)
- DmaCopy16(3, &gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 0x140);
+ DmaCopy16(3, &gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 0x140);
}
static void sub_80932AC(Callback callBack)
@@ -732,7 +732,7 @@ bool8 sub_8093AA0(struct Task *task)
ewram0_2.var_4 = FALSE;
dp12_8087EA4();
for (i = 0; i < 0xA0; i++)
- gUnknown_03004DE0[1][i] = -4;
+ gScanlineEffectRegBuffers[1][i] = -4;
SetHBlankCallback(sub_8093D7C);
ewram0_2.var_4 = TRUE;
task->data[0]++;
@@ -768,7 +768,7 @@ bool8 sub_8093AF0(struct Task *task)
for (i = 0; i < r7; i++)
{
- gUnknown_03004DE0.filler0[i] = -4 - (u32)i;
+ gScanlineEffectRegBuffers.filler0[i] = -4 - (u32)i;
}
//_08093B74
for (; i < r9; i++)
@@ -776,10 +776,10 @@ bool8 sub_8093AF0(struct Task *task)
u16 var = r6 >> 16;
r6 += r5;
r5 -= sp0;
- gUnknown_03004DE0.filler0[i] = -4 + var;
+ gScanlineEffectRegBuffers.filler0[i] = -4 + var;
}
for (; i < 160; i++)
- gUnknown_03004DE0.filler0[i] = -4 + (u16)(r10 >> 16);
+ gScanlineEffectRegBuffers.filler0[i] = -4 + (u16)(r10 >> 16);
ewram0_2.var_4 = 1;
if (task->data[1] > 0x4A)
task->data[0]++;
@@ -840,7 +840,7 @@ _08093B18:\n\
movs r3, 0\n\
cmp r3, r7\n\
bcs _08093B74\n\
- ldr r2, _08093C04 @ =gUnknown_03004DE0\n\
+ ldr r2, _08093C04 @ =gScanlineEffectRegBuffers\n\
mov r12, r2\n\
ldr r0, _08093C08 @ =0x0000fffc\n\
adds r4, r0, 0\n\
@@ -866,7 +866,7 @@ _08093B74:\n\
lsrs r7, r4, 16\n\
cmp r2, r0\n\
bge _08093BAE\n\
- ldr r0, _08093C04 @ =gUnknown_03004DE0\n\
+ ldr r0, _08093C04 @ =gScanlineEffectRegBuffers\n\
mov r9, r0\n\
ldr r4, _08093C08 @ =0x0000fffc\n\
mov r12, r4\n\
@@ -894,7 +894,7 @@ _08093BAE:\n\
asrs r0, 16\n\
cmp r0, 0x9F\n\
bgt _08093BD4\n\
- ldr r4, _08093C04 @ =gUnknown_03004DE0\n\
+ ldr r4, _08093C04 @ =gScanlineEffectRegBuffers\n\
ldr r0, _08093C08 @ =0x0000fffc\n\
adds r2, r1, r0\n\
_08093BBE:\n\
@@ -934,7 +934,7 @@ _08093BEA:\n\
.align 2, 0\n\
_08093BFC: .4byte gSharedMem\n\
_08093C00: .4byte 0xffff0000\n\
-_08093C04: .4byte gUnknown_03004DE0\n\
+_08093C04: .4byte gScanlineEffectRegBuffers\n\
_08093C08: .4byte 0x0000fffc\n\
.syntax divided\n");
}
@@ -1000,7 +1000,7 @@ _08093C5C:\n\
movs r3, 0\n\
cmp r3, r7\n\
bcs _08093CB8\n\
- ldr r2, _08093D48 @ =gUnknown_03004DE0\n\
+ ldr r2, _08093D48 @ =gScanlineEffectRegBuffers\n\
mov r12, r2\n\
ldr r0, _08093D4C @ =0x0000fffc\n\
adds r4, r0, 0\n\
@@ -1026,7 +1026,7 @@ _08093CB8:\n\
lsrs r7, r4, 16\n\
cmp r2, r0\n\
bge _08093CF2\n\
- ldr r0, _08093D48 @ =gUnknown_03004DE0\n\
+ ldr r0, _08093D48 @ =gScanlineEffectRegBuffers\n\
mov r9, r0\n\
ldr r3, _08093D4C @ =0x0000fffc\n\
mov r12, r3\n\
@@ -1054,7 +1054,7 @@ _08093CF2:\n\
asrs r0, 16\n\
cmp r0, 0x9F\n\
bgt _08093D18\n\
- ldr r4, _08093D48 @ =gUnknown_03004DE0\n\
+ ldr r4, _08093D48 @ =gScanlineEffectRegBuffers\n\
ldr r0, _08093D4C @ =0x0000fffc\n\
adds r2, r1, r0\n\
_08093D02:\n\
@@ -1094,7 +1094,7 @@ _08093D2E:\n\
.align 2, 0\n\
_08093D40: .4byte gSharedMem\n\
_08093D44: .4byte 0xffff0000\n\
-_08093D48: .4byte gUnknown_03004DE0\n\
+_08093D48: .4byte gScanlineEffectRegBuffers\n\
_08093D4C: .4byte 0x0000fffc\n\
.syntax divided\n");
}
@@ -1113,7 +1113,7 @@ bool8 sub_8093D50(struct Task *task)
void sub_8093D7C(void)
{
- u16 bgVOffset = gUnknown_03004DE0[1][REG_VCOUNT & 0xFF];
+ u16 bgVOffset = gScanlineEffectRegBuffers[1][REG_VCOUNT & 0xFF];
REG_BG0VOFS = bgVOffset;
REG_BG1VOFS = bgVOffset;
diff --git a/src/field/field_screen_effect.c b/src/field/field_screen_effect.c
index b5141e7ea..bc70e1a63 100644
--- a/src/field/field_screen_effect.c
+++ b/src/field/field_screen_effect.c
@@ -13,7 +13,7 @@ const static u16 gUnknown_0839ACDC[] = { 0xC8, 0x48, 0x38, 0x28, 0x18, 0x0 };
const s32 gMaxFlashLevel = 4;
-const static struct UnknownTaskStruct gUnknown_0839ACEC =
+const static struct ScanlineEffectParams gUnknown_0839ACEC =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
@@ -64,11 +64,11 @@ static void sub_8081424(u8 taskId)
switch (data[0])
{
case 0:
- sub_8081398(&gUnknown_03004DE0[gScanlineEffect.srcBank][0], data[1], data[2], data[3]);
+ sub_8081398(&gScanlineEffectRegBuffers[gScanlineEffect.srcBank][0], data[1], data[2], data[3]);
data[0] = 1;
break;
case 1:
- sub_8081398(&gUnknown_03004DE0[gScanlineEffect.srcBank][0], data[1], data[2], data[3]);
+ sub_8081398(&gScanlineEffectRegBuffers[gScanlineEffect.srcBank][0], data[1], data[2], data[3]);
data[0] = 0;
data[3] += data[5];
if (data[3] > data[4])
@@ -140,8 +140,8 @@ void sub_80815E0(u8 a1)
{
if (a1)
{
- sub_8081398(&gUnknown_03004DE0[0][0], 120, 80, gUnknown_0839ACDC[a1]);
- CpuFastSet(&gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 480);
+ sub_8081398(&gScanlineEffectRegBuffers[0][0], 120, 80, gUnknown_0839ACDC[a1]);
+ CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
}
}
@@ -208,10 +208,10 @@ static void sub_80816A8(u8 taskId)
REG_BLDALPHA = 1804;
REG_WININ = 63;
REG_WINOUT = 30;
- sub_8081398(&gUnknown_03004DE0[0][0], data[2], data[3], 1);
- CpuFastSet(&gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 480);
- //sub_80895F8(gUnknown_0839ACEC[0], gUnknown_0839ACEC[1], gUnknown_0839ACEC[2]);
- sub_80895F8(gUnknown_0839ACEC);
+ sub_8081398(&gScanlineEffectRegBuffers[0][0], data[2], data[3], 1);
+ CpuFastSet(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 480);
+ //ScanlineEffect_SetParams(gUnknown_0839ACEC[0], gUnknown_0839ACEC[1], gUnknown_0839ACEC[2]);
+ ScanlineEffect_SetParams(gUnknown_0839ACEC);
data[0] = 1;
break;
case 1:
diff --git a/src/field/overworld.c b/src/field/overworld.c
index e90fc6396..2590852af 100644
--- a/src/field/overworld.c
+++ b/src/field/overworld.c
@@ -142,7 +142,7 @@ const struct UCoords32 gUnknown_0821664C[] =
{ 1, -1},
};
-const struct UnknownTaskStruct gUnknown_08216694 =
+const struct ScanlineEffectParams gUnknown_08216694 =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
@@ -1410,7 +1410,7 @@ void VBlankCB_Field(void)
{
LoadOam();
ProcessSpriteCopyRequests();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
sub_8057A58();
TransferPlttBuffer();
sub_8072E74();
@@ -1422,7 +1422,7 @@ void sub_8054814(void)
if (val)
{
sub_80815E0(val);
- sub_80895F8(gUnknown_08216694);
+ ScanlineEffect_SetParams(gUnknown_08216694);
}
}
diff --git a/src/field/use_pokeblock.c b/src/field/use_pokeblock.c
index 4af7be386..42020c49a 100644
--- a/src/field/use_pokeblock.c
+++ b/src/field/use_pokeblock.c
@@ -117,7 +117,7 @@ static void sub_81365A0(void);
static void sub_81365C8(void);
static void sub_8136638(void);
static void sub_81368A4(void);
-void ScanlineEffect_TransferDma(void);
+void ScanlineEffect_InitHBlankDmaTransfer(void);
static void sub_8136B44(void);
static u8 sub_81370E4(u8);
static void sub_8136BB8(void);
@@ -194,7 +194,7 @@ static void sub_8136264(void)
ProcessSpriteCopyRequests();
TransferPlttBuffer();
sub_80F5CDC(6);
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void launch_c3_walk_stairs_and_run_once(void (*const func)(void))
diff --git a/src/pokenav_before.c b/src/pokenav_before.c
index 7439fc077..b31be2ce1 100644
--- a/src/pokenav_before.c
+++ b/src/pokenav_before.c
@@ -436,7 +436,7 @@ void sub_80EBD4C()
ProcessSpriteCopyRequests();
TransferPlttBuffer();
sub_80F5BF0();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
void sub_80EBD68()
diff --git a/src/scanline_effect.c b/src/scanline_effect.c
index e9cf0d02a..0fa5b024d 100644
--- a/src/scanline_effect.c
+++ b/src/scanline_effect.c
@@ -4,27 +4,26 @@
#include "trig.h"
#include "scanline_effect.h"
-// Control value to ransfer a single 16-bit value at HBlank
-#define HBLANK_DMA_CONTROL_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1)
+static void CopyValue16Bit(void);
+static void CopyValue32Bit(void);
-static void sub_80896F4(void);
-static void sub_8089714(void);
-
-extern u16 gUnknown_030041B0;
-extern u16 gBattle_BG1_Y;
-extern u16 gUnknown_030041B8;
-extern u16 gBattle_BG2_Y;
-extern u16 gBattle_BG2_X;
extern u16 gBattle_BG0_Y;
extern u16 gBattle_BG0_X;
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 u8 gUnknown_0202FFA4;
+EWRAM_DATA static u8 gUnknown_0202FFA4 = 0;
-extern struct ScanlineEffect gScanlineEffect;
+struct ScanlineEffect gScanlineEffect;
-// Is this a struct?
-extern u16 gUnknown_03004DE0[][0x3C0];
+// Per-scanline register values.
+// This is double buffered so that it can be safely written to at any time
+// without overwriting the buffer that the DMA is currently reading
+u16 gScanlineEffectRegBuffers[2][0x3C0];
void ScanlineEffect_Stop(void)
{
@@ -39,11 +38,11 @@ void ScanlineEffect_Stop(void)
void dp12_8087EA4(void)
{
- CpuFill16(0, gUnknown_03004DE0, 0x780 * 2);
- gScanlineEffect.src[0] = 0;
- gScanlineEffect.src[1] = 0;
- gScanlineEffect.dest = 0;
- gScanlineEffect.unkC = 0;
+ CpuFill16(0, gScanlineEffectRegBuffers, sizeof(gScanlineEffectRegBuffers));
+ gScanlineEffect.src[0] = NULL;
+ gScanlineEffect.src[1] = NULL;
+ gScanlineEffect.dmaDest = NULL;
+ gScanlineEffect.dmaControl = 0;
gScanlineEffect.srcBank = 0;
gScanlineEffect.unk15 = 0;
gScanlineEffect.unk16 = 0;
@@ -51,31 +50,35 @@ void dp12_8087EA4(void)
gScanlineEffect.taskId = 0xFF;
}
-void sub_80895F8(struct UnknownTaskStruct unk)
+void ScanlineEffect_SetParams(struct ScanlineEffectParams params)
{
- if (unk.control == HBLANK_DMA_CONTROL_16BIT) // 16 bit
+ if (params.dmaControl == SCANLINE_EFFECT_DMACNT_16BIT) // 16-bit
{
- gScanlineEffect.src[0] = &gUnknown_03004DE0[0][1];
- gScanlineEffect.src[1] = &gUnknown_03004DE0[1][1];
- gScanlineEffect.unk10 = sub_80896F4;
+ // 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.setFirstScanlineReg = CopyValue16Bit;
}
else // assume 32-bit
{
- gScanlineEffect.src[0] = &gUnknown_03004DE0[0][2];
- gScanlineEffect.src[1] = &gUnknown_03004DE0[1][2];
- gScanlineEffect.unk10 = sub_8089714;
+ // 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.setFirstScanlineReg = CopyValue32Bit;
}
- gScanlineEffect.unkC = unk.control;
- gScanlineEffect.dest = unk.dest;
- gScanlineEffect.unk15 = unk.unk8;
- gScanlineEffect.unk16 = unk.unk9;
- gScanlineEffect.unk17 = unk.unk9;
+ gScanlineEffect.dmaControl = params.dmaControl;
+ gScanlineEffect.dmaDest = params.dmaDest;
+ gScanlineEffect.unk15 = params.unk8;
+ gScanlineEffect.unk16 = params.unk9;
+ gScanlineEffect.unk17 = params.unk9;
}
-void ScanlineEffect_TransferDma(void)
+void ScanlineEffect_InitHBlankDmaTransfer(void)
{
- if (gScanlineEffect.unk15)
+ if (gScanlineEffect.unk15 != 0)
{
if (gScanlineEffect.unk15 == 3)
{
@@ -86,28 +89,44 @@ void ScanlineEffect_TransferDma(void)
else
{
DmaStop(0);
- DmaSet(0, gScanlineEffect.src[gScanlineEffect.srcBank], gScanlineEffect.dest, gScanlineEffect.unkC);
- gScanlineEffect.unk10();
+ // 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;
}
}
}
-static void sub_80896F4(void)
+// These two functions are used to copy the register for the first scanline,
+// depending whether it is a 16-bit register or a 32-bit register.
+
+static void CopyValue16Bit(void)
{
- u16 *dest = (u16 *)gScanlineEffect.dest;
- u16 *src = (u16 *)&gUnknown_03004DE0[gScanlineEffect.srcBank];
+ u16 *dest = (u16 *)gScanlineEffect.dmaDest;
+ u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBank];
+
*dest = *src;
}
-static void sub_8089714(void)
+static void CopyValue32Bit(void)
{
- u32 *dest = (u32 *)gScanlineEffect.dest;
- u32 *src = (u32 *)&gUnknown_03004DE0[gScanlineEffect.srcBank];
+ u32 *dest = (u32 *)gScanlineEffect.dmaDest;
+ u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBank];
+
*dest = *src;
}
-static void task00_for_dp12(u8 taskId)
+#define tStartLine data[0]
+#define tEndLine data[1]
+#define framesUntilMove data[4]
+#define tDelayInterval data[5]
+#define tRegOffset data[6]
+
+static void TaskFunc_UpdateWavePerFrame(u8 taskId)
{
int value = 0;
@@ -120,7 +139,7 @@ static void task00_for_dp12(u8 taskId)
{
if (gTasks[taskId].data[7])
{
- switch (gTasks[taskId].data[6])
+ switch (gTasks[taskId].tRegOffset)
{
case 0x0:
value = gBattle_BG0_X;
@@ -148,15 +167,16 @@ static void task00_for_dp12(u8 taskId)
break;
}
}
- if (gTasks[taskId].data[4])
+ if (gTasks[taskId].framesUntilMove != 0)
{
int i;
int offset;
- gTasks[taskId].data[4]--;
+
+ gTasks[taskId].framesUntilMove--;
offset = gTasks[taskId].data[3] + 320;
- for (i = gTasks[taskId].data[0]; i < gTasks[taskId].data[1]; i++)
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
{
- gUnknown_03004DE0[gScanlineEffect.srcBank][i] = gUnknown_03004DE0[0][offset] + value;
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBank][i] = gScanlineEffectRegBuffers[0][offset] + value;
offset++;
}
}
@@ -164,18 +184,17 @@ static void task00_for_dp12(u8 taskId)
{
int i;
int offset;
- gTasks[taskId].data[4] = gTasks[taskId].data[5];
+
+ gTasks[taskId].framesUntilMove = gTasks[taskId].tDelayInterval;
offset = gTasks[taskId].data[3] + 320;
- for (i = gTasks[taskId].data[0]; i < gTasks[taskId].data[1]; i++)
+ for (i = gTasks[taskId].tStartLine; i < gTasks[taskId].tEndLine; i++)
{
- gUnknown_03004DE0[gScanlineEffect.srcBank][i] = gUnknown_03004DE0[0][offset] + value;
+ gScanlineEffectRegBuffers[gScanlineEffect.srcBank][i] = gScanlineEffectRegBuffers[0][offset] + value;
offset++;
}
gTasks[taskId].data[3]++;
if (gTasks[taskId].data[3] == gTasks[taskId].data[2])
- {
gTasks[taskId].data[3] = 0;
- }
}
}
}
@@ -193,44 +212,47 @@ static void GenerateWave(u16 *buffer, u8 frequency, u8 amplitude, u8 unused)
}
}
-u8 ScanlineEffect_InitWave(u8 a1, u8 a2, u8 frequency, u8 amplitude, u8 a5, u8 a6, u8 a7)
+// Initializes a background "wave" effect that affects scanlines startLine (inclusive) to endLine (exclusive).
+// '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)
{
int i;
int offset;
- struct UnknownTaskStruct unk;
+ struct ScanlineEffectParams params;
u8 taskId;
dp12_8087EA4();
- unk.dest = (void *)(REG_ADDR_BG0HOFS + a6);
- unk.control = HBLANK_DMA_CONTROL_16BIT;
- unk.unk8 = 1;
- unk.unk9 = 0;
-
- sub_80895F8(unk);
+ params.dmaDest = (void *)(REG_ADDR_BG0HOFS + regOffset);
+ params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
+ params.unk8 = 1;
+ params.unk9 = 0;
+ ScanlineEffect_SetParams(params);
- taskId = CreateTask(task00_for_dp12, 0);
+ taskId = CreateTask(TaskFunc_UpdateWavePerFrame, 0);
- gTasks[taskId].data[0] = a1;
- gTasks[taskId].data[1] = a2;
- gTasks[taskId].data[2] = 256 / frequency;
- gTasks[taskId].data[3] = 0;
- gTasks[taskId].data[4] = a5;
- gTasks[taskId].data[5] = a5;
- gTasks[taskId].data[6] = a6;
- gTasks[taskId].data[7] = a7;
+ 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;
gScanlineEffect.taskId = taskId;
gUnknown_0202FFA4 = 0;
- GenerateWave(&gUnknown_03004DE0[0][320], frequency, amplitude, a2 - a1);
+ GenerateWave(&gScanlineEffectRegBuffers[0][320], frequency, amplitude, endLine - startLine);
offset = 320;
- for (i = a1; i < a2; i++)
+ for (i = startLine; i < endLine; i++)
{
- gUnknown_03004DE0[0][i] = gUnknown_03004DE0[0][offset];
- gUnknown_03004DE0[1][i] = gUnknown_03004DE0[0][offset];
+ gScanlineEffectRegBuffers[0][i] = gScanlineEffectRegBuffers[0][offset];
+ gScanlineEffectRegBuffers[1][i] = gScanlineEffectRegBuffers[0][offset];
offset++;
}
diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c
index 54af6013f..aeea3e292 100644
--- a/src/scene/evolution_scene.c
+++ b/src/scene/evolution_scene.c
@@ -3934,7 +3934,7 @@ static void VBlankCB_EvolutionScene(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void VBlankCB_TradeEvolutionScene(void)
@@ -3950,7 +3950,7 @@ static void VBlankCB_TradeEvolutionScene(void)
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
}
static void sub_81150D8(void)
diff --git a/src/scene/title_screen.c b/src/scene/title_screen.c
index ca4194800..2de3554fe 100644
--- a/src/scene/title_screen.c
+++ b/src/scene/title_screen.c
@@ -598,7 +598,7 @@ static void StartPokemonLogoShine(bool8 flashBackground)
static void VBlankCB(void)
{
- ScanlineEffect_TransferDma();
+ ScanlineEffect_InitHBlankDmaTransfer();
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -711,7 +711,7 @@ void CB2_InitTitleScreen(void)
if (!UpdatePaletteFade())
{
StartPokemonLogoShine(FALSE);
- ScanlineEffect_InitWave(0, 0xA0, 4, 4, 0, 4, 1);
+ ScanlineEffect_InitWave(0, DISPLAY_HEIGHT, 4, 4, 0, 4, 1);
SetMainCallback2(MainCB2);
}
break;
diff --git a/sym_common.txt b/sym_common.txt
index 8defbe866..85a5ad6e3 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -137,29 +137,7 @@ gUnknown_03004AE4: @ 3004AE4
.include "debug/mori_debug_menu.o"
@ unknown_task
-
- .align 4
-gScanlineEffect: @ 3004DC0
- .space 0x20
-
-gUnknown_03004DE0: @ 3004DE0
- .space 0x2
-
-gUnknown_03004DE2: @ 3004DE2
- .space 0x2
-
-gUnknown_03004DE4: @ 3004DE4
- .space 0x27C
-
-gUnknown_03005060: @ 3005060
- .space 0x500
-
-gUnknown_03005560: @ 3005560
- .space 0x140
-
-gUnknown_030056A0: @ 30056A0
- .space 0x640
-
+ .include "scanline_effect.o"
.include "pokemon/pokemon_menu.o"
.include "pokemon/pokedex.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index fc4ea94ef..dcbadf96e 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -368,12 +368,7 @@ gUnknown_0202FF58: @ 202FF58
.include "src/battle/battle_setup.o"
.include "src/field/wild_encounter.o"
.include "src/field/field_effect.o"
-
-@ unknown_task
-
-gUnknown_0202FFA4: @ 202FFA4
- .space 0x4
-
+ .include "src/scanline_effect.o"
.include "src/pokemon/pokemon_menu.o"
.include "src/pokemon/pokedex.o"
.include "src/engine/trainer_card.o"