diff options
-rw-r--r-- | CMakeLists.txt | 18 | ||||
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | melonDS.cbp | 292 | ||||
-rw-r--r-- | src/libui_sdl/OSD.cpp | 4 | ||||
-rw-r--r-- | src/libui_sdl/libui/unix/CMakeLists.txt | 20 | ||||
-rw-r--r-- | src/libui_sdl/main.cpp | 5 |
6 files changed, 24 insertions, 321 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 048dd44..0aa558d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,9 +20,25 @@ else() option(ENABLE_LTO "Enable link-time optimization" OFF) endif() +if (CMAKE_BUILD_TYPE STREQUAL Debug) + add_compile_options(-Og) +endif() + if(ENABLE_LTO) add_compile_options(-O3 -flto) - set(CMAKE_AR "gcc-ar") + add_link_options(-flto) + + if (${CMAKE_CXX_COMPILER_ID} STREQUAL Clang) + find_program(LLD ld.lld) + if (LLD) + add_link_options(-fuse-ld=lld) + else() + add_link_options(-fuse-linker-plugin) + endif() + set(CMAKE_AR "llvm-ar") + else() + set(CMAKE_AR "gcc-ar") + endif() set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>") set(CMAKE_C_ARCHIVE_FINISH true) set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> qcs <TARGET> <LINK_FLAGS> <OBJECTS>") @@ -38,7 +38,7 @@ As for the rest, the interface should be pretty straightforward. If you have a q * Install dependencies: ```sh -sudo apt-get install gtk+-3.0 libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev +sudo apt-get install libgtk-3-dev libcurl4-gnutls-dev libpcap0.8-dev libsdl2-dev ``` * Compile: @@ -52,10 +52,6 @@ make -j$(nproc --all) ### Windows: - * use CodeBlocks - -#### MSYS2 and CMake - 1. Install [MSYS2](https://www.msys2.org/) 2. Open the **MSYS2 MinGW 64-bit** terminal 3. Update the packages using `pacman -Syu` and reopen the terminal if it asks you to diff --git a/melonDS.cbp b/melonDS.cbp deleted file mode 100644 index 8d900d1..0000000 --- a/melonDS.cbp +++ /dev/null @@ -1,292 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> -<CodeBlocks_project_file> - <FileVersion major="1" minor="6" /> - <Project> - <Option title="melonDS" /> - <Option pch_mode="2" /> - <Option compiler="gcc" /> - <Build> - <Target title="Debug Windows"> - <Option platforms="Windows;" /> - <Option output="bin/Debug/melonDS" prefix_auto="1" extension_auto="1" /> - <Option object_output="obj/Debug/" /> - <Option type="1" /> - <Option compiler="gcc" /> - <Compiler> - <Add option="-m64" /> - <Add option="-gdwarf-2" /> - <Add option="-D_FILE_OFFSET_BITS=64" /> - </Compiler> - <Linker> - <Add option="-m64" /> - </Linker> - </Target> - <Target title="Release Windows"> - <Option platforms="Windows;" /> - <Option output="bin/Release/melonDS" prefix_auto="1" extension_auto="1" /> - <Option object_output="obj/Release/" /> - <Option type="0" /> - <Option compiler="gcc" /> - <Compiler> - <Add option="-O3" /> - <Add option="-m64" /> - <Add option="-flto" /> - <Add option="-D_FILE_OFFSET_BITS=64" /> - </Compiler> - <Linker> - <Add option="-s" /> - <Add option="-m64" /> - </Linker> - </Target> - <Target title="DebugFast Windows"> - <Option platforms="Windows;" /> - <Option output="bin/DebugFast/melonDS" prefix_auto="1" extension_auto="1" /> - <Option object_output="obj/DebugFast/" /> - <Option type="1" /> - <Option compiler="gcc" /> - <Compiler> - <Add option="-O3" /> - <Add option="-m64" /> - <Add option="-D_FILE_OFFSET_BITS=64" /> - </Compiler> - <Linker> - <Add option="-m64" /> - </Linker> - </Target> - <Target title="DebugFast-Cap Windows"> - <Option platforms="Windows;" /> - <Option output="bin/DebugFast_Cap/melonDS" prefix_auto="1" extension_auto="1" /> - <Option object_output="obj/DebugFast_Cap/" /> - <Option type="1" /> - <Option compiler="gcc" /> - <Compiler> - <Add option="-O3" /> - <Add option="-m64" /> - <Add option="-D_FILE_OFFSET_BITS=64" /> - <Add option="-DMELONCAP" /> - </Compiler> - <Linker> - <Add option="-m64" /> - <Add library="winusb" /> - <Add library="setupapi" /> - </Linker> - </Target> - </Build> - <Compiler> - <Add option="-Wall" /> - <Add option="-fexceptions" /> - <Add option="-pipe" /> - <Add directory="src" /> - </Compiler> - <Linker> - <Add library="SDL2" /> - <Add library="shell32" /> - <Add library="comctl32" /> - <Add library="comdlg32" /> - <Add library="advapi32" /> - <Add library="wsock32" /> - <Add library="oleacc" /> - <Add library="ole32" /> - <Add library="usp10" /> - <Add library="gdi32" /> - <Add library="d2d1" /> - <Add library="dwrite" /> - <Add library="uxtheme" /> - <Add library="iphlpapi" /> - <Add library="user32" /> - <Add library="ws2_32" /> - <Add library="opengl32" /> - </Linker> - <Unit filename="melon.rc"> - <Option compilerVar="WINDRES" /> - </Unit> - <Unit filename="src/ARCodeList.cpp" /> - <Unit filename="src/ARCodeList.h" /> - <Unit filename="src/AREngine.cpp" /> - <Unit filename="src/AREngine.h" /> - <Unit filename="src/ARM.cpp" /> - <Unit filename="src/ARM.h" /> - <Unit filename="src/ARMInterpreter.cpp" /> - <Unit filename="src/ARMInterpreter.h" /> - <Unit filename="src/ARMInterpreter_ALU.cpp" /> - <Unit filename="src/ARMInterpreter_ALU.h" /> - <Unit filename="src/ARMInterpreter_Branch.cpp" /> - <Unit filename="src/ARMInterpreter_Branch.h" /> - <Unit filename="src/ARMInterpreter_LoadStore.cpp" /> - <Unit filename="src/ARMInterpreter_LoadStore.h" /> - <Unit filename="src/ARM_InstrTable.h" /> - <Unit filename="src/CP15.cpp" /> - <Unit filename="src/CRC32.cpp" /> - <Unit filename="src/CRC32.h" /> - <Unit filename="src/Config.cpp" /> - <Unit filename="src/Config.h" /> - <Unit filename="src/DMA.cpp" /> - <Unit filename="src/DMA.h" /> - <Unit filename="src/FIFO.h" /> - <Unit filename="src/GBACart.cpp" /> - <Unit filename="src/GBACart.h" /> - <Unit filename="src/GPU.cpp" /> - <Unit filename="src/GPU.h" /> - <Unit filename="src/GPU2D.cpp" /> - <Unit filename="src/GPU2D.h" /> - <Unit filename="src/GPU3D.cpp" /> - <Unit filename="src/GPU3D.h" /> - <Unit filename="src/GPU3D_OpenGL.cpp" /> - <Unit filename="src/GPU3D_OpenGL_shaders.h" /> - <Unit filename="src/GPU3D_Soft.cpp" /> - <Unit filename="src/NDS.cpp" /> - <Unit filename="src/NDS.h" /> - <Unit filename="src/NDSCart.cpp" /> - <Unit filename="src/NDSCart.h" /> - <Unit filename="src/OpenGLSupport.cpp" /> - <Unit filename="src/OpenGLSupport.h" /> - <Unit filename="src/Platform.h" /> - <Unit filename="src/RTC.cpp" /> - <Unit filename="src/RTC.h" /> - <Unit filename="src/SPI.cpp" /> - <Unit filename="src/SPI.h" /> - <Unit filename="src/SPU.cpp" /> - <Unit filename="src/SPU.h" /> - <Unit filename="src/Savestate.cpp" /> - <Unit filename="src/Savestate.h" /> - <Unit filename="src/Wifi.cpp" /> - <Unit filename="src/Wifi.h" /> - <Unit filename="src/WifiAP.cpp" /> - <Unit filename="src/WifiAP.h" /> - <Unit filename="src/libui_sdl/DlgAudioSettings.cpp" /> - <Unit filename="src/libui_sdl/DlgAudioSettings.h" /> - <Unit filename="src/libui_sdl/DlgEmuSettings.cpp" /> - <Unit filename="src/libui_sdl/DlgEmuSettings.h" /> - <Unit filename="src/libui_sdl/DlgInputConfig.cpp" /> - <Unit filename="src/libui_sdl/DlgInputConfig.h" /> - <Unit filename="src/libui_sdl/DlgVideoSettings.cpp" /> - <Unit filename="src/libui_sdl/DlgVideoSettings.h" /> - <Unit filename="src/libui_sdl/DlgWifiSettings.cpp" /> - <Unit filename="src/libui_sdl/DlgWifiSettings.h" /> - <Unit filename="src/libui_sdl/LAN_PCap.cpp" /> - <Unit filename="src/libui_sdl/LAN_PCap.h" /> - <Unit filename="src/libui_sdl/LAN_Socket.cpp" /> - <Unit filename="src/libui_sdl/LAN_Socket.h" /> - <Unit filename="src/libui_sdl/MelonCap.cpp"> - <Option target="DebugFast-Cap Windows" /> - </Unit> - <Unit filename="src/libui_sdl/MelonCap.h"> - <Option target="DebugFast-Cap Windows" /> - </Unit> - <Unit filename="src/libui_sdl/OSD.cpp" /> - <Unit filename="src/libui_sdl/OSD.h" /> - <Unit filename="src/libui_sdl/Platform.cpp" /> - <Unit filename="src/libui_sdl/PlatformConfig.cpp" /> - <Unit filename="src/libui_sdl/PlatformConfig.h" /> - <Unit filename="src/libui_sdl/font.h" /> - <Unit filename="src/libui_sdl/libui/common/areaevents.c"> - <Option compilerVar="CC" /> - </Unit> - <Unit filename="src/libui_sdl/libui/common/control.c"> - <Option compilerVar="CC" /> - </Unit> - <Unit filename="src/libui_sdl/libui/common/controlsigs.h" /> - <Unit filename="src/libui_sdl/libui/common/debug.c"> - <Option compilerVar="CC" /> - </Unit> - <Unit filename="src/libui_sdl/libui/common/matrix.c"> - <Option compilerVar="CC" /> - </Unit> - <Unit filename="src/libui_sdl/libui/common/shouldquit.c"> - <Option compilerVar="CC" /> - </Unit> - <Unit filename="src/libui_sdl/libui/common/uipriv.h" /> - <Unit filename="src/libui_sdl/libui/common/userbugs.c"> - <Option compilerVar="CC" /> - </Unit> - <Unit filename="src/libui_sdl/libui/ui.h" /> - <Unit filename="src/libui_sdl/libui/ui_windows.h" /> - <Unit filename="src/libui_sdl/libui/windows/_uipriv_migrate.hpp" /> - <Unit filename="src/libui_sdl/libui/windows/alloc.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/area.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/area.hpp" /> - <Unit filename="src/libui_sdl/libui/windows/areadraw.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/areaevents.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/areascroll.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/areautil.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/box.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/button.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/checkbox.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/colorbutton.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/colordialog.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/combobox.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/compilerver.hpp" /> - <Unit filename="src/libui_sdl/libui/windows/container.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/control.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/d2dscratch.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/datetimepicker.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/debug.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/draw.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/draw.hpp" /> - <Unit filename="src/libui_sdl/libui/windows/drawmatrix.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/drawpath.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/drawtext.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/dwrite.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/editablecombo.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/entry.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/events.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/fontbutton.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/fontdialog.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/form.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/gl.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/graphemes.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/grid.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/group.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/init.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/label.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/main.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/menu.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/multilineentry.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/parent.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/progressbar.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/radiobuttons.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/resources.hpp" /> - <Unit filename="src/libui_sdl/libui/windows/resources.rc"> - <Option compilerVar="WINDRES" /> - </Unit> - <Unit filename="src/libui_sdl/libui/windows/separator.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/sizing.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/slider.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/spinbox.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/stddialogs.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/tab.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/tabpage.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/text.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/uipriv_windows.hpp" /> - <Unit filename="src/libui_sdl/libui/windows/utf16.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/utilwin.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/winapi.hpp" /> - <Unit filename="src/libui_sdl/libui/windows/window.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/winpublic.cpp" /> - <Unit filename="src/libui_sdl/libui/windows/winutil.cpp" /> - <Unit filename="src/libui_sdl/main.cpp" /> - <Unit filename="src/libui_sdl/main_shaders.h" /> - <Unit filename="src/pcap/bluetooth.h" /> - <Unit filename="src/pcap/bpf.h" /> - <Unit filename="src/pcap/can_socketcan.h" /> - <Unit filename="src/pcap/compiler-tests.h" /> - <Unit filename="src/pcap/dlt.h" /> - <Unit filename="src/pcap/funcattrs.h" /> - <Unit filename="src/pcap/ipnet.h" /> - <Unit filename="src/pcap/namedb.h" /> - <Unit filename="src/pcap/nflog.h" /> - <Unit filename="src/pcap/pcap-inttypes.h" /> - <Unit filename="src/pcap/pcap.h" /> - <Unit filename="src/pcap/sll.h" /> - <Unit filename="src/pcap/usb.h" /> - <Unit filename="src/pcap/vlan.h" /> - <Unit filename="src/types.h" /> - <Unit filename="src/version.h" /> - <Unit filename="xp.manifest" /> - <Extensions> - <code_completion /> - <envvars /> - <debugger /> - </Extensions> - </Project> -</CodeBlocks_project_file> diff --git a/src/libui_sdl/OSD.cpp b/src/libui_sdl/OSD.cpp index a01e39b..02418cc 100644 --- a/src/libui_sdl/OSD.cpp +++ b/src/libui_sdl/OSD.cpp @@ -419,8 +419,8 @@ void Update(bool opengl, uiAreaDrawParams* params) item.DrawBitmapLoaded = true; } - uiRect rc_src = {0, 0, item.Width, item.Height}; - uiRect rc_dst = {kOSDMargin, y, item.Width, item.Height}; + uiRect rc_src = {0, 0, (int) item.Width, (int) item.Height}; + uiRect rc_dst = {kOSDMargin, (int) y, (int) item.Width, (int) item.Height}; uiDrawBitmapDraw(params->Context, item.DrawBitmap, &rc_src, &rc_dst, 0); } diff --git a/src/libui_sdl/libui/unix/CMakeLists.txt b/src/libui_sdl/libui/unix/CMakeLists.txt index c69081e..1f4ab86 100644 --- a/src/libui_sdl/libui/unix/CMakeLists.txt +++ b/src/libui_sdl/libui/unix/CMakeLists.txt @@ -54,27 +54,9 @@ set(_LIBUI_INCLUDEDIRS _LIBUI_INCLUDEDIRS PARENT_SCOPE) set(_LIBUINAME libui PARENT_SCOPE) if(NOT BUILD_SHARED_LIBS) - set(_LIBUINAME libui-temporary PARENT_SCOPE) + # set(_LIBUINAME libui-temporary PARENT_SCOPE) endif() macro(_handle_static) - set_target_properties(${_LIBUINAME} PROPERTIES - ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}") - set(_aname $<TARGET_FILE:${_LIBUINAME}>) - set(_oname libui-combined.o) - add_custom_command( - OUTPUT ${_oname} - DEPENDS ${_LIBUINAME} - COMMAND - ld -r --whole-archive ${_aname} -o ${_oname} - COMMAND - objcopy --localize-hidden ${_oname} - COMMENT "Removing hidden symbols") - add_library(libui STATIC ${_oname}) - # otherwise cmake won't know which linker to use - set_target_properties(libui PROPERTIES - LINKER_LANGUAGE C) - set(_aname) - set(_oname) endmacro() # TODO the other variables don't work? diff --git a/src/libui_sdl/main.cpp b/src/libui_sdl/main.cpp index ede2576..dc741e4 100644 --- a/src/libui_sdl/main.cpp +++ b/src/libui_sdl/main.cpp @@ -20,6 +20,7 @@ #include <time.h> #include <stdio.h> #include <string.h> +#include <string> #ifndef __WIN32__ #include <glib.h> @@ -904,8 +905,6 @@ void UpdateFPSLimit(void* data) int EmuThreadFunc(void* burp) { - NDS::Init(); - MainScreenPos[0] = 0; MainScreenPos[1] = 0; MainScreenPos[2] = 0; @@ -2966,6 +2965,8 @@ int main(int argc, char** argv) Joystick = NULL; OpenJoystick(); + NDS::Init(); + EmuRunning = 2; RunningSomething = false; EmuThread = SDL_CreateThread(EmuThreadFunc, "melonDS magic", NULL); |