aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt18
-rw-r--r--README.md6
-rw-r--r--melonDS.cbp292
-rw-r--r--src/libui_sdl/OSD.cpp4
-rw-r--r--src/libui_sdl/libui/unix/CMakeLists.txt20
-rw-r--r--src/libui_sdl/main.cpp5
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>")
diff --git a/README.md b/README.md
index a34b7ea..1a01bc3 100644
--- a/README.md
+++ b/README.md
@@ -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);