From ae3cb19a033ada97f45c7c814843bd5a7f902bd2 Mon Sep 17 00:00:00 2001 From: Ilari Liusvaara Date: Thu, 9 Apr 2015 04:18:59 +0300 Subject: [PATCH] SNES: Functions for messing with clockrate (for debugging games) --- src/emulation/bsnes-legacy/Makefile | 2 +- src/emulation/bsnes-legacy/frequency.cpp | 52 ++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 src/emulation/bsnes-legacy/frequency.cpp diff --git a/src/emulation/bsnes-legacy/Makefile b/src/emulation/bsnes-legacy/Makefile index 1475fce9..22c89114 100644 --- a/src/emulation/bsnes-legacy/Makefile +++ b/src/emulation/bsnes-legacy/Makefile @@ -1,5 +1,5 @@ ifdef BUILD_BSNES -OBJECTS=core.$(OBJECT_SUFFIX) scpu-disasm.$(OBJECT_SUFFIX) bitmap.$(OBJECT_SUFFIX) +OBJECTS=core.$(OBJECT_SUFFIX) scpu-disasm.$(OBJECT_SUFFIX) bitmap.$(OBJECT_SUFFIX) frequency.$(OBJECT_SUFFIX) BSNES_CFLAGS= BSNES_LDFLAGS= ifdef BSNES_IS_COMPAT diff --git a/src/emulation/bsnes-legacy/frequency.cpp b/src/emulation/bsnes-legacy/frequency.cpp new file mode 100644 index 00000000..2e99a840 --- /dev/null +++ b/src/emulation/bsnes-legacy/frequency.cpp @@ -0,0 +1,52 @@ +#include "lsnes.hpp" +#include "lua/bitmap.hpp" +#include "lua/internal.hpp" +#include "library/serialization.hpp" +#include "library/memoryspace.hpp" +#include "core/instance.hpp" +#include "core/memorymanip.hpp" +#ifdef BSNES_HAS_DEBUGGER +#define DEBUGGER +#endif +#include +#include +#include LIBSNES_INCLUDE_FILE + + +namespace +{ + int change_cpu_frequency(lua::state& L, lua::parameters& P) + { + uint64_t freq; + P(freq); + SNES::cpu.frequency = freq; + return 0; + } + + int change_smp_frequency(lua::state& L, lua::parameters& P) + { + uint64_t freq; + P(freq); + SNES::smp.frequency = freq; + return 0; + } + + int get_cpu_frequency(lua::state& L, lua::parameters& P) + { + L.pushnumber(SNES::cpu.frequency); + return 1; + } + + int get_smp_frequency(lua::state& L, lua::parameters& P) + { + L.pushnumber(SNES::smp.frequency); + return 1; + } + + lua::functions bitmap_fns_snes(lua_func_misc, "bsnes", { + {"set_cpu_frequency", change_cpu_frequency}, + {"set_smp_frequency", change_smp_frequency}, + {"get_cpu_frequency", get_cpu_frequency}, + {"get_smp_frequency", get_smp_frequency}, + }); +}