From ad4f3f39ba4a1a8704fe834c0568055f50b1aada Mon Sep 17 00:00:00 2001 From: "niko(depressedTWM)" Date: Sat, 18 Jul 2026 13:46:27 -0400 Subject: [PATCH 1/4] meow --- scripts/Data_Settings.rb | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/scripts/Data_Settings.rb b/scripts/Data_Settings.rb index 5e334ef..1e35d45 100644 --- a/scripts/Data_Settings.rb +++ b/scripts/Data_Settings.rb @@ -26,9 +26,7 @@ module Settings :en_purple_messagebox => true, :enforce_april_fools => false, :true_memory_mode => false, - :pre_solstice_update_content => false, :dejavu_mode => false, - :demo => false, :oneshot_mode => false, # Advanced @@ -224,9 +222,12 @@ class Window_Settings :parameter => :true_memory_mode }, { - :type => :bool, - :name => tr('Dejavu mode(Not implemented)'), - :parameter => :dejavu_mode + :type => :switch, + :name => tr("Dejavu mode"), + :switch => 399, + :parameter => :dejavu_mode, + :default => false, + :invert => false, }, { :type => :bool, @@ -240,13 +241,6 @@ class Window_Settings :name => tr('Control LED lighting on gamepads'), :parameter => :gamepad_led }, - #{ - # :type => :slider, - # :name => tr("Gamepad deadzone"), - # :parameter => :gamepad_deadzone, - # :min => 0, - # :max => 10 - #}, { :type => :sep, :name => tr("Walk") }, { :type => :key, From 11aecb086b5654660e0ecfd5023bf847fa86f415 Mon Sep 17 00:00:00 2001 From: "niko(depressedTWM)" Date: Sat, 18 Jul 2026 14:23:06 -0400 Subject: [PATCH 2/4] grg --- scripts/Data_Settings.rb | 16 +--------------- scripts/Scene_Map.rb | 1 - 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/scripts/Data_Settings.rb b/scripts/Data_Settings.rb index 1e35d45..3fc2a96 100644 --- a/scripts/Data_Settings.rb +++ b/scripts/Data_Settings.rb @@ -26,7 +26,6 @@ module Settings :en_purple_messagebox => true, :enforce_april_fools => false, :true_memory_mode => false, - :dejavu_mode => false, :oneshot_mode => false, # Advanced @@ -169,11 +168,6 @@ class Window_Settings :name => tr('Dynamic Light'), :parameter => :light, }, - #{ - # :type => :bool, - # :name => tr('Shadows'), - # :parameter => :light_shadows - #}, ], tr("UI") => [ { @@ -221,17 +215,9 @@ class Window_Settings :name => tr('True Memory Mode(Not implemented)'), :parameter => :true_memory_mode }, - { - :type => :switch, - :name => tr("Dejavu mode"), - :switch => 399, - :parameter => :dejavu_mode, - :default => false, - :invert => false, - }, { :type => :bool, - :name => tr('Freeware Mode(!)'), + :name => tr('Freeware Mode(!, WIP)'), :parameter => :oneshot_mode }, ], diff --git a/scripts/Scene_Map.rb b/scripts/Scene_Map.rb index 71229e1..4f1bc53 100644 --- a/scripts/Scene_Map.rb +++ b/scripts/Scene_Map.rb @@ -60,7 +60,6 @@ class Scene_Map @blackfade.z = 9999 color = GamepadMapColors::COLORS[$game_map.map_id] || GamepadMapColors::SUN Input.set_led(color.red, color.green, color.blue) - RPG::Mod.exec_hooks("hooks/Scene_Map/main", binding) # Transition run Graphics.transition From 9a4646f2bd558a79b7faa72f0c90199444ee2698 Mon Sep 17 00:00:00 2001 From: whitecum1488 Date: Sun, 19 Jul 2026 01:51:24 +0300 Subject: [PATCH 3/4] Porting patchea for DOS, Android, PS Vita, PS2 and other --- CMakeLists.txt | 19 ++++-------- PORTING.md | 6 ++-- src/define.h | 73 ++++++++++++++++++++++++++++++++++++++++++--- src/eventthread.cpp | 18 +++++------ src/main.cpp | 27 ++++++++++++----- 5 files changed, 104 insertions(+), 39 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b5f0cc1..685a66d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,6 @@ include(FindPackageHandleStandardArgs) option(STEAM "Build for Steam" OFF) option(DEBUG "Debug mode" ON) option(NATIVE "Use native instructions(for local use only)" OFF) -option(MODLOADER "Build with modloader" ON) #Configuration set(CMAKE_DISABLE_IN_SOURCE_BUILD TRUE) @@ -158,10 +157,8 @@ elseif(BSD) list(APPEND MAIN_SOURCE src/xdg-user-dir-lookup.c) list(APPEND MAIN_HEADERS src/xdg-user-dir-lookup.h) set(STEAM OFF) - set(MODLOADER OFF) elseif(EMSCRIPTEN) set(STEAM OFF) - set(MODLOADER OFF) set(CMAKE_EXECUTABLE_SUFFIX ".html" CACHE INTERNAL "") elseif(APPLE) add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND cmake -P "${CMAKE_SOURCE_DIR}/patches/mac/CompleteBundle.cmake" VERBATIM) @@ -367,11 +364,9 @@ find_package(Ruby 3.0 REQUIRED COMPONENTS Development) pkg_check_modules(VORBISFILE REQUIRED vorbisfile) find_package_handle_standard_args(pixman-1 DEFAULT_MSG PIXMAN_LIBRARY PIXMAN_INCLUDE_DIR) mark_as_advanced(PIXMAN_INCLUDE_DIR PIXMAN_LIBRARY) -if(MODLOADER) - find_package(OpenSSL CONFIG REQUIRED COMPONENTS Crypto) - pkg_check_modules(SIGC2 REQUIRED sigc++-2.0) - pkg_check_modules(LIBZIP REQUIRED libzip) -endif() +find_package(OpenSSL CONFIG REQUIRED COMPONENTS Crypto) +pkg_check_modules(SIGC2 REQUIRED sigc++-2.0) +pkg_check_modules(LIBZIP REQUIRED libzip) target_compile_definitions(${PROJECT_NAME} PRIVATE ${DEFINES}) target_include_directories(${PROJECT_NAME} PRIVATE src include ${PIXMAN_INCLUDE_DIR} ${SIGC2_INCLUDE_DIRS} @@ -384,12 +379,8 @@ physfs ${PIXMAN_LIBRARY} ${SIGC2_LIBRARIES} ${PLATFORM_LIBRARIES} ${Ruby_LIBRARIES} Boost::boost Boost::chrono ${Boost_LIBRARIES} ${VORBISFILE_LIBRARIES} ZLIB::ZLIB ${PLATFORM_LIBS}) -if(MODLOADER) - target_include_directories(${PROJECT_NAME} PRIVATE ${LIBZIP_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIR}) - target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBZIP_LIBRARIES} OpenSSL::Crypto) -else() - -endif() +target_include_directories(${PROJECT_NAME} PRIVATE ${LIBZIP_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIR}) +target_link_libraries(${PROJECT_NAME} PRIVATE ${LIBZIP_LIBRARIES} OpenSSL::Crypto) if(STEAM) add_subdirectory(steamshim_parent) diff --git a/PORTING.md b/PORTING.md index b7eac1f..fda9b3d 100644 --- a/PORTING.md +++ b/PORTING.md @@ -12,11 +12,11 @@ | Solaris/OpenSolaris | 1% | В работе | | RedoxOS | 0% | Не хватает библеотек | | Android | 4% | В работе | -| PS Vita | 0% | В работе | +| PS Vita | 1% | В работе | | PSP | 1% | В работе | | Emspritein(web) | 11% | Нет хватает библеотек
 \* Нужно написать порт библеотеки libsigc++2
