summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt16
-rw-r--r--emulator.cpp4
2 files changed, 15 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5f89536..487b6fd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -45,6 +45,14 @@ target_include_directories(musashi_m68k PRIVATE
# TODO make SDL2 optional for headless mode
find_package(SDL2 REQUIRED)
+set(common_debug_flags
+ # XXX Sanitizers make everything really slow
+ #-fsanitize=address
+ -O1
+ # Uncomment to enable profiling
+ #-pg
+ )
+
add_executable(emulator ${emulator_sources})
target_compile_options(emulator PRIVATE
$<$<COMPILE_LANGUAGE:CXX>:-fms-extensions>
@@ -65,11 +73,12 @@ target_compile_options(emulator PRIVATE
-Wlogical-op
-pedantic
-g3
- -O2
- -fsanitize=address,undefined
+ $<$<CONFIG:DEBUG>:${common_debug_flags}>
)
-target_link_options(emulator PRIVATE -fsanitize=address,undefined)
+target_link_options(emulator PRIVATE
+ $<$<CONFIG:DEBUG>:${common_debug_flags}>
+ )
target_link_libraries(emulator musashi_m68k)
# TODO make SDL2 optional for headless mode
target_include_directories(emulator PRIVATE ${SDL2_INCLUDE_DIRS})
@@ -83,6 +92,7 @@ target_compile_definitions(emulator PRIVATE
HAS_GRAPHICS=1
)
+
## Target for GDB Remote Debugging protocol implementation testing
#add_executable(gdbremote
# gdbremote.cpp
diff --git a/emulator.cpp b/emulator.cpp
index 0dc63b9..72d5184 100644
--- a/emulator.cpp
+++ b/emulator.cpp
@@ -442,13 +442,13 @@ void ParseAndReact(
static void RunSingleVideoCycle(M68KDebuggingControl& m68k_debug, Graphics& graphics)
{
do {
- g_cycles_counter += m68k_execute(100000);
+ g_cycles_counter += m68k_execute(4000);
if (m68k_debug.HasBreakpoint()) {
return;
}
} while (!g_vdp.Scanline());
graphics.Render(g_vdp);
- g_cycles_counter += m68k_execute(800000);
+ g_cycles_counter += m68k_execute(400000);
}
int emulator(M68KDebuggingControl& m68k_debug, Graphics& graphics)