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)  | 
