From 67740303f51ca3e5aa7edb19d1d2760990bf0b0c Mon Sep 17 00:00:00 2001 From: neonloop Date: Sun, 29 Jan 2023 07:37:02 +0000 Subject: Adds dosbox-pure core dosbox-pure does not support resume states, because it loads puremenu before loading game. Savestates can also glitch loaded game. --- .../dosbox-pure/0001-add-auto-cycle-limit.patch | 35 ++++++++++++++++++++++ patches/dosbox-pure/1000-funkey-s-support.patch | 4 +-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 patches/dosbox-pure/0001-add-auto-cycle-limit.patch (limited to 'patches') diff --git a/patches/dosbox-pure/0001-add-auto-cycle-limit.patch b/patches/dosbox-pure/0001-add-auto-cycle-limit.patch new file mode 100644 index 0000000..69baeb9 --- /dev/null +++ b/patches/dosbox-pure/0001-add-auto-cycle-limit.patch @@ -0,0 +1,35 @@ +diff --git a/dosbox_pure_libretro.cpp b/dosbox_pure_libretro.cpp +index 6a03631..dc4f70d 100644 +--- a/dosbox_pure_libretro.cpp ++++ b/dosbox_pure_libretro.cpp +@@ -451,15 +451,30 @@ void DBP_SetRealModeCycles() + (year > 1993 ? 60000 : // Pentium 90 MHz + Cycles1981to1993[year - 1981]))); // Matching speed for year + ++#ifdef CYCLE_LIMIT ++ if (CPU_CycleMax > CYCLE_LIMIT) ++ { ++ CPU_CycleMax = CYCLE_LIMIT; ++ CPU_AutoDetermineMode &= ~(CPU_AUTODETERMINE_CYCLES|(CPU_AUTODETERMINE_CYCLES<= 8192 && (CPU_AutoDetermineMode & CPU_AUTODETERMINE_CORE)) + { ++#endif + #if (C_DYNAMIC_X86) + if (cpudecoder != CPU_Core_Dyn_X86_Run) { void CPU_Core_Dyn_X86_Cache_Init(bool); CPU_Core_Dyn_X86_Cache_Init(true); cpudecoder = CPU_Core_Dyn_X86_Run; } + #elif (C_DYNREC) + if (cpudecoder != CPU_Core_Dynrec_Run) { void CPU_Core_Dynrec_Cache_Init(bool); CPU_Core_Dynrec_Cache_Init(true); cpudecoder = CPU_Core_Dynrec_Run; } + #endif + } ++#ifdef CYCLE_LIMIT ++ } ++#endif + } + + static void DBP_UnlockSpeed(bool unlock, int start_frame_skip = 0, bool skip_once = false) diff --git a/patches/dosbox-pure/1000-funkey-s-support.patch b/patches/dosbox-pure/1000-funkey-s-support.patch index 27ef8f7..59f7888 100644 --- a/patches/dosbox-pure/1000-funkey-s-support.patch +++ b/patches/dosbox-pure/1000-funkey-s-support.patch @@ -1,5 +1,5 @@ diff --git a/Makefile b/Makefile -index f0acd51..8ad5a68 100644 +index f0acd51..7b42e9b 100644 --- a/Makefile +++ b/Makefile @@ -104,6 +104,16 @@ else ifeq ($(platform),ctr) @@ -10,7 +10,7 @@ index f0acd51..8ad5a68 100644 + OUTNAME := dosbox_pure_libretro.so + CXX := $(CROSS_COMPILE)g++ + LDFLAGS := -Wl,--gc-sections -fno-ident -+ COMMONFLAGS += -pthread ++ COMMONFLAGS += -pthread -DCYCLE_LIMIT=8200 + CPUFLAGS += -marm -mtune=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7ve + STRIPCMD := $(CROSS_COMPILE)strip --strip-all + ifeq ($(DEBUG), 1) -- cgit v1.2.3