mirror of
https://github.com/isledecomp/isle-portable.git
synced 2026-01-11 18:41:14 +00:00
Remove SDL fixups and use an SDL3 port with fixes.
Fixes crash bug and world issues!
This commit is contained in:
parent
a5027afcc2
commit
6b0c5b51e6
@ -21,6 +21,7 @@ endif()
|
|||||||
if (NINTENDO_SWITCH)
|
if (NINTENDO_SWITCH)
|
||||||
set(CMAKE_TOOLCHAIN_FILE "${DEVKITPRO}/cmake/Switch.cmake" CACHE PATH "toolchain file")
|
set(CMAKE_TOOLCHAIN_FILE "${DEVKITPRO}/cmake/Switch.cmake" CACHE PATH "toolchain file")
|
||||||
add_compile_definitions(__SWITCH__)
|
add_compile_definitions(__SWITCH__)
|
||||||
|
add_compile_definitions(SDL_PLATFORM_SWITCH)
|
||||||
add_compile_definitions(SDL_VIDEO_DRIVER_SWITCH)
|
add_compile_definitions(SDL_VIDEO_DRIVER_SWITCH)
|
||||||
add_compile_definitions(IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS)
|
add_compile_definitions(IMGUI_DISABLE_DEFAULT_SHELL_FUNCTIONS)
|
||||||
endif()
|
endif()
|
||||||
@ -98,7 +99,8 @@ if (DOWNLOAD_DEPENDENCIES)
|
|||||||
# Official repo missing Threads support?
|
# Official repo missing Threads support?
|
||||||
#GIT_REPOSITORY "https://github.com/devkitPro/SDL.git"
|
#GIT_REPOSITORY "https://github.com/devkitPro/SDL.git"
|
||||||
#GIT_TAG "switch-sdl-3.2"
|
#GIT_TAG "switch-sdl-3.2"
|
||||||
GIT_REPOSITORY "https://github.com/vs49688/SDL.git"
|
#GIT_REPOSITORY "https://github.com/vs49688/SDL.git"
|
||||||
|
GIT_REPOSITORY "https://github.com/SnepOMatic/SDL3-Switch.git"
|
||||||
GIT_TAG "switch-sdl-3.2.14"
|
GIT_TAG "switch-sdl-3.2.14"
|
||||||
EXCLUDE_FROM_ALL
|
EXCLUDE_FROM_ALL
|
||||||
)
|
)
|
||||||
@ -606,7 +608,6 @@ if (ISLE_BUILD_APP)
|
|||||||
endif()
|
endif()
|
||||||
if(NINTENDO_SWITCH)
|
if(NINTENDO_SWITCH)
|
||||||
target_sources(isle PRIVATE
|
target_sources(isle PRIVATE
|
||||||
ISLE/switch/filesys.cpp
|
|
||||||
ISLE/switch/config.cpp
|
ISLE/switch/config.cpp
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -67,8 +67,6 @@
|
|||||||
|
|
||||||
#ifdef __SWITCH__
|
#ifdef __SWITCH__
|
||||||
#include "switch/config.h"
|
#include "switch/config.h"
|
||||||
#include "switch/filesys.h"
|
|
||||||
|
|
||||||
#include <switch.h>
|
#include <switch.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@ -8,4 +8,5 @@ void NX_SetupDefaultConfigOverrides(dictionary* p_dictionary)
|
|||||||
iniparser_set(p_dictionary, "isle:diskpath", "sdmc:/switch/isle/LEGO/");
|
iniparser_set(p_dictionary, "isle:diskpath", "sdmc:/switch/isle/LEGO/");
|
||||||
iniparser_set(p_dictionary, "isle:cdpath", "sdmc:/switch/isle/");
|
iniparser_set(p_dictionary, "isle:cdpath", "sdmc:/switch/isle/");
|
||||||
iniparser_set(p_dictionary, "isle:savepath", "sdmc:/switch/isle/");
|
iniparser_set(p_dictionary, "isle:savepath", "sdmc:/switch/isle/");
|
||||||
|
iniparser_set(p_dictionary, "isle:Cursor Sensitivity", "16.000000");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,46 +0,0 @@
|
|||||||
#include "filesys.h"
|
|
||||||
|
|
||||||
#include <SDL3/SDL.h>
|
|
||||||
#include <cerrno>
|
|
||||||
#include <cstdio>
|
|
||||||
#include <dirent.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
|
|
||||||
// Missing from Switch SDL3 implementation
|
|
||||||
#ifndef S_ISREG
|
|
||||||
#define S_ISREG(m) (((m) & _S_IFMT) == _S_IFREG)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Uses core of SDL's SDL_GetPathInfo but handles null 'info'.
|
|
||||||
bool NX_GetPathInfo(const char* path, SDL_PathInfo* info)
|
|
||||||
{
|
|
||||||
SDL_PathInfo tmp_info;
|
|
||||||
struct stat statbuf;
|
|
||||||
const int rc = stat(path, &statbuf);
|
|
||||||
|
|
||||||
if (rc < 0) {
|
|
||||||
return SDL_SetError("Can't stat: %s", strerror(errno));
|
|
||||||
}
|
|
||||||
else if (S_ISREG(statbuf.st_mode)) {
|
|
||||||
tmp_info.type = SDL_PATHTYPE_FILE;
|
|
||||||
tmp_info.size = (Uint64) statbuf.st_size;
|
|
||||||
}
|
|
||||||
else if (S_ISDIR(statbuf.st_mode)) {
|
|
||||||
tmp_info.type = SDL_PATHTYPE_DIRECTORY;
|
|
||||||
tmp_info.size = 0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
tmp_info.type = SDL_PATHTYPE_OTHER;
|
|
||||||
tmp_info.size = (Uint64) statbuf.st_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
tmp_info.create_time = (SDL_Time) SDL_SECONDS_TO_NS(statbuf.st_ctime);
|
|
||||||
tmp_info.modify_time = (SDL_Time) SDL_SECONDS_TO_NS(statbuf.st_mtime);
|
|
||||||
tmp_info.access_time = (SDL_Time) SDL_SECONDS_TO_NS(statbuf.st_atime);
|
|
||||||
|
|
||||||
if (info) {
|
|
||||||
*info = tmp_info;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
#ifndef NX_FILESYS_H
|
|
||||||
#define NX_FILESYS_H
|
|
||||||
|
|
||||||
#include <SDL3/SDL_filesystem.h>
|
|
||||||
|
|
||||||
#define SDL_GetPathInfo NX_GetPathInfo // Override broken SDL_GetPathInfo
|
|
||||||
bool NX_GetPathInfo(const char* path, SDL_PathInfo* info);
|
|
||||||
|
|
||||||
#endif // NX_FILESYS_H
|
|
||||||
Loading…
Reference in New Issue
Block a user