From 29ffde99352cb9b8b9d0b758ebebe75a5f722e0f Mon Sep 17 00:00:00 2001 From: DepressedTWM Date: Fri, 7 Aug 2026 00:24:32 +0400 Subject: [PATCH] Some changes idk --- .gitignore | 17 ++------------ CMakeLists.txt | 26 +--------------------- binding-mri/binding-mri.cpp | 2 -- changelogs/0.1.2.txt | 3 +++ src/debugwriter.h | 11 +++++++-- src/glstate.cpp | 3 +-- src/quad.h | 4 +--- toolchain/arch/adapteva_epiphany.cmake | 8 +++++++ toolchain/arch/arc.cmake | 8 +++++++ toolchain/arch/arm64.cmake | 9 ++++++++ toolchain/arch/c-sky.cmake | 10 +++++++++ toolchain/arch/ia-64.cmake | 12 ++++++++++ toolchain/arch/x86.cmake | 8 +++++++ toolchain/linux_to_windows_mingw_w64.cmake | 6 ----- 14 files changed, 72 insertions(+), 55 deletions(-) create mode 100644 toolchain/arch/adapteva_epiphany.cmake create mode 100644 toolchain/arch/arc.cmake create mode 100644 toolchain/arch/arm64.cmake create mode 100644 toolchain/arch/c-sky.cmake create mode 100644 toolchain/arch/ia-64.cmake create mode 100644 toolchain/arch/x86.cmake delete mode 100644 toolchain/linux_to_windows_mingw_w64.cmake diff --git a/.gitignore b/.gitignore index 813934c..a5d5e56 100644 --- a/.gitignore +++ b/.gitignore @@ -6,25 +6,20 @@ *.app *.bmp *.lproj - *.tmp *.vcxproj *.filters *.sln *.user *.tlog - .vs/ bin/ lib/ *.dir/ x64/ - Makefile* - /oneshot /steamshim_parent/steamshim - __pycache__ /build* /dist @@ -32,13 +27,11 @@ __pycache__ /release steamshim_parent/build/ *.out - object_script.* rpgscript.bat rpgscript - mklang.bat *.pot xScripts.rxdata - .qmake.stash CMakeCache.txt CMakeFiles/ @@ -48,16 +41,10 @@ conaninfo\.txt conanbuildinfo\.txt conan_imports_manifest\.txt package/ - oclint/ - steamworks/ build/ - .vscode - -test.sh -test2.sh - /compile_commands.json -/.cache \ No newline at end of file +/.cache +*.lock.json diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b54af0..c426e7a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_CXX_STANDARD 23) if(STATIC) + add_compile_options(-static-libgcc -static-libstdc++) set(ZLIB_USE_STATIC_LIBS ON) set(OPENSSL_USE_STATIC_LIBS ON) endif() @@ -185,8 +186,6 @@ endif() source_group("MKXP Source" FILES ${MAIN_SOURCE} ${MAIN_HEADERS}) -## Setup embedded source ## - set(EMBEDDED_INPUT shader/common.h shader/transSimple.frag @@ -340,29 +339,6 @@ else() if(LINUX) add_compile_options(-fno-plt) endif() - - if(CPU_ARCH MATCHES "x86") - add_compile_options( - -mnoreturn-no-callee-saved-registers - -mrelax-cmpxchg-loop) - elseif(CPU_ARCH MATCHES "arm64") - # TODO: check is it really usefull:3 - add_compile_options( - -mlow-precision-recip-sqrt - -mlow-precision-sqrt - -mlow-precision-div - ) - elseif(CPU_ARCH MATCHES "ia-64") - # In theory it must make game work better on IA-64? - add_compile_options( - -minline-float-divide-min-latency - -minline-float-divide-max-throughput - -minline-int-divide-min-latency - -minline-int-divide-max-throughput - -minline-sqrt-min-latency - -minline-sqrt-max-throughput - ) - endif() endif() if(ANDROID) diff --git a/binding-mri/binding-mri.cpp b/binding-mri/binding-mri.cpp index ad7d12e..49081ba 100644 --- a/binding-mri/binding-mri.cpp +++ b/binding-mri/binding-mri.cpp @@ -532,8 +532,6 @@ static void mriBindingExecute(){ * stdio streams on some platforms (eg. Windows) */ int argc = 0; char **argv = 0; - char options_argv1[] = "oneshot", options_argv2[] = "-ev"; - char* options_argv[] = {options_argv1, options_argv2, NULL}; ruby_sysinit(&argc, &argv); RUBY_INIT_STACK; ruby_init(); diff --git a/changelogs/0.1.2.txt b/changelogs/0.1.2.txt index ff8f494..b115c16 100644 --- a/changelogs/0.1.2.txt +++ b/changelogs/0.1.2.txt @@ -44,3 +44,6 @@ Added CMake option to build engine with OpenGL ES2 instead Desktop GL(why not?) Added setting that disable some puzzles(For Wayland users) PreloadScripts moved to modloader Deleted Battletest and RPGMaker debug code +glstate Alpha calculation fix backported from MKXP +Added VALUE support in debugwriter.h +When STATIC build option is enabled, enable static libc++ and libgcc diff --git a/src/debugwriter.h b/src/debugwriter.h index 351d3d2..85181b1 100644 --- a/src/debugwriter.h +++ b/src/debugwriter.h @@ -25,6 +25,9 @@ #include #include #include +#include +#undef vsnprintf +#undef snprintf #ifdef __ANDROID__ #include @@ -32,8 +35,6 @@ #include #endif -/* A cheap replacement for qDebug() */ - class Debug{ public: Debug(){ @@ -56,6 +57,12 @@ public: return *this; } + template + Debug &operator<<(const VALUE &v){ + buf << rb_inspect(v); + return *this; + } + ~Debug(){ #ifdef __ANDROID__ __android_log_write(ANDROID_LOG_DEBUG, "sunshine", buf.str().c_str()); diff --git a/src/glstate.cpp b/src/glstate.cpp index a206b08..59f3be4 100644 --- a/src/glstate.cpp +++ b/src/glstate.cpp @@ -77,10 +77,9 @@ void GLBlendMode::apply(const BlendType &value){ break; case BlendSubstraction : - // FIXME Alpha calculation is untested gl.BlendEquation(GL_FUNC_REVERSE_SUBTRACT); gl.BlendFuncSeparate(GL_SRC_ALPHA, GL_ONE, - GL_ONE, GL_ONE); + GL_ZERO, GL_ONE); break; case BlendMultiply : diff --git a/src/quad.h b/src/quad.h index 79208ba..df78a03 100644 --- a/src/quad.h +++ b/src/quad.h @@ -67,9 +67,7 @@ struct Quad{ vert[i].color = c; } - Quad() - : vbo(VBO::gen()), - vboDirty(true){ + Quad() : vbo(VBO::gen()), vboDirty(true){ GLMeta::vaoFillInVertexData(vao); vao.vbo = vbo; vao.ibo = shState->globalIBO().ibo; diff --git a/toolchain/arch/adapteva_epiphany.cmake b/toolchain/arch/adapteva_epiphany.cmake new file mode 100644 index 0000000..1f95a7f --- /dev/null +++ b/toolchain/arch/adapteva_epiphany.cmake @@ -0,0 +1,8 @@ +set(CUSTOM_FLAGS + -mprefer-short-insn-regs + -mcmove +) + +string(JOIN " " CUSTOM_FLAGS_STR ${CUSTOM_FLAGS}) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_FLAGS_STR}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CUSTOM_FLAGS_STR}") diff --git a/toolchain/arch/arc.cmake b/toolchain/arch/arc.cmake new file mode 100644 index 0000000..0764d9a --- /dev/null +++ b/toolchain/arch/arc.cmake @@ -0,0 +1,8 @@ +set(CUSTOM_FLAGS + -mcase-vector-pcrel + -mcompact-casesi +) + +string(JOIN " " CUSTOM_FLAGS_STR ${CUSTOM_FLAGS}) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_FLAGS_STR}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CUSTOM_FLAGS_STR}") diff --git a/toolchain/arch/arm64.cmake b/toolchain/arch/arm64.cmake new file mode 100644 index 0000000..4f3a544 --- /dev/null +++ b/toolchain/arch/arm64.cmake @@ -0,0 +1,9 @@ +set(CUSTOM_FLAGS + -mlow-precision-recip-sqrt + -mlow-precision-sqrt + -mlow-precision-div +) + +string(JOIN " " CUSTOM_FLAGS_STR ${CUSTOM_FLAGS}) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_FLAGS_STR}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CUSTOM_FLAGS_STR}") diff --git a/toolchain/arch/c-sky.cmake b/toolchain/arch/c-sky.cmake new file mode 100644 index 0000000..a71b225 --- /dev/null +++ b/toolchain/arch/c-sky.cmake @@ -0,0 +1,10 @@ +set(CUSTOM_FLAGS + -mdsp + -medsp + -mvdsp + -msmart +) + +string(JOIN " " CUSTOM_FLAGS_STR ${CUSTOM_FLAGS}) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_FLAGS_STR}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CUSTOM_FLAGS_STR}") diff --git a/toolchain/arch/ia-64.cmake b/toolchain/arch/ia-64.cmake new file mode 100644 index 0000000..db2b492 --- /dev/null +++ b/toolchain/arch/ia-64.cmake @@ -0,0 +1,12 @@ +set(CUSTOM_FLAGS + -minline-float-divide-min-latency + -minline-float-divide-max-throughput + -minline-int-divide-min-latency + -minline-int-divide-max-throughput + -minline-sqrt-min-latency + -minline-sqrt-max-throughput +) + +string(JOIN " " CUSTOM_FLAGS_STR ${CUSTOM_FLAGS}) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_FLAGS_STR}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CUSTOM_FLAGS_STR}") diff --git a/toolchain/arch/x86.cmake b/toolchain/arch/x86.cmake new file mode 100644 index 0000000..91dcb13 --- /dev/null +++ b/toolchain/arch/x86.cmake @@ -0,0 +1,8 @@ +set(CUSTOM_FLAGS + -mnoreturn-no-callee-saved-registers + -mrelax-cmpxchg-loop +) + +string(JOIN " " CUSTOM_FLAGS_STR ${CUSTOM_FLAGS}) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_FLAGS_STR}") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CUSTOM_FLAGS_STR}") diff --git a/toolchain/linux_to_windows_mingw_w64.cmake b/toolchain/linux_to_windows_mingw_w64.cmake deleted file mode 100644 index 7096b5d..0000000 --- a/toolchain/linux_to_windows_mingw_w64.cmake +++ /dev/null @@ -1,6 +0,0 @@ -cmake_minimum_required(VERSION 3.16) -set(CMAKE_SYSTEM_NAME Windows) -set(CMAKE_SYSTEM_PROCESSOR x86_64) -set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc) -set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++) -set(CMAKE_SYSROOT /usr/x86_64-w64-mingw32)