diff --git a/.github/docs/re0.md b/.github/docs/re0.md index 671c6b575..0182b9647 100644 --- a/.github/docs/re0.md +++ b/.github/docs/re0.md @@ -15,6 +15,6 @@ Installation: Download and extract the archive to the game directory, where the exe is located. -[Website](https://thirteenag.github.io/wfp#re0) | [Source](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/source/ResidentEvil0.FusionFix/dllmain.cpp) | [Default INI File](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/data/ResidentEvil6.FusionFix/scripts/ResidentEvil0.FusionFix.ini) +[Website](https://thirteenag.github.io/wfp#re0) | [Source](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/source/ResidentEvil0.FusionFix/dllmain.cpp) | [Default INI File](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/data/ResidentEvil0.FusionFix/scripts/ResidentEvil0.FusionFix.ini)



diff --git a/.github/docs/re1.md b/.github/docs/re1.md index d7764d9b4..1344013db 100644 --- a/.github/docs/re1.md +++ b/.github/docs/re1.md @@ -19,6 +19,6 @@ https://github.com/ThirteenAG/WidescreenFixesPack/assets/4904157/07921b0b-3dbf-4 Installation: Download and extract the archive to the game directory, where the exe is located. -[Website](https://thirteenag.github.io/wfp#re0) | [Source](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/source/ResidentEvil0.FusionFix/dllmain.cpp) | [Default INI File](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/data/ResidentEvil6.FusionFix/scripts/ResidentEvil0.FusionFix.ini) +[Website](https://thirteenag.github.io/wfp#re1) | [Source](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/source/ResidentEvil.FusionFix/dllmain.cpp) | [Default INI File](https://github.com/ThirteenAG/WidescreenFixesPack/blob/master/data/ResidentEvil.FusionFix/scripts/ResidentEvil.FusionFix.ini)



diff --git a/data/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/PLUGINS/SplinterCellDoubleAgent.PCSX2F.SkipIntro.elf b/data/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/PLUGINS/SplinterCellDoubleAgent.PCSX2F.SkipIntro.elf deleted file mode 100644 index 178aaf5b7..000000000 Binary files a/data/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/PLUGINS/SplinterCellDoubleAgent.PCSX2F.SkipIntro.elf and /dev/null differ diff --git a/data/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/PLUGINS/SplinterCellDoubleAgent.PCSX2F.WidescreenFix.ini b/data/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/PLUGINS/SplinterCellDoubleAgent.PCSX2F.WidescreenFix.ini new file mode 100644 index 000000000..2e03495e0 --- /dev/null +++ b/data/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/PLUGINS/SplinterCellDoubleAgent.PCSX2F.WidescreenFix.ini @@ -0,0 +1,2 @@ +[MAIN] +SkipIntro = 1 diff --git a/source/GTAVCS.PCSX2F.WidescreenFix/main.c b/source/GTAVCS.PCSX2F.WidescreenFix/main.c index 690dfecec..9e1a45368 100644 --- a/source/GTAVCS.PCSX2F.WidescreenFix/main.c +++ b/source/GTAVCS.PCSX2F.WidescreenFix/main.c @@ -393,6 +393,9 @@ void init() injector.MakeInlineLUIORI(0x31f1d4, 2.0f * ARDiff); // money and time spacing, not adjusted by ws option originally injector.MakeInlineLUIORI(0x31f5b4, fWeaponIconPos); //weapon icon pos injector.MakeInlineLUIORI(0x31f648, fWeaponIconSize); // weapon icon size + injector.MakeInlineLUIORI(0x31FB3C, 438.0f - 4.0f); // ammo + injector.MakeInlineLUIORI(0x31FB5C, 444.0f - 4.0f); // ammo + //injector.MakeInlineLUIORI(0x31F8D8, 0.24f * ARDiff); // ammo font size injector.MakeInlineLUIORI(0x31ff94, 13.5f - 2.5f); injector.MakeInlineLUIORI(0x320b40, (405.0f + 10.0f)); injector.MakeInlineLUIORI(0x31f2ac, (float)round_f((64.0f * Screen.fHudScale))); //radar scale diff --git a/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/main.c b/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/main.c index 09c4fa67f..fa424183b 100644 --- a/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/main.c +++ b/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/main.c @@ -4,12 +4,15 @@ #include "../../includes/pcsx2/pcsx2f_api.h" #include "../../includes/pcsx2/log.h" +#include "../../includes/pcsx2/inireader.h" +#include "../../includes/pcsx2/patterns.h" #include "../../includes/pcsx2/injector.h" int CompatibleCRCList[] = { 0xC0498D24, 0xABE2FDE9 }; -int CompatibleElfCRCList[] = { 0x198F1AD, 0x6BD0E9C2 }; +int CompatibleElfCRCList[] = { 0xC0498D24, 0xABE2FDE9, 0x198F1AD, 0x6BD0E9C2 }; int PCSX2Data[PCSX2Data_Size] = { 1 }; char OSDText[OSDStringNum][OSDStringSize] = { {1} }; +char PluginData[MaxIniSize] = { 1 }; struct ScreenX { @@ -44,6 +47,28 @@ void init() logger.SetBuffer(OSDText, sizeof(OSDText) / sizeof(OSDText[0]), sizeof(OSDText[0])); logger.Write("Loading SplinterCellDoubleAgent.PCSX2F.WidescreenFix..."); + inireader.SetIniPath((char*)PluginData + sizeof(uint32_t), *(uint32_t*)PluginData); + + int SkipIntro = inireader.ReadInteger("MAIN", "SkipIntro", 1); + + if (SkipIntro) + { + char ElfPattern[] = "00 00 00 00 ? ? ? ? 00 00 00 00 ? ? ? ? 2D 28 00 00 ? ? ? ? 2D 30 00 00 2D 38 00 00"; + uintptr_t ptr_222DB8 = pattern.get_first((const char*)&ElfPattern, -12); + + if (ptr_222DB8 != 0) + { + logger.Write("Skipping intro..."); + injector.WriteMemory16(ptr_222DB8 + 2, 0x1000); // beq -> b + uintptr_t ptr_223CBC = pattern.get(1, "00 00 45 8C ? ? ? ? B8 00 0B 24 ? ? ? ? 00 00 00 00", 20); + injector.MakeNOP(ptr_223CBC); + uintptr_t ptr_22312C = pattern.get(0, "00 00 00 00 02 00 02 24 ? ? ? ? 00 00 00 00 01 00 02 24 ? ? ? ? 00 00 00 00 ? ? ? ? 00 00 00 00 ? ? ? ? 00 00 00 00 00 00 00 00 ? ? ? ? 00 00 00 00", -4); + uintptr_t ptr_2231F8 = pattern.get(0, "03 00 02 24 00 00 00 00 ? ? ? ? 00 00 00 00", 0); + injector.MakeJMPwNOP(ptr_22312C, ptr_2231F8); + return; + } + } + uint32_t DesktopSizeX = PCSX2Data[PCSX2Data_DesktopSizeX]; uint32_t DesktopSizeY = PCSX2Data[PCSX2Data_DesktopSizeY]; Screen.nWidth = PCSX2Data[PCSX2Data_WindowSizeX]; diff --git a/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/makefile_skipintro b/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/makefile_skipintro deleted file mode 100644 index cd7b77e36..000000000 --- a/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/makefile_skipintro +++ /dev/null @@ -1,18 +0,0 @@ -EE_BIN = ../../data/SplinterCellDoubleAgent.PCSX2F.SkipIntro/PLUGINS/SplinterCellDoubleAgent.PCSX2F.SkipIntro.elf -EE_OBJS = skipintro.o ../../includes/pcsx2/log.o ../../includes/pcsx2/memalloc.o ../../includes/pcsx2/patterns.o ../../includes/pcsx2/injector.o ../../includes/pcsx2/rini.o ../../includes/pcsx2/inireader.o ../../includes/pcsx2/mips.o - -BASE_ADDRESS = 0x03100000 -EE_LINKFILE = linkfile -EE_LIBS += -l:libc.a -EE_LDFLAGS = -Wl,--entry=init -Wl,-Map,../../data/SplinterCellDoubleAgent.PCSX2F.SkipIntro/PLUGINS/SplinterCellDoubleAgent.PCSX2F.SkipIntro.map -nostdlib -nodefaultlibs -Wl,'--defsym=BASE_ADDRESS=$(BASE_ADDRESS)' - -all: clean main-build - -main-build: $(EE_BIN) - -clean: - rm -f $(EE_OBJS) $(EE_BIN) - -PS2SDK = ../../external/ps2sdk/ps2sdk -include $(PS2SDK)/samples/Makefile.pref -include $(PS2SDK)/samples/Makefile.eeglobal diff --git a/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/skipintro.c b/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/skipintro.c deleted file mode 100644 index c398dd45d..000000000 --- a/source/SplinterCellDoubleAgent.PCSX2F.WidescreenFix/skipintro.c +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include - -#include "../../includes/pcsx2/pcsx2f_api.h" - -#include "../../includes/pcsx2/log.h" -#include "../../includes/pcsx2/patterns.h" -#include "../../includes/pcsx2/injector.h" - -int CompatibleCRCList[] = { 0xC0498D24, 0xABE2FDE9 }; -int CompatibleElfCRCList[] = { 0xC0498D24, 0xABE2FDE9 }; - -char OSDText[OSDStringNum][OSDStringSize] = { {1} }; - -void init() -{ - logger.SetBuffer(OSDText, sizeof(OSDText) / sizeof(OSDText[0]), sizeof(OSDText[0])); - logger.Write("Loading SplinterCellDoubleAgent.PCSX2F.SkipIntro..."); - - char ElfPattern[] = "00 00 00 00 ? ? ? ? 00 00 00 00 ? ? ? ? 2D 28 00 00 ? ? ? ? 2D 30 00 00 2D 38 00 00"; - uintptr_t ptr_222DB8 = pattern.get_first((const char*)&ElfPattern, -12); - - if (ptr_222DB8 != 0) - { - logger.Write("Skipping intro..."); - injector.WriteMemory16(ptr_222DB8 + 2, 0x1000); // beq -> b - uintptr_t ptr_223CBC = pattern.get(1, "00 00 45 8C ? ? ? ? B8 00 0B 24 ? ? ? ? 00 00 00 00", 20); - injector.MakeNOP(ptr_223CBC); - uintptr_t ptr_2231F4 = pattern.get_first("04 00 02 24 ? ? ? ? 03 00 02 24 00 00 00 00", 4); - injector.MakeNOP(ptr_2231F4); - } - - logger.Write("SplinterCellDoubleAgent.PCSX2F.SkipIntro loaded"); -} - -int main() -{ - return 0; -}