Put stuff in EWRAM_DATA/IWRAM_DATA

This commit is contained in:
DizzyEggg
2025-02-25 09:56:49 +01:00
parent 13854d268f
commit 3b01545f37
17 changed files with 75 additions and 134 deletions

View File

@@ -39,7 +39,7 @@ extern void nullsub_33(void);
extern u32 sub_80009D0(u32);
extern u16 gUnknown_2026E4E;
extern s32 gTitleBrightness;
EWRAM_DATA s32 sTitleBrightness = 0;
// TODO: figure out the struct
struct UnkStruct203B040
@@ -106,12 +106,12 @@ void GameLoop(void)
LoadTitleScreen();
SetBG2RegOffsets(0, 0);
SetBG3RegOffsets(0, 0);
gTitleBrightness = 0;
while (gTitleBrightness < 32) {
sTitleBrightness = 0;
while (sTitleBrightness < 32) {
s32 i;
gTitleBrightness++;
sTitleBrightness++;
for (i = 0; i < 240; i++)
SetBGPaletteBufferColorRGB(i, &((RGB*)gTitlePaletteFile->data)[i], gTitleBrightness, NULL);
SetBGPaletteBufferColorRGB(i, &((RGB*)gTitlePaletteFile->data)[i], sTitleBrightness, NULL);
xxx_update_stuff(0);
}
if (tmp3) {
@@ -148,11 +148,11 @@ void GameLoop(void)
if (nextMenu == MENU_NEW_GAME) break;
}
DeleteMainMenu();
while (gTitleBrightness > 0) {
while (sTitleBrightness > 0) {
s32 i;
gTitleBrightness--;
sTitleBrightness--;
for (i = 0; i < 240; i++)
SetBGPaletteBufferColorRGB(i, &((RGB*)gTitlePaletteFile->data)[i], gTitleBrightness, NULL);
SetBGPaletteBufferColorRGB(i, &((RGB*)gTitlePaletteFile->data)[i], sTitleBrightness, NULL);
xxx_update_stuff(0);
}
CloseFile(gTitlePaletteFile);

View File

@@ -6,18 +6,19 @@
#include "math.h"
#include "sprite.h"
extern u8 gUnknown_2026E38;
extern u32 *gUnknown_2026E3C;
extern s32 gUnknown_2026E40;
extern s32 gUnknown_2026E44;
extern s32 gUnknown_2026E48;
extern bool8 gUnknown_2026E4C;
extern u16 gUnknown_2026E4E;
extern bool32 gUnknown_2026E50;
extern bool32 gUnknown_2026E54;
extern u32 *gUnknown_2026E58;
extern s16 gUnknown_2026E60[];
extern s16 gUnknown_20270E8[];
EWRAM_DATA u8 gUnknown_2026E38 = 0;
EWRAM_DATA u32 *gUnknown_2026E3C = 0;
EWRAM_DATA s32 gUnknown_2026E40 = 0;
EWRAM_DATA s32 gUnknown_2026E44 = 0;
EWRAM_DATA s32 gUnknown_2026E48 = 0;
EWRAM_DATA bool8 gUnknown_2026E4C = 0;
EWRAM_DATA u16 gUnknown_2026E4E = 0;
EWRAM_DATA bool32 gUnknown_2026E50 = 0;
EWRAM_DATA bool32 gUnknown_2026E54 = 0;
EWRAM_DATA u32 *gUnknown_2026E58 = NULL;
UNUSED EWRAM_DATA static u32 sUnused0 = 0;
EWRAM_DATA static s16 gUnknown_2026E60[324] = {0};
EWRAM_DATA static s16 gUnknown_20270E8[324] = {0};
EWRAM_INIT s16 *gUnknown_203B078 = NULL;
@@ -239,7 +240,7 @@ void sub_8005838(s32 *a0, u8 kind)
if (!gUnknown_2026E4C)
kind = 0;
r3 = !gUnknown_2026E54 ? (s16 *) &gUnknown_2026E60 : (s16*) &gUnknown_20270E8;
r3 = !gUnknown_2026E54 ? gUnknown_2026E60 : gUnknown_20270E8;
r2 = gUnknown_203B078;
if (r2 == NULL)

View File

@@ -7,7 +7,7 @@
s32 sub_800E2C0(u32);
struct unkStruct_203B0CC *gUnknown_203B0CC;
extern struct unkStruct_203B0CC *gUnknown_203B0CC;
void sub_800DE38(struct unkStruct_203B0CC_sub *);
void sub_800DE8C(struct unkStruct_203B0CC_sub *, DungeonPos *);
@@ -48,7 +48,7 @@ bool8 sub_800E838(u16 *param_1, s32 param_2)
}
// TODO: look at this later
// https://decomp.me/scratch/luz2f
// https://decomp.me/scratch/luz2f
u32 sub_800E890(unkStruct_80416E0 *param_1)
{
param_1->unk14 = sub_800E900(param_1->unk0);
@@ -101,7 +101,7 @@ bool8 sub_800E90C(DungeonPos *param_1)
}
}
if(ptr->unk10 > 0)
if(ptr->unk10 > 0)
ptr->unk10--;
sub_800DCD0(ptr);
if(ptr->unk54 == 0)

