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;
-}