From 8c295f4eae1623bd95a842d375de9cfe3fed8302 Mon Sep 17 00:00:00 2001 From: red031000 Date: Fri, 12 Mar 2021 23:23:53 +0000 Subject: start of scrcmd decomp --- include/scrcmd.h | 28 +++++++++++++++++++++++++++- include/script.h | 4 ++-- 2 files changed, 29 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/scrcmd.h b/include/scrcmd.h index 5ebec947..0aa3fd75 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -1,6 +1,32 @@ #ifndef POKEDIAMOND_SCRCMD_H #define POKEDIAMOND_SCRCMD_H -BOOL ScrCmd_givemon(struct ScriptContext* ctx); +#include "global.h" +#include "script.h" + +//scrcmd.c +BOOL ScrCmd_Nop(struct ScriptContext* ctx); +BOOL ScrCmd_Dummy(struct ScriptContext* ctx); +BOOL ScrCmd_End(struct ScriptContext* ctx); +BOOL ScrCmd_Wait(struct ScriptContext* ctx); +BOOL ScrCmd_DebugWatch(struct ScriptContext* ctx); +BOOL ScrCmd_LoadByte(struct ScriptContext* ctx); +BOOL ScrCmd_LoadWord(struct ScriptContext* ctx); +BOOL ScrCmd_LoadByteFromAddr(struct ScriptContext* ctx); +BOOL ScrCmd_WriteByteToAddr(struct ScriptContext* ctx); +BOOL ScrCmd_SetPtrByte(struct ScriptContext* ctx); +BOOL ScrCmd_CopyLocal(struct ScriptContext* ctx); +BOOL ScrCmd_CopyByte(struct ScriptContext* ctx); +BOOL ScrCmd_CompareLocalToLocal(struct ScriptContext* ctx); +BOOL ScrCmd_CompareLocalToValue(struct ScriptContext* ctx); +BOOL ScrCmd_CompareLocalToAddr(struct ScriptContext* ctx); +BOOL ScrCmd_CompareAddrToLocal(struct ScriptContext* ctx); +BOOL ScrCmd_CompareAddrToValue(struct ScriptContext* ctx); +BOOL ScrCmd_CompareAddrToAddr(struct ScriptContext* ctx); +BOOL ScrCmd_CompareVarToValue(struct ScriptContext* ctx); +BOOL ScrCmd_CompareVarToVar(struct ScriptContext* ctx); + +//scrcmd_18.c +BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); #endif //POKEDIAMOND_SCRCMD_H diff --git a/include/script.h b/include/script.h index 8fd7696f..c25751e4 100644 --- a/include/script.h +++ b/include/script.h @@ -15,7 +15,7 @@ struct ScriptContext u8 stackDepth; u8 mode; u8 comparisonResult; - u8 (*nativePtr)(struct ScriptContext *); + BOOL (*nativePtr)(struct ScriptContext *); const u8 *scriptPtr; const u8 *stack[20]; ScrCmdFunc *cmdTable; @@ -31,7 +31,7 @@ struct ScriptContext void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, u32 cmdCount); u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr); -void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *)); +void SetupNativeScript(struct ScriptContext *ctx, BOOL (*ptr)(struct ScriptContext *)); void StopScript(struct ScriptContext *ctx); void FUN_02038B6C(struct ScriptContext *ctx, s32 r1); u8 RunScriptCommand(struct ScriptContext *ctx); -- cgit v1.2.3 From e3c008e794c07a26445581f8ca8d1369fd703095 Mon Sep 17 00:00:00 2001 From: red031000 Date: Sat, 13 Mar 2021 17:08:05 +0000 Subject: more --- include/scrcmd.h | 25 +++++++++++++++++++++++++ include/script.h | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/scrcmd.h b/include/scrcmd.h index 0aa3fd75..a8c7ee4f 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -25,6 +25,31 @@ BOOL ScrCmd_CompareAddrToValue(struct ScriptContext* ctx); BOOL ScrCmd_CompareAddrToAddr(struct ScriptContext* ctx); BOOL ScrCmd_CompareVarToValue(struct ScriptContext* ctx); BOOL ScrCmd_CompareVarToVar(struct ScriptContext* ctx); +BOOL ScrCmd_RunScript(struct ScriptContext* ctx); +BOOL ScrCmd_RunScriptWait(struct ScriptContext* ctx); +BOOL ScrCmd_RestartCurrentScript(struct ScriptContext* ctx); +BOOL ScrCmd_GoTo(struct ScriptContext* ctx); +BOOL ScrCmd_ObjectGoTo(struct ScriptContext* ctx); +BOOL ScrCmd_BgGoTo(struct ScriptContext* ctx); +BOOL ScrCmd_DirectionGoTo(struct ScriptContext* ctx); +BOOL ScrCmd_Call(struct ScriptContext* ctx); +BOOL ScrCmd_Return(struct ScriptContext* ctx); +BOOL ScrCmd_GoToIf(struct ScriptContext* ctx); +BOOL ScrCmd_CallIf(struct ScriptContext* ctx); +BOOL ScrCmd_SetFlag(struct ScriptContext* ctx); +BOOL ScrCmd_ClearFlag(struct ScriptContext* ctx); +BOOL ScrCmd_CheckFlag(struct ScriptContext* ctx); +BOOL ScrCmd_CheckFlagVar(struct ScriptContext* ctx); +BOOL ScrCmd_SetFlagVar(struct ScriptContext* ctx); +BOOL ScrCmd_SetTrainerFlag(struct ScriptContext* ctx); +BOOL ScrCmd_ClearTrainerFlag(struct ScriptContext* ctx); +BOOL ScrCmd_CheckTrainerFlag(struct ScriptContext* ctx); +BOOL ScrCmd_AddVar(struct ScriptContext* ctx); +BOOL ScrCmd_SubVar(struct ScriptContext* ctx); +BOOL ScrCmd_SetVar(struct ScriptContext* ctx); +BOOL ScrCmd_CopyVar(struct ScriptContext* ctx); +BOOL ScrCmd_SetOrCopyVar(struct ScriptContext* ctx); +BOOL ScrCmd_Message(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); diff --git a/include/script.h b/include/script.h index c25751e4..de161889 100644 --- a/include/script.h +++ b/include/script.h @@ -22,7 +22,7 @@ struct ScriptContext u32 cmdCount; u32 data[4]; u32 unk74; - struct MsgData * unk78; + struct MsgData * msgData; u8 *unk7C; struct UnkStruct_0204639C * unk80; }; -- cgit v1.2.3 From bee5e11870b47027235c63794f20dc4cccaac92e Mon Sep 17 00:00:00 2001 From: red031000 Date: Sat, 13 Mar 2021 20:58:02 +0000 Subject: more --- include/scrcmd.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/scrcmd.h b/include/scrcmd.h index a8c7ee4f..ece18d9a 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -50,6 +50,10 @@ BOOL ScrCmd_SetVar(struct ScriptContext* ctx); BOOL ScrCmd_CopyVar(struct ScriptContext* ctx); BOOL ScrCmd_SetOrCopyVar(struct ScriptContext* ctx); BOOL ScrCmd_Message(struct ScriptContext* ctx); +BOOL ScrCmd_MessageFrom(struct ScriptContext* ctx); +BOOL ScrCmd_MessageFrom2(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); -- cgit v1.2.3 From 777bb376069caa8ef66a7ac753d9d2d0250af052 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 18 Mar 2021 16:00:46 +0000 Subject: fix main scrcmd struct --- include/scrcmd.h | 1 + include/script.h | 27 +++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/scrcmd.h b/include/scrcmd.h index ece18d9a..16a58556 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -54,6 +54,7 @@ BOOL ScrCmd_MessageFrom(struct ScriptContext* ctx); BOOL ScrCmd_MessageFrom2(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01FE(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); diff --git a/include/script.h b/include/script.h index de161889..5da251b5 100644 --- a/include/script.h +++ b/include/script.h @@ -10,6 +10,29 @@ struct ScriptContext; typedef u8 (*ScrCmdFunc)(struct ScriptContext *); typedef u8 Script[]; + +struct UnkStruct_020464D4 +{ + u16 unk0[4]; + u8 padding[0x108]; +}; + +struct UnkStruct_02046444 +{ + u8 padding[0x90]; + struct UnkStruct_020464D4 unk90[1]; //todo find size +}; + +struct UnkSavStruct80 +{ + u8 padding[0xC]; + struct SaveBlock2 *saveBlock2; + u8 padding2[0xC]; + u32 *mapId; + u8 padding3[0x88]; + struct UnkStruct_02046444 * unkA8; +}; + struct ScriptContext { u8 stackDepth; @@ -21,10 +44,10 @@ struct ScriptContext ScrCmdFunc *cmdTable; u32 cmdCount; u32 data[4]; - u32 unk74; + struct UnkStruct_0204639C * unk74; struct MsgData * msgData; u8 *unk7C; - struct UnkStruct_0204639C * unk80; + struct UnkSavStruct80 * unk80; }; #define ScriptReadByte(ctx) (*(ctx->scriptPtr++)) -- cgit v1.2.3 From 1d566ba7cf311dc85aecd43592724ce00bd73d93 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 18 Mar 2021 17:05:03 +0000 Subject: more --- include/scrcmd.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'include') diff --git a/include/scrcmd.h b/include/scrcmd.h index 16a58556..f40f7841 100644 --- a/include/scrcmd.h +++ b/include/scrcmd.h @@ -4,6 +4,13 @@ #include "global.h" #include "script.h" +struct UnkStruct_0203A288 { + u8 unk0; + u8 unk1; + u8 unk2; + u8 padding[1]; +}; + //scrcmd.c BOOL ScrCmd_Nop(struct ScriptContext* ctx); BOOL ScrCmd_Dummy(struct ScriptContext* ctx); @@ -55,6 +62,9 @@ BOOL ScrCmd_MessageFrom2(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx); BOOL ScrCmd_Unk01FE(struct ScriptContext* ctx); +BOOL ScrCmd_Unk01FF(struct ScriptContext* ctx); +BOOL ScrCmd_Unk026D(struct ScriptContext* ctx); +BOOL ScrCmd_Unk002C(struct ScriptContext* ctx); //scrcmd_18.c BOOL ScrCmd_GiveMon(struct ScriptContext* ctx); -- cgit v1.2.3