View File

@@ -8,14 +8,14 @@ u32 sub_800F19C(s32);
s32 sub_800EBBC(s32);
s32 sub_800EC68(s32);
struct unkStruct_203B0CC *gUnknown_203B0CC;
extern struct unkStruct_203B0CC *gUnknown_203B0CC;
extern unkStruct_80B9C60 gUnknown_80B9C60;
extern s32 gUnknown_80B9C9C[8];
extern s16 gUnknown_80CE73C[20];
unkStruct_80CE37C gUnknown_80CE37C[1];
extern unkStruct_80CE37C gUnknown_80CE37C[1];
extern unkStruct_80BDBC4 gUnknown_80BDBC4[430];
extern unkStruct_80B9CC4 gUnknown_80B9CC4[448];
@@ -56,13 +56,13 @@ s32 sub_800EA84(s32 *param_1)
unkStruct_80BDBC4 *ret1;
u32 size;
ret1 = sub_800ECB8(param_1[0]);
stack[1].unk00[0] = ret1->unk0;
stack[1].unk00[1] = param_1[4];
stack[1].unk00[2] = param_1[3];
stack[1].unk00[3] = param_1[1];
stack[1].unk00[4] = param_1[2];
ret1 = sub_800ECB8(param_1[0]);
stack[1].unk00[5] = sub_800EBBC(ret1->unk0);
stack[1].unk00[6] = 0x0000ffff;
@@ -137,13 +137,13 @@ s32 sub_800EBC8(s32 *param_1)
unkStruct_80BDBC4 *ret1;
u32 size;
ret1 = sub_800ECB8(param_1[0]);
stack[1].unk00[0] = ret1->unk4;
stack[1].unk00[1] = param_1[4];
stack[1].unk00[2] = param_1[3];
stack[1].unk00[3] = param_1[1];
stack[1].unk00[4] = param_1[2];
ret1 = sub_800ECB8(param_1[0]);
stack[1].unk00[5] = sub_800EC68(ret1->unk4);
stack[1].unk00[6] = 0x0000ffff;

View File

@@ -16,7 +16,7 @@ struct unkStruct_203B0D4
struct unkStruct_800F18C unk0[2];
};
struct unkStruct_203B0D4 *gUnknown_203B0D4;
extern struct unkStruct_203B0D4 *gUnknown_203B0D4;
ALIGNED(4) static const u8 gUnknown_80CE77C[] = "efob%03d";
ALIGNED(4) static const u8 gUnknown_80CE788[] = "efbg%03d";
@@ -53,7 +53,7 @@ void sub_800F094(void)
{
gUnknown_203B0D4->unk0[index].effectID = -1;
gUnknown_203B0D4->unk0[index].counter = 0;
}
}
}
s32 sub_800F0C0(s32 animType, s32 effectID)
@@ -81,7 +81,7 @@ s32 sub_800F0F4(s32 animType, s32 effectID)
return -1;
}
void sub_800F13C(s32 index, OpenedFile *file, unkStruct_80B9CC4 * r2)
void sub_800F13C(s32 index, OpenedFile *file, unkStruct_80B9CC4 * r2)
{
if(gUnknown_203B0D4->unk0[index].counter == 0)
gUnknown_203B0D4->unk0[index].effectID = r2->effectId;
@@ -101,9 +101,9 @@ void sub_800F15C(s32 effectID)
}
}
struct unkStruct_800F18C *sub_800F18C(s32 index)
struct unkStruct_800F18C *sub_800F18C(s32 index)
{
return &gUnknown_203B0D4->unk0[index];
return &gUnknown_203B0D4->unk0[index];
}
s32 sub_800F19C(s32 index)
@@ -135,6 +135,6 @@ OpenedFile * sub_800F1C0(u32 animType, s32 effectID)
void sub_800F204(OpenedFile *file)
{
CloseFile(file);
CloseFile(file);
}

View File

@@ -61,7 +61,6 @@ extern u8 gUnknown_20274A5;
extern Palette32 gFontPalette[8];
extern s32 gUnknown_202EDCC;
extern u32 gUnknown_3001018[];
extern void sub_8040A84();
extern void sub_8083D44(void);
@@ -1153,6 +1152,8 @@ void sub_803F9CC(void)
gUnknown_20274A5 = TRUE;
}
IWRAM_DATA static u32 gUnknown_3001018[96] = {0};
void sub_803FA4C(s32 a0, s32 a1, bool8 a2)
{
s32 i;
@@ -1214,7 +1215,7 @@ void sub_803FA4C(s32 a0, s32 a1, bool8 a2)
r5 = 0;
}
}
sub_80098BC((void *) VRAM + 0x5980, gUnknown_3001018, 0x180);
sub_80098BC((void *) VRAM + 0x5980, gUnknown_3001018, sizeof(gUnknown_3001018));
}
void sub_803FB74(void)

View File

@@ -64,7 +64,6 @@ extern void sub_8075900(Entity *pokemon, u8 r1);
extern void sub_806A5B8(Entity *);
extern void sub_807EC28(bool8);
extern s32 gUnknown_202F378;
extern u8 gUnknown_202F32D;
extern const u8 *gMonTerrifiedCouldntPickUpItem;
@@ -91,6 +90,8 @@ extern const DungeonPos gUnknown_80F4D44[];
bool8 UseAttack(Entity *a0);
void sub_8075050(EntityInfo *info, Unk_Entity_x184 *strPtr);
static EWRAM_DATA s32 gUnknown_202F378 = 0;
void HandleEatAIAction(Entity *pokemon)
{
sub_8067110(pokemon);

View File

@@ -15,7 +15,7 @@
// ???
extern u32 gDungeonBrightness;
EWRAM_DATA unkStruct_202F3D0 gUnknown_202F3D0 = {0};
EWRAM_DATA static unkStruct_202F3D0 gUnknown_202F3D0 = {0};
// data_8107010.s
extern u32 gUnknown_8107314[];

View File

@@ -157,7 +157,7 @@ void sub_8049884(void)
}
}
void sub_80498A8(int x,int y)
void sub_80498A8(s32 x,s32 y)
{
volatile u32 sp_0x0;
volatile u32 sp_0x4;

View File

@@ -14,7 +14,7 @@
#include "pokemon.h"
#include "pokemon_3.h"
extern u8 gScriptVarBuffer[0x400];
EWRAM_DATA u8 gScriptVarBuffer[0x400] = {0};
struct GroundEventTableEntry
{

View File

@@ -44,8 +44,8 @@ EWRAM_DATA u16 gUnknown_20398BC = {0};
EWRAM_DATA u16 gUnknown_20398BE = {0};
EWRAM_DATA u32 gUnknown_20398C0 = {0};
EWRAM_DATA s16 gUnknown_20398C4 = {0};
struct unkStruct_20398C8 gUnknown_20398C8;
extern u8 gUnknown_2039950;
EWRAM_DATA struct unkStruct_20398C8 gUnknown_20398C8 = {0};
EWRAM_DATA u8 gUnknown_2039950 = 0;
EWRAM_INIT bool8 gUnknown_203B49C = {0};
EWRAM_INIT u8 gUnknown_203B49D = {0};
@@ -395,7 +395,7 @@ u8 sub_80990EC(struct unkStruct_20398C8 *param_1, s16 param_2)
sub_80A8EC0(auStack_98, 0x5b);
BoundedCopyStringtoBuffer(nameBuffer, auStack_98, POKEMON_NAME_LENGTH);
{
struct unkStruct_808D144 stack =
struct unkStruct_808D144 stack =
{
.name = nameBuffer,
.speciesNum = MONSTER_GENGAR,
@@ -413,7 +413,7 @@ u8 sub_80990EC(struct unkStruct_20398C8 *param_1, s16 param_2)
sub_808D144(&param_1->unk18, &stack);
}
}
break;
break;
case 4:
param_1->unkB = 0;
break;
@@ -431,7 +431,7 @@ u8 sub_80991E0(struct unkStruct_20398C8 *param_1,short *param_2)
*param_2 = gUnknown_20398C4;
if (gUnknown_203B49C) {
memcpy(param_1, &gUnknown_20398C8, sizeof(struct unkStruct_20398C8));
return TRUE;
return TRUE;
}
else {
return sub_80990EC(param_1,gUnknown_20398C4);
@@ -441,7 +441,7 @@ u8 sub_80991E0(struct unkStruct_20398C8 *param_1,short *param_2)
void sub_8099220(struct unkStruct_20398C8 *param_1, s16 param_2)
{
s32 param_2_s32 = (s16)param_2;
if (param_1 != NULL)
if (param_1 != NULL)
{
gUnknown_203B49C = TRUE;
gUnknown_203B49D = 0;

View File

@@ -20,9 +20,10 @@ typedef struct unkStruct_800D670
// rescue_password_menu.c
extern s32 gCommsTimeout; // Counts to 100 and then errors if other player hasn't connected
extern s32 gUnknown_202EC40[2];
extern s32 gUnknown_202EC48;
extern s32 gUnknown_202EC38;
EWRAM_DATA static s32 gUnknown_202EC38 = 0;
UNUSED EWRAM_DATA static u8 sUnused = 0;
EWRAM_DATA static s32 gUnknown_202EC40[2] = {0};
EWRAM_DATA static s32 gUnknown_202EC48 = 0;
extern struct UnkStruct_203B184 *gUnknown_203B184;
@@ -190,7 +191,7 @@ s32 sub_8037C10(bool8 a0)
if (sub_800D588())
ret = gUnknown_202EC40[1];
else
ret = gUnknown_202EC40[0];
ret = gUnknown_202EC40[0];
}
return ret;

View File

@@ -16,8 +16,6 @@ struct SoundNamesStruct
};
// Forward declarations
static const char sText_Table[];
static const char sText_Header[];
static const char sText_PKDSoundData[];
const struct SoundNamesStruct gSoundNamesStruct;
@@ -33,14 +31,12 @@ ALIGNED(4) UNUSED static const char sPksDir1[] = "pksdir0";
const struct SoundNamesStruct gSoundNamesStruct =
{
.headerText = sText_Header,
.headerText = "HEADER",
.soundDataBankText = sText_PKDSoundData,
.tableText = sText_Table,
.tableText = "TABLE",
.sfxNames = gSfxNames,
};
ALIGNED(4) static const char sText_Table[] = "TABLE";
ALIGNED(4) static const char sText_Header[] = "HEADER";
ALIGNED(4) UNUSED static const char sPksDir2[] = "pksdir0";
ALIGNED(4) static const char sText_PKDSoundData[] = "PKD Sound Data Bank";

View File

@@ -15,8 +15,6 @@ struct CharMapStruct
struct unkChar *unk4;
};
// data.s
// data2.s
extern const char gUnknown_80B88B0[]; // "font"
extern const char gUnknown_80B88B8[]; // "fontsp"
@@ -25,9 +23,6 @@ extern const char gUnknown_80B88C0[]; // "fontsppa"
// system_sbin.s
extern const struct FileArchive gSystemFileArchive;
// Todo fix gUnknown_3000E94 being accessed as s16/u8
extern s16 gUnknown_3000E94[];
EWRAM_DATA UnkTextStruct1 gUnknown_2027370[4] = {0};
EWRAM_DATA static struct CharMapStruct *sCharmaps[2] = {NULL};
EWRAM_DATA static s16 sCharacterSpacing = 0;
@@ -46,6 +41,8 @@ EWRAM_DATA static u32 sTextShadowMask = 0; // Some text color info is stored; re
EWRAM_DATA static u8 sDrawTextShadow = 0;
EWRAM_DATA ALIGNED(4) u16 gUnknown_202B038[4][32][32] = {0};
IWRAM_DATA static s16 gUnknown_3000E94[161] = {0};
// These text-related functions were deemed important as they're copied and run from IWRAM for improved performance.
static void sub_8272774(UnkTextStruct1 *txtStructs, s32 id);
static void sub_8272884(UnkTextStruct1 *txtStructs, s32 id);
@@ -2861,7 +2858,7 @@ static void sub_800898C(void)
{
s32 i;
for (i = 0; i < 161; i++) {
for (i = 0; i < ARRAY_COUNT_INT(gUnknown_3000E94); i++) {
gUnknown_3000E94[i] = 0xF0F0;
}
}
@@ -2873,7 +2870,7 @@ static void sub_80089AC(const UnkTextStruct2 *r4, DungeonPos *r5_Str)
if (r4->unk0 & 0x40)
return;
r6 = (void*) &gUnknown_3000E94;
r6 = (u8*) gUnknown_3000E94;
if (r4->unk4 == 1) {
s32 r12 = (r4->pos.x + r5_Str->x) * 8;
s32 r5 = (r4->pos.y + r5_Str->y) * 8;

View File

@@ -95,9 +95,6 @@ const UnkTextStruct2 gUnknown_80DED60 =
NULL
};
extern const u8 SendItem_Text[];
extern const u8 DontSendItem_Text[];
const MenuItem gUnknown_80DED78[] =
{
{"Confirm", CONFIRM_ACTION},
@@ -149,15 +146,12 @@ const MenuItem gUnknown_80DEE60[] =
const MenuItem gUnknown_80DEE7C[] =
{
{SendItem_Text, SEND_ITEM_ACTION},
{DontSendItem_Text, NO_SEND_ITEM_ACTION},
{"Send Item", SEND_ITEM_ACTION},
{_("Don't Send Item"), NO_SEND_ITEM_ACTION},
{"Cancel", CANCEL_ACTION},
{},
};
ALIGNED(4) static const u8 DontSendItem_Text[] = _("Don't Send Item");
ALIGNED(4) static const u8 SendItem_Text[] = "Send Item";
const MenuItem gUnknown_80DEEBC[] =
{
{"Send w/o Item", NO_SEND_ITEM_ACTION},

View File

@@ -1,42 +1,14 @@
.include "src/m4a.o"
.include "src/code_2.o"
.space 0x4
gTitleBrightness: /* 2000A80 (GameLoop) */
.space 0x8
gScriptVarBuffer: /* 2000A88 (ThoroughlyResetScriptVars - RestoreGlobalScriptVars) */
.space 0x400
.include "src/event_flag.o"
.include "src/memory.o"
.include "src/bg_palette_buffer.o"
.include "src/input.o"
.include "src/sprite.o"
gUnknown_2026E38: /* 2026E38 (sub_80057E8 - VBlank_CB) */
.space 0x4
gUnknown_2026E3C: /* 2026E3C (sub_80057E8 - VBlank_CB) */
.space 0x4
gUnknown_2026E40: /* 2026E40 (sub_8005838) */
.space 0x4
gUnknown_2026E44: /* 2026E44 (sub_8005838) */
.space 0x4
gUnknown_2026E48: /* 2026E48 (sub_8005838) */
.space 0x4
gUnknown_2026E4C: /* 2026E4C (sub_80057E8 - sub_8005838) */
.space 0x2
gUnknown_2026E4E: /* 2026E4E (GameLoop - GroundWeather_Select) */
.space 0x2
gUnknown_2026E50: /* 2026E50 (sub_80057E8 - sub_80060EC) */
.space 0x4
gUnknown_2026E54: /* 2026E54 (sub_80057E8 - sub_80060EC) */
.space 0x4
gUnknown_2026E58: /* 2026E58 (sub_80057E8 - sub_80060EC) */
.space 0x8
gUnknown_2026E60: /* 2026E60 (sub_8005838) */
.space 0x288
gUnknown_20270E8: /* 20270E8 (sub_8005838) */
.space 0x288
.include "src/code_800558C.o"
.include "src/text.o"
@@ -128,15 +100,7 @@ gUnknown_202DE19: /* 202DE19 (sub_800F990 - sub_8010014) */
.space 4
.include "src/string_format.o"
.space 4
gUnknown_202EC38: /* 202EC38 (sub_8037B28) */
.space 0x8
gUnknown_202EC40: /* 202EC40 (sub_8037A48 - sub_8037C10) */
.space 0x8
gUnknown_202EC48: /* 202EC48 (sub_8037D64) */
.space 0x4
.include "src/other_menus2.o"
.include "src/rescue_password_menu.o"
.space 0x2
@@ -258,14 +222,10 @@ gUnknown_202F32D: /* 202F32D (sub_8072CF4 - UseAttack) */
.space 0x3
.include "src/dungeon_ai_items.o"
gUnknown_202F378: /* 202F378 (sub_8074FB0 - UseAttack) */
.space 0x8
.include "src/code_8073CF0.o"
.space 0x4
.include "src/dungeon_ai_attack.o"
gUnknown_202F3D0: /* 202F3D0 (sub_80867F4 - sub_8086854) */
.space 0x8
.include "src/code_80869E4.o"
gUnknown_202F3D8: /* 202F3D8 (sub_8085B4C - sub_8085B80) */
.space 0x8
@@ -289,12 +249,8 @@ gUnknown_202F3D8: /* 202F3D8 (sub_8085B4C - sub_8085B80) */
.include "src/exclusive_pokemon.o"
.space 0x4
.include "src/ground_main.o"
.space 0x2
gUnknown_20398C8: /* 20398C8 (sub_80991E0 - sub_809927C) */
.space 0x88 /* This should be a "struct WonderMailStruct_203B2C0_sub", at least I think so due to its size. Kermalis */
gUnknown_2039950: /* 2039950 (xxx_script_related_8098468 - sub_809927C) */
.space 0x8
.space 0x7
gUnknown_2039958: /* 2039958 (sub_809977C - sub_8099BE4) */
.space 0x10

View File

@@ -6,13 +6,7 @@ gUnknown_3000400: /* 3000400 */
gUnknown_3000C00: /* 3000C00 */
.space 0x294
gUnknown_3000E94: /* 3000E94 */
.space 0x144
.include "src/text.o"
.include "src/music.o"
gUnknown_3001018: /* 3001018 */
.space 0x180
.include "src/code_803E724.o"
.include "src/code_8094D28.o"