(А лучше 3 и переписать движок)
 \* Проблемы с компиляцией и зависимостями | -| HaikuOS | 0% | В работе | -| DOS | 0.2% | Не в работе | +| HaikuOS | 1% | В работе | +| DOS | 1% | Не в работе | | Ubuntu Touch | 61% | Будет почти готово тогда когда Linux порт будет доведён до ума | | Аврора ОС | 0% | Возможно, но пока не в работе | | ChromeOS/ChromiumOS | 0.4% | Неизвестное | diff --git a/src/define.h b/src/define.h index cc02cd8..f5d01bb 100644 --- a/src/define.h +++ b/src/define.h @@ -1,5 +1,70 @@ -#if defined(__linux__) || defined(__sun) || defined(__APPLE__) || \ - defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \ - defined(__GNU__) || defined(__hurd__) || defined(__DragonFly__) - #define unix_like 1 +#include + +#if defined(SDL_PLATFORM_AIX) || defined(SDL_PLATFORM_BSDI) || defined(SDL_PLATFORM_FREEBSD) || \ + defined(SDL_PLATFORM_HPUX) || defined(SDL_PLATFORM_HURD) || defined(SDL_PLATFORM_IRIX) || \ + defined(SDL_PLATFORM_LINUX) || defined(SDL_PLATFORM_MACOS) || defined(SDL_PLATFORM_NETBSD) || \ + defined(SDL_PLATFORM_OPENBSD) || defined(SDL_PLATFORM_SOLARIS) || defined(SDL_PLATFORM_UNIX) || \ + defined(SDL_PLATFORM_APPLE) || defined(SDL_PLATFORM_OSF) + #define unix_like 1 #endif + +#if defined(SDL_PLATFORM_DOS) + #define dos 1 +#endif + +#if defined(SDL_WINAPI_FAMILY_PHONE) || defined(SDL_PLATFORM_WINDOWS) || defined(SDL_PLATFORM_WIN32) || defined(SDL_PLATFORM_WINGDK) + #define windows 1 +#endif + +#if defined(SDL_PLATFORM_XBOXSERIES) || defined(SDL_PLATFORM_XBOXONE) + #define xbox 1 +#endif + +#if SDL_PLATFORM_3DS + #define 3ds 1 +#endif + +#if SDL_PLATFORM_ANDROID + #define android 1 +#endif + +#if defined(SDL_PLATFORM_APPLE) || defined(SDL_PLATFORM_TVOS) || defined(SDL_PLATFORM_VISIONOS) + #define apple 1 +#endif + +#if SDL_PLATFORM_EMSCRIPTEN + #define web 1 +#endif + +#if SDL_PLATFORM_HAIKU + #define haiku 1 +#endif + +#if SDL_PLATFORM_IOS + #define ios 1 +#endif + +#if defined(SDL_PLATFORM_OS2) + #define os2 1 +#endif + +#if SDL_PLATFORM_PS2 + #define ps2 1 +#endif + +#if SDL_PLATFORM_PSP + #define psp 1 +#endif + +#if SDL_PLATFORM_QNXNTO + #define qnx 1 +#endif + +#if SDL_PLATFORM_VITA + #define vita 1 +#endif + +#if SDL_PLATFORM_RISCOS + #define riscos 1 +#endif + diff --git a/src/eventthread.cpp b/src/eventthread.cpp index c93221c..9b913fb 100644 --- a/src/eventthread.cpp +++ b/src/eventthread.cpp @@ -32,19 +32,16 @@ #include #include #include +#include #include "sharedstate.h" #include "graphics.h" #include "al-util.h" #include "debugwriter.h" - #include "oneshot.h" -#include - #include #include - #include typedef void (ALC_APIENTRY *LPALCDEVICEPAUSESOFT) (ALCdevice *device); @@ -106,9 +103,7 @@ bool EventThread::allocUserEvents(){ } EventThread::EventThread() - : fullscreen(false), - showCursor(true) -{} + : fullscreen(false), showCursor(true){} void EventThread::process(RGSSThreadData &rtData){ SDL_Event event; @@ -128,7 +123,7 @@ void EventThread::process(RGSSThreadData &rtData){ fps.displayCounter = 0; fps.acc = 0; fps.accDiv = 0; - + if (rtData.config.printFPS) fps.sendUpdates.set(); @@ -157,7 +152,7 @@ void EventThread::process(RGSSThreadData &rtData){ jId = ids[i]; } - printf("Gamepad connected: %s", SDL_GetGamepadName(gc)); + Debug() << "Gamepad connected: " << SDL_GetGamepadName(gc); if (i > 0) { SDL_CloseGamepad(gamepd); @@ -269,7 +264,10 @@ void EventThread::process(RGSSThreadData &rtData){ /* Now process the rest */ switch (event.type){ - case SDL_EVENT_QUIT : + case SDL_EVENT_LOW_MEMORY: + rb_gc(); + break; + case SDL_EVENT_QUIT: if (rtData.allowExit) { terminate = true; Debug() << "[EventThread::process] EventThread termination requested"; diff --git a/src/main.cpp b/src/main.cpp index c111aeb..e10e8ab 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -66,6 +66,12 @@ #include "gamecontrollerdb.txt.xxd" #endif +#ifdef ps2 + #ifdef DEBUG + SDL_PS2_SKIP_IOP_RESET(); + #endif +#endif + static void rgssThreadError(RGSSThreadData *rtData, const std::string &msg){ rtData->rgssErrorMsg = msg; rtData->ethread->requestTerminate(); @@ -215,26 +221,31 @@ static void setGamePathInRegistry() { //TODO handle this for Linux/Mac } int main(int argc, char *argv[]){ + #if dos + __djgpp_nearptr_enable(); + #endif + SecurityManagerInit(); startTime = boost::chrono::high_resolution_clock::now(); loadLanguageMetadata(); //there will be a segfault on fclose if I don't move it here SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0"); - SDL_SetHint(SDL_HINT_APP_ID, "OneshotSunshine"); - SDL_SetHint(SDL_HINT_APP_NAME, "Oneshot: Sunshine"); - SDL_SetHint(SDL_HINT_AUDIO_DEVICE_STREAM_NAME, "Oneshot: sunshine"); - SDL_SetHint(SDL_HINT_AUDIO_DEVICE_STREAM_ROLE, "Game"); + SDL_SetAppMetadata("Oneshot: Sunshine", "0.1.1", "com.catwindowteam.sunshine"); //X11 work on *BSD,Solaris too! #if unix_like SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0"); #if SDL_VERSION_ATLEAST(3, 4, 10) SDL_SetHint(SDL_HINT_VIDEO_X11_ENABLE_XSYNC_EXT, "1"); #endif - #elif defined(WIN32) + #elif windows SDL_SetHint(SDL_HINT_WINDOWS_RAW_KEYBOARD, "1"); - #elif __ANDROID__ + #elif android SDL_SetHint(SDL_HINT_ANDROID_ALLOW_PERSISTENT_FOLDER_ACCESS, "1"); - #elif defined(__DJGPP__) || defined(__DOS__) || defined(__MSDOS__) + #elif vita + SDL_SetHint(SDL_HINT_VITA_RESOLUTION, "1080"); + #elif ps2 + SFL_SetHint(SDL_HINT_PS2_GS_MODE, "NTSC"); + #elif dos SDL_SetHint(SDL_HINT_DOS_ALLOW_DIRECT_FRAMEBUFFER, "1"); #endif /* initialize SDL first */ @@ -273,7 +284,7 @@ int main(int argc, char *argv[]){ /* now we load the config */ Config conf; conf.read(argc, argv); - #if defined WIN32 + #if windows if(conf.Windows_AllocConsole == true){ AllocConsole(); freopen("CONOUT$", "w", stdout); From 99880414c67978bdb694f6b30cf78831ba15a06a Mon Sep 17 00:00:00 2001 From: whitecum1488 Date: Sun, 19 Jul 2026 02:00:45 +0300 Subject: [PATCH 4/4] meow --- changelogs/0.1.1.txt | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/changelogs/0.1.1.txt b/changelogs/0.1.1.txt index 8afe015..8ab3e07 100644 --- a/changelogs/0.1.1.txt +++ b/changelogs/0.1.1.txt @@ -1,15 +1,12 @@ -Added 16:9 panorams support -Added Panorams/green/maize_16.png mri-bindings cleanup RAM usage optimizations *BSD and emscriptein specific fixes On windows use of RAW input events by default -Maps changes Added JIT support Reload on F5(in debug) Scene_Map optimization TPtL aray limit set to 300 -New 16:9 arts +Arts in bigger resolution Optimized and extended debugwriter.h Water shader optimized Mouse scrolling support @@ -17,17 +14,15 @@ Small ruby optimizations Boost+Ruby sprintf error fix New settings menu Extended debug mode configuration -Added TracePoimt based profiler +Added TracePoint based profiler Added April fools enforce mode Added way to control WM shader via settings Optimized game loading Fasttravel settings Removed useless hooks -Added way to set Led color on gamepads Switches code optimized Added eval protection for events interpritator and for Characters scripts Added in-game keybindings settings -Added switch 400(defines 4:3 or 16:9 is used) Removed depth limit for common events Fixed bug "Андрей" Fixed film @@ -42,7 +37,7 @@ Fixed audio bug Добавлены отражения от плитки в стартовом доме Игра переведена на другое разрешение экрана и поддержку большего кол-во аспектов мониторов Fixed performance issues -Android support patches +Android support patches(WIP) Some Pancake episode specific changes squares when dialog skipping fixed Mirrors! @@ -53,7 +48,7 @@ crash() function update Start house reworked removed SDL joystick support fixed SECCOMP blocking UDEV sockets -Some Barens changes +Barrens rework(WIP) dev room! MacOS support in SecurityManager Changed default 16:9 window resolution @@ -67,5 +62,15 @@ main viewport resize, main window resize and move signals bindings for ruby Dynamic resolution support (WIP) Rewrited to use SDL3 libc methods instead default Removed useless debug logs -Glen reworked +Glen reworked(WIP) GLLogger \n bug fix +LXDE support added +DOS porting patches(WIP) (lol) +PS2 porting patches(WIP) (lol) +PSVita porting patches(WIP) +other platforms porting patches +Added new location +Extended Office location +Reworked Refuge(WIP) +Updated Game quit common event +Solstice credits updated