diff --git a/CMakeLists.txt b/CMakeLists.txt index 88bb895a..93cd6ac5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ # 'LICENSE', which is part of this source code package. # -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.15) project(cen64 C) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" ${CMAKE_MODULE_PATH}) @@ -480,7 +480,7 @@ add_executable(cen64 target_link_libraries(cen64 ${EXTRA_OS_LIBS} ${OPENAL_LIBRARY} - ${OPENGL_gl_LIBRARY} + ${OPENGL_LIBRARY} ${ICONV_LIBRARIES} ${VIDEO_LIB} ${CMAKE_THREAD_LIBS_INIT} diff --git a/cen64.c b/cen64.c index 51014a42..2715d45b 100644 --- a/cen64.c +++ b/cen64.c @@ -472,7 +472,7 @@ int run_device(struct cen64_device *device, bool no_video) { return 1; } - cen64_thread_setname(thread, "device"); + cen64_thread_setname(&thread, "device"); if (!no_video) cen64_gl_window_thread(device); diff --git a/device/device.c b/device/device.c index cd5a046c..a41a6572 100644 --- a/device/device.c +++ b/device/device.c @@ -283,7 +283,7 @@ int device_multithread_spin(struct cen64_device *device) { } - cen64_thread_setname(vr4300_thread, "vr4300"); + cen64_thread_setname(&vr4300_thread, "vr4300"); run_rcp_thread(device); @@ -351,4 +351,4 @@ int device_debug_spin(struct cen64_device *device) { cen64_cold void device_connect_debugger(struct cen64_device *device, void* break_handler_data, vr4300_debug_break_handler break_handler) { vr4300_connect_debugger(device->vr4300, break_handler_data, break_handler); -} \ No newline at end of file +} diff --git a/vr4300/interface.c b/vr4300/interface.c index 9250d2aa..449ee898 100644 --- a/vr4300/interface.c +++ b/vr4300/interface.c @@ -89,7 +89,8 @@ void signal_rcp_interrupt(struct vr4300 *vr4300, enum rcp_interrupt_mask mask) { } // Reads a word from the MI MMIO register space. -int read_mi_regs(struct vr4300 *vr4300, uint32_t address, uint32_t *word) { +int read_mi_regs(void *vr4300_ptr, uint32_t address, uint32_t *word) { + struct vr4300* vr4300 = (struct vr4300*)vr4300_ptr; uint32_t offset = address - MI_REGS_BASE_ADDRESS; enum mi_register reg = (offset >> 2); @@ -99,7 +100,8 @@ int read_mi_regs(struct vr4300 *vr4300, uint32_t address, uint32_t *word) { } // Writes a word to the MI MMIO register space. -int write_mi_regs(struct vr4300 *vr4300, uint32_t address, uint32_t word, uint32_t dqm) { +int write_mi_regs(void *vr4300_ptr, uint32_t address, uint32_t word, uint32_t dqm) { + struct vr4300* vr4300 = (struct vr4300*)vr4300_ptr; uint32_t offset = address - MI_REGS_BASE_ADDRESS; enum mi_register reg = (offset >> 2); uint32_t result; @@ -239,4 +241,4 @@ bool vr4300_read_word_vaddr(struct vr4300 *vr4300, uint64_t vaddr, uint32_t* res } return true; -} \ No newline at end of file +} diff --git a/vr4300/interface.h b/vr4300/interface.h index e77a4a09..3138ecad 100644 --- a/vr4300/interface.h +++ b/vr4300/interface.h @@ -50,8 +50,8 @@ uint64_t vr4300_get_pc(struct vr4300 *vr4300); bool vr4300_read_word_vaddr(struct vr4300 *vr4300, uint64_t vaddr, uint32_t* result); -int read_mi_regs(struct vr4300 *vr4300, uint32_t address, uint32_t *word); -int write_mi_regs(struct vr4300 *vr4300, uint32_t address, uint32_t word, uint32_t dqm); +int read_mi_regs(void *vr4300_ptr, uint32_t address, uint32_t *word); +int write_mi_regs(void *vr4300_ptr, uint32_t address, uint32_t word, uint32_t dqm); void clear_rcp_interrupt(struct vr4300 *vr4300, enum rcp_interrupt_mask mask); void signal_rcp_interrupt(struct vr4300 *vr4300, enum rcp_interrupt_mask mask);