diff options
author | neonloop | 2023-01-29 07:37:02 +0000 |
---|---|---|
committer | neonloop | 2023-01-29 07:37:02 +0000 |
commit | 67740303f51ca3e5aa7edb19d1d2760990bf0b0c (patch) | |
tree | 856d1171457f816a5d3841567c72bc5cfa18ac97 /patches | |
parent | acf64246dfbcb2cd9bd1e4c65fc11c409f892863 (diff) | |
download | picoarch-67740303f51ca3e5aa7edb19d1d2760990bf0b0c.tar.gz picoarch-67740303f51ca3e5aa7edb19d1d2760990bf0b0c.tar.bz2 picoarch-67740303f51ca3e5aa7edb19d1d2760990bf0b0c.zip |
Adds dosbox-pure core
dosbox-pure does not support resume states, because it loads puremenu
before loading game. Savestates can also glitch loaded game.
Diffstat (limited to 'patches')
-rw-r--r-- | patches/dosbox-pure/0001-add-auto-cycle-limit.patch | 35 | ||||
-rw-r--r-- | patches/dosbox-pure/1000-funkey-s-support.patch | 4 |
2 files changed, 37 insertions, 2 deletions
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<<CPU_AUTODETERMINE_SHIFT)); ++ CPU_CycleAutoAdjust = true; ++ // Switch to dynamic core ++ if (CPU_AutoDetermineMode & CPU_AUTODETERMINE_CORE) ++ { ++#else ++ + // Switch to dynamic core for newer real mode games + if (CPU_CycleMax >= 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) |