summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortgsm <doodrabbit@hotmail.com>2021-06-29 02:46:32 -0500
committertgsm <doodrabbit@hotmail.com>2021-06-29 02:47:32 -0500
commit837cd799f76c81e762113bb46dd50176ac614dde (patch)
tree5009d0ad1941ec7f1f9ed37c886586ec5630fdb3
parentc14bd5bca2631fd4574c498201c679732b562f09 (diff)
Decompile unk_02034188
-rw-r--r--arm9/asm/unk_02034188.s242
-rw-r--r--arm9/global.inc2
-rw-r--r--arm9/src/main.c4
-rw-r--r--arm9/src/unk_02034188.c151
-rw-r--r--include/unk_02034188.h6
5 files changed, 160 insertions, 245 deletions
diff --git a/arm9/asm/unk_02034188.s b/arm9/asm/unk_02034188.s
deleted file mode 100644
index 66bb542c..00000000
--- a/arm9/asm/unk_02034188.s
+++ /dev/null
@@ -1,242 +0,0 @@
- .include "asm/macros.inc"
- .include "global.inc"
-
- .extern gMain
-
- .section .rodata
-
- .global UNK_020EECF8
-UNK_020EECF8: ; 0x020EECF8
- .byte 0x00, 0x03, 0x03, 0x1A, 0x12, 0x01, 0x23, 0x00
-
- .global UNK_020EED00
-UNK_020EED00: ; 0x020EED00
- .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_020EED10
-UNK_020EED10: ; 0x020EED10
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x01, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .global UNK_020EED2C
-UNK_020EED2C: ; 0x020EED2C
- .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .text
-
- thumb_func_start FUN_02034188
-FUN_02034188: ; 0x02034188
- push {r4-r7, lr}
- sub sp, #0x24
- add r4, r0, #0x0
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_0200E3A0
- mov r0, #0x1
- mov r1, #0x0
- bl FUN_0200E3A0
- bl FUN_02015EF4
- mov r0, #0x0
- add r1, r0, #0x0
- bl Main_SetVBlankIntrCB
- mov r0, #0x0
- add r1, r0, #0x0
- bl FUN_02015F34
- bl GX_DisableEngineALayers
- bl GX_DisableEngineBLayers
- mov r2, #0x1
- lsl r2, r2, #0x1a
- ldr r1, [r2, #0x0]
- ldr r0, _02034368 ; =0xFFFFE0FF
- and r1, r0
- str r1, [r2, #0x0]
- ldr r2, _0203436C ; =0x04001000
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- mov r0, #0x4
- mov r1, #0x8
- bl SetKeyRepeatTimers
- ldr r0, _02034370 ; =gMain + 0x60
- mov r1, #0x0
- strb r1, [r0, #0x5]
- bl GX_SwapDisplay
- ldr r3, _02034374 ; =0x04000050
- mov r0, #0x0
- strh r0, [r3, #0x0]
- ldr r2, _02034378 ; =0x04001050
- sub r3, #0x50
- strh r0, [r2, #0x0]
- ldr r1, [r3, #0x0]
- ldr r0, _0203437C ; =0xFFFF1FFF
- sub r2, #0x50
- and r1, r0
- str r1, [r3, #0x0]
- ldr r1, [r2, #0x0]
- and r0, r1
- str r0, [r2, #0x0]
- ldr r0, _02034380 ; =UNK_020EED2C
- bl GX_SetBanks
- add r0, r4, #0x0
- bl BgConfig_Alloc
- str r0, [sp, #0x10]
- ldr r0, _02034384 ; =UNK_020EED00
- bl SetBothScreensModesAndDisable
- mov r1, #0x0
- ldr r0, [sp, #0x10]
- ldr r2, _02034388 ; =UNK_020EED10
- add r3, r1, #0x0
- bl InitBgFromTemplate
- ldr r0, [sp, #0x10]
- mov r1, #0x0
- bl BgClearTilemapBufferAndCommit
- mov r1, #0x0
- str r1, [sp, #0x0]
- ldr r0, [sp, #0x10]
- ldr r2, _0203438C ; =0x000001F7
- mov r3, #0x2
- str r4, [sp, #0x4]
- bl FUN_0200CB00
- mov r0, #0x0
- mov r1, #0x20
- add r2, r4, #0x0
- bl FUN_02002ED0
- mov r0, #0x0
- mov r1, #0x20
- add r2, r0, #0x0
- add r3, r4, #0x0
- bl BG_ClearCharDataRange
- ldr r1, _02034390 ; =0x00006C21
- mov r0, #0x0
- bl BG_SetMaskColor
- ldr r1, _02034390 ; =0x00006C21
- mov r0, #0x4
- bl BG_SetMaskColor
- ldr r2, _02034394 ; =0x00000265
- mov r0, #0x1
- mov r1, #0x1a
- add r3, r4, #0x0
- bl NewMsgDataFromNarc
- str r0, [sp, #0xc]
- mov r0, #0x6
- lsl r0, r0, #0x6
- add r1, r4, #0x0
- bl String_ctor
- add r4, r0, #0x0
- bl FUN_0201BD5C
- ldr r0, [sp, #0x10]
- ldr r2, _02034398 ; =UNK_020EECF8
- add r1, sp, #0x14
- bl AddWindow
- mov r0, #0xd0
- str r0, [sp, #0x0]
- mov r0, #0x90
- mov r2, #0x0
- str r0, [sp, #0x4]
- add r0, sp, #0x14
- mov r1, #0xf
- add r3, r2, #0x0
- bl FillWindowPixelRect
- ldr r2, _0203438C ; =0x000001F7
- add r0, sp, #0x14
- mov r1, #0x0
- mov r3, #0x2
- bl FUN_0200CCA4
- ldr r0, [sp, #0xc]
- mov r1, #0xf
- add r2, r4, #0x0
- bl ReadMsgDataIntoString
- mov r1, #0x0
- str r1, [sp, #0x0]
- str r1, [sp, #0x4]
- add r0, sp, #0x14
- add r2, r4, #0x0
- add r3, r1, #0x0
- str r1, [sp, #0x8]
- bl AddTextPrinterParameterized
- add r0, r4, #0x0
- bl String_dtor
- bl GX_BothDispOn
- mov r0, #0x0
- bl FUN_0200E394
- mov r0, #0x1
- bl FUN_0200E394
- mov r0, #0x0
- mov r1, #0x3f
- mov r2, #0x3
- bl FUN_0200A274
- ldr r4, _0203439C ; =0x04000130
- ldr r6, _020343A0 ; =0x027FFFA8
- mov r7, #0x1
-_020342E4:
- ldrh r1, [r4, #0x0]
- ldrh r0, [r6, #0x0]
- orr r1, r0
- ldr r0, _020343A4 ; =0x00002FFF
- eor r1, r0
- and r0, r1
- lsl r0, r0, #0x10
- lsr r5, r0, #0x10
- bl HandleDSLidAction
- add r0, r5, #0x0
- tst r0, r7
- bne _02034308
- mov r0, #0x1
- add r1, r0, #0x0
- bl OS_WaitIrq
- b _020342E4
-_02034308:
- add r0, sp, #0x14
- bl RemoveWindow
- ldr r0, [sp, #0xc]
- bl DestroyMsgData
- mov r0, #0x0
- add r1, r0, #0x0
- bl ToggleBgLayer
- mov r0, #0x1
- mov r1, #0x0
- bl ToggleBgLayer
- mov r0, #0x2
- mov r1, #0x0
- bl ToggleBgLayer
- mov r0, #0x3
- mov r1, #0x0
- bl ToggleBgLayer
- mov r0, #0x4
- mov r1, #0x0
- bl ToggleBgLayer
- mov r0, #0x5
- mov r1, #0x0
- bl ToggleBgLayer
- mov r0, #0x6
- mov r1, #0x0
- bl ToggleBgLayer
- mov r0, #0x7
- mov r1, #0x0
- bl ToggleBgLayer
- ldr r0, [sp, #0x10]
- mov r1, #0x0
- bl FreeBgTilemapBuffer
- ldr r0, [sp, #0x10]
- bl FreeToHeap
- add sp, #0x24
- pop {r4-r7, pc}
- nop
-_02034368: .word 0xFFFFE0FF
-_0203436C: .word 0x04001000
-_02034370: .word gMain + 0x60
-_02034374: .word 0x04000050
-_02034378: .word 0x04001050
-_0203437C: .word 0xFFFF1FFF
-_02034380: .word UNK_020EED2C
-_02034384: .word UNK_020EED00
-_02034388: .word UNK_020EED10
-_0203438C: .word 0x000001F7
-_02034390: .word 0x00006C21
-_02034394: .word 0x00000265
-_02034398: .word UNK_020EECF8
-_0203439C: .word 0x04000130
-_020343A0: .word 0x027FFFA8
-_020343A4: .word 0x00002FFF
diff --git a/arm9/global.inc b/arm9/global.inc
index 086d9b5f..4d1057b4 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -2472,7 +2472,7 @@
.extern FUN_02033F04
.extern FUN_02033F20
.extern FUN_02033F70
-.extern FUN_02034188
+.extern ShowWFCUserInfoWarning
.extern FUN_02034494
.extern FUN_020344AC
.extern FUN_020344D0
diff --git a/arm9/src/main.c b/arm9/src/main.c
index 46f8add7..11d22cfe 100644
--- a/arm9/src/main.c
+++ b/arm9/src/main.c
@@ -14,6 +14,7 @@
#include "timer3.h"
#include "unk_02031734.h"
#include "unk_0202F150.h"
+#include "unk_02034188.h"
#include "module_52.h"
#include "font.h"
@@ -29,7 +30,6 @@ struct UnkStruct_02016FA8 UNK_02016FA8;
extern void FUN_02022294(void);
extern void GF_InitRTCWork(void);
extern int FUN_020337E8(int);
-extern void FUN_02034188(int, int);
extern void FUN_02089D90(int);
extern void FUN_0200A2AC(void);
extern void FUN_02015E30(void);
@@ -69,7 +69,7 @@ THUMB_FUNC void NitroMain(void)
InitSoundData(Sav2_Chatot_get(UNK_02016FA8.unk18), Sav2_PlayerData_GetOptionsAddr(UNK_02016FA8.unk18));
Init_Timer3();
if (FUN_020337E8(3) == 3)
- FUN_02034188(3, 0);
+ ShowWFCUserInfoWarning(3, 0);
if (FUN_020227FC(UNK_02016FA8.unk18) == 0)
{
FUN_02089D90(0);
diff --git a/arm9/src/unk_02034188.c b/arm9/src/unk_02034188.c
new file mode 100644
index 00000000..1872a8cc
--- /dev/null
+++ b/arm9/src/unk_02034188.c
@@ -0,0 +1,151 @@
+#include "global.h"
+#include "bg_window.h"
+#include "filesystem.h"
+#include "game_init.h"
+#include "GX_layers.h"
+#include "main.h"
+#include "msgdata.h"
+#include "msgdata/msg.naix"
+#include "PAD_pad.h"
+#include "string16.h"
+#include "text.h"
+#include "unk_02034188.h"
+
+extern void FUN_02002ED0(enum GFBgLayer layer, u32 base_addr, u32 heap_id);
+extern void FUN_0200A274(fx32 brightness, fx32, u32);
+extern void FUN_0200CB00(struct BgConfig* bg_config, enum GFBgLayer layer, u32 num_tiles, u32, u8, u32 heap_id);
+extern void FUN_0200CCA4(struct Window* window, BOOL copy_to_vram, u16 fill_value, u32 palette_num);
+extern void FUN_0200E394(BOOL set_brightness_on_bottom_screen);
+extern void FUN_0200E3A0(BOOL set_brightness_on_bottom_screen, s32);
+
+static const struct WindowTemplate sWFCWarningMsgWindowTemplate = {
+ .bgId = GF_BG_LYR_MAIN_0,
+ .tilemapLeft = 3,
+ .tilemapTop = 3,
+ .width = 26,
+ .height = 18,
+ .paletteNum = 0x01,
+ .baseTile = 0x23,
+};
+
+static const struct GraphicsModes sWFCWarningMsgGraphicsModes = {
+ .dispMode = GX_DISPMODE_GRAPHICS,
+ .bgMode = GX_BGMODE_0,
+ .subMode = GX_BGMODE_0,
+ ._2d3dMode = GX_BG0_AS_2D,
+};
+
+static const struct BgTemplate sWFCWarningMsgBgTemplate = {
+ .x = 0,
+ .y = 0,
+ .bufferSize = 0x800,
+ .baseTile = 0,
+ .size = GF_BG_SCR_SIZE_256x256,
+ .colorMode = GX_BG_COLORMODE_16,
+ .screenBase = GX_BG_SCRBASE_0x0000,
+ .charBase = GX_BG_CHARBASE_0x18000,
+ .bgExtPltt = GX_BG_EXTPLTT_01,
+ .priority = 1,
+ .areaOver = GX_BG_AREAOVER_XLU,
+ .unk17 = 0,
+ .mosaic = FALSE,
+};
+
+static const struct GraphicsBanks sWFCWarningMsgGraphicsBanks = {
+ .bg = 3,
+ .bgextpltt = 0,
+ .subbg = 0,
+ .subbgextpltt = 0,
+ .obj = 0,
+ .objextpltt = 0,
+ .subobj = 0,
+ .subobjextpltt = 0,
+ .tex = 0,
+ .texpltt = 0,
+};
+
+THUMB_FUNC void ShowWFCUserInfoWarning(u32 heap_id, u32 a1)
+{
+#pragma unused(a1)
+ struct Window window;
+
+ FUN_0200E3A0(PM_LCD_TOP, 0);
+ FUN_0200E3A0(PM_LCD_BOTTOM, 0);
+
+ FUN_02015EF4();
+ Main_SetVBlankIntrCB(NULL, NULL);
+ FUN_02015F34(NULL, NULL);
+
+ GX_DisableEngineALayers();
+ GX_DisableEngineBLayers();
+ reg_GX_DISPCNT &= ~REG_GX_DISPCNT_DISPLAY_MASK;
+ reg_GXS_DB_DISPCNT &= ~REG_GX_DISPCNT_DISPLAY_MASK;
+
+ SetKeyRepeatTimers(4, 8);
+
+ gMain.unk65 = 0;
+
+ GX_SwapDisplay();
+ reg_G2_BLDCNT = 0;
+ reg_G2S_DB_BLDCNT = 0;
+ reg_GX_DISPCNT &= ~(REG_GX_DISPCNT_OW_MASK | REG_GX_DISPCNT_W1_MASK | REG_GX_DISPCNT_W0_MASK);
+ reg_GXS_DB_DISPCNT &= ~(REG_GXS_DB_DISPCNT_OW_MASK | REG_GXS_DB_DISPCNT_W1_MASK | REG_GXS_DB_DISPCNT_W0_MASK);
+ GX_SetBanks(&sWFCWarningMsgGraphicsBanks);
+
+ struct BgConfig* bg_config = BgConfig_Alloc(heap_id);
+
+ SetBothScreensModesAndDisable(&sWFCWarningMsgGraphicsModes);
+
+ InitBgFromTemplate(bg_config, 0, &sWFCWarningMsgBgTemplate, 0);
+ BgClearTilemapBufferAndCommit(bg_config, 0);
+ FUN_0200CB00(bg_config, GF_BG_LYR_MAIN_0, 0x01F7, 2, 0, heap_id);
+ FUN_02002ED0(GF_BG_LYR_MAIN_0, 0x20, heap_id);
+ BG_ClearCharDataRange(GF_BG_LYR_MAIN_0, 0x20, 0, heap_id);
+ BG_SetMaskColor(GF_BG_LYR_MAIN_0, 0x6C21);
+ BG_SetMaskColor(GF_BG_LYR_SUB_0, 0x6C21);
+
+ struct MsgData* warning_messages_data = NewMsgDataFromNarc(1, NARC_MSGDATA_MSG, NARC_msg_narc_0613_bin, heap_id);
+ struct String* warning_message = String_ctor(384, heap_id);
+ FUN_0201BD5C();
+ AddWindow(bg_config, &window, &sWFCWarningMsgWindowTemplate);
+ FillWindowPixelRect(&window, 0xF, 0, 0, 208, 144);
+ FUN_0200CCA4(&window, FALSE, 0x01F7, 2);
+
+ ReadMsgDataIntoString(warning_messages_data, 15, warning_message);
+ AddTextPrinterParameterized(&window, 0, warning_message, 0, 0, 0, 0);
+ String_dtor(warning_message);
+
+ GX_BothDispOn();
+ FUN_0200E394(0);
+ FUN_0200E394(1);
+ FUN_0200A274(0, 0x3F, 3);
+
+ while (TRUE)
+ {
+ u16 pressed_buttons = PAD_Read();
+
+ HandleDSLidAction();
+
+ if (pressed_buttons & PAD_BUTTON_A)
+ {
+ break;
+ }
+
+ OS_WaitIrq(TRUE, OS_IE_V_BLANK);
+ }
+
+ RemoveWindow(&window);
+ DestroyMsgData(warning_messages_data);
+
+ ToggleBgLayer(GF_BG_LYR_MAIN_0, GX_LAYER_TOGGLE_OFF);
+ ToggleBgLayer(GF_BG_LYR_MAIN_1, GX_LAYER_TOGGLE_OFF);
+ ToggleBgLayer(GF_BG_LYR_MAIN_2, GX_LAYER_TOGGLE_OFF);
+ ToggleBgLayer(GF_BG_LYR_MAIN_3, GX_LAYER_TOGGLE_OFF);
+ ToggleBgLayer(GF_BG_LYR_SUB_0, GX_LAYER_TOGGLE_OFF);
+ ToggleBgLayer(GF_BG_LYR_SUB_1, GX_LAYER_TOGGLE_OFF);
+ ToggleBgLayer(GF_BG_LYR_SUB_2, GX_LAYER_TOGGLE_OFF);
+ ToggleBgLayer(GF_BG_LYR_SUB_3, GX_LAYER_TOGGLE_OFF);
+
+ FreeBgTilemapBuffer(bg_config, 0);
+ FreeToHeap(bg_config);
+}
diff --git a/include/unk_02034188.h b/include/unk_02034188.h
new file mode 100644
index 00000000..02ade1f0
--- /dev/null
+++ b/include/unk_02034188.h
@@ -0,0 +1,6 @@
+#ifndef POKEDIAMOND_UNK_02034188_H
+#define POKEDIAMOND_UNK_02034188_H
+
+void ShowWFCUserInfoWarning(u32 heap_id, u32 a1);
+
+#endif