remove 1000ish bytes with ramscript (thx griffinR for advice)
This commit is contained in:
parent
741f62fc0b
commit
ef6c4ddbb1
2 changed files with 27 additions and 1 deletions
|
@ -15,7 +15,7 @@
|
||||||
#define FREE_EXTRA_SEEN_FLAGS //free up extra pokedex seen flags. Frees up 104 bytes
|
#define FREE_EXTRA_SEEN_FLAGS //free up extra pokedex seen flags. Frees up 104 bytes
|
||||||
#define FREE_FIELD_3598 //frees up unused saveblock data. 384 bytes
|
#define FREE_FIELD_3598 //frees up unused saveblock data. 384 bytes
|
||||||
#define FREE_TRAINER_HILL //frees up trainer hill data. 28 bytes
|
#define FREE_TRAINER_HILL //frees up trainer hill data. 28 bytes
|
||||||
#define FREE_MYSTERY_EVENT_BUFFERS //frees up mystery event. 876 bytes
|
#define FREE_MYSTERY_EVENT_BUFFERS //frees up mystery event and ramScript. roughly 1880 bytes
|
||||||
#define FREE_MATCH_CALL //frees up match call data. 104 bytes
|
#define FREE_MATCH_CALL //frees up match call data. 104 bytes
|
||||||
#define FREE_UNION_ROOM_CHAT //frees up field unk3C88. 210 bytes
|
#define FREE_UNION_ROOM_CHAT //frees up field unk3C88. 210 bytes
|
||||||
#define FREE_ENIGMA_BERRY //frees up enigma berry. 52 bytes
|
#define FREE_ENIGMA_BERRY //frees up enigma berry. 52 bytes
|
||||||
|
@ -1072,7 +1072,9 @@ struct SaveBlock1
|
||||||
#ifndef FREE_TRAINER_HILL
|
#ifndef FREE_TRAINER_HILL
|
||||||
/*0x3718*/ u32 trainerHillTimes[4]; //16 bytes
|
/*0x3718*/ u32 trainerHillTimes[4]; //16 bytes
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
/*0x3728*/ struct RamScript ramScript;
|
/*0x3728*/ struct RamScript ramScript;
|
||||||
|
#endif
|
||||||
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
|
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
|
||||||
#ifndef FREE_EXTRA_SEEN_FLAGS
|
#ifndef FREE_EXTRA_SEEN_FLAGS
|
||||||
/*0x3B24*/ u8 seen2[DEX_FLAGS_NO]; //52 bytes
|
/*0x3B24*/ u8 seen2[DEX_FLAGS_NO]; //52 bytes
|
||||||
|
|
24
src/script.c
24
src/script.c
|
@ -348,16 +348,23 @@ void TryRunOnWarpIntoMapScript(void)
|
||||||
|
|
||||||
u32 CalculateRamScriptChecksum(void)
|
u32 CalculateRamScriptChecksum(void)
|
||||||
{
|
{
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
return CalcCRC16WithTable((u8*)(&gSaveBlock1Ptr->ramScript.data), sizeof(gSaveBlock1Ptr->ramScript.data));
|
return CalcCRC16WithTable((u8*)(&gSaveBlock1Ptr->ramScript.data), sizeof(gSaveBlock1Ptr->ramScript.data));
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearRamScript(void)
|
void ClearRamScript(void)
|
||||||
{
|
{
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
CpuFill32(0, &gSaveBlock1Ptr->ramScript, sizeof(struct RamScript));
|
CpuFill32(0, &gSaveBlock1Ptr->ramScript, sizeof(struct RamScript));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId)
|
bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId)
|
||||||
{
|
{
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||||
|
|
||||||
ClearRamScript();
|
ClearRamScript();
|
||||||
|
@ -372,10 +379,14 @@ bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8
|
||||||
memcpy(scriptData->script, script, scriptSize);
|
memcpy(scriptData->script, script, scriptSize);
|
||||||
gSaveBlock1Ptr->ramScript.checksum = CalculateRamScriptChecksum();
|
gSaveBlock1Ptr->ramScript.checksum = CalculateRamScriptChecksum();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
#else
|
||||||
|
return FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8 *GetRamScript(u8 objectId, const u8 *script)
|
const u8 *GetRamScript(u8 objectId, const u8 *script)
|
||||||
{
|
{
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||||
gRamScriptRetAddr = NULL;
|
gRamScriptRetAddr = NULL;
|
||||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||||
|
@ -396,10 +407,14 @@ const u8 *GetRamScript(u8 objectId, const u8 *script)
|
||||||
gRamScriptRetAddr = script;
|
gRamScriptRetAddr = script;
|
||||||
return scriptData->script;
|
return scriptData->script;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
return script;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 ValidateSavedRamScript(void)
|
bool32 ValidateSavedRamScript(void)
|
||||||
{
|
{
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||||
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
if (scriptData->magic != RAM_SCRIPT_MAGIC)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -412,10 +427,14 @@ bool32 ValidateSavedRamScript(void)
|
||||||
if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum)
|
if (CalculateRamScriptChecksum() != gSaveBlock1Ptr->ramScript.checksum)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
#else
|
||||||
|
return FALSE;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 *GetSavedRamScriptIfValid(void)
|
u8 *GetSavedRamScriptIfValid(void)
|
||||||
{
|
{
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data;
|
||||||
if (!ValidateReceivedWonderCard())
|
if (!ValidateReceivedWonderCard())
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -436,11 +455,16 @@ u8 *GetSavedRamScriptIfValid(void)
|
||||||
{
|
{
|
||||||
return scriptData->script;
|
return scriptData->script;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize)
|
void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize)
|
||||||
{
|
{
|
||||||
|
#ifndef FREE_MYSTERY_EVENT_BUFFERS
|
||||||
if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script))
|
if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script))
|
||||||
scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script);
|
scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script);
|
||||||
InitRamScript(script, scriptSize, 0xFF, 0xFF, 0xFF);
|
InitRamScript(script, scriptSize, 0xFF, 0xFF, 0xFF);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue