From 03ad3b5c301d5410bdf28594246d001b8e86d5ba Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 29 Sep 2018 17:51:37 +0200 Subject: [PATCH 1/7] [LIBNX] Remove task_autodetect workaround --- tasks/task_autodetect.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tasks/task_autodetect.c b/tasks/task_autodetect.c index 5da349b32b..4f8ac88943 100644 --- a/tasks/task_autodetect.c +++ b/tasks/task_autodetect.c @@ -843,12 +843,8 @@ static void input_autoconfigure_connect_handler(retro_task_t *task) if (!params || string_is_empty(params->name)) goto end; -#ifndef HAVE_LIBNX // This seems to be problematic on switch with threading if ( !input_autoconfigure_joypad_from_conf_dir(params, task) && !input_autoconfigure_joypad_from_conf_internal(params, task)) -#else - if ( !input_autoconfigure_joypad_from_conf_internal(params, task)) -#endif { char msg[255]; From 0a70d92da5861cd5807c6b309f441ebb2d305b0b Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 29 Sep 2018 17:52:17 +0200 Subject: [PATCH 2/7] [LIBNX] Add HAVE_UPDATE_ASSETS and cleanup --- Makefile.libnx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.libnx b/Makefile.libnx index 547f8d3060..739abd4788 100644 --- a/Makefile.libnx +++ b/Makefile.libnx @@ -110,9 +110,9 @@ NO_ICON := 1 ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -mcpu=cortex-a57+crc+fp+simd CFLAGS := -g -Wall -O3 -ffast-math -ffunction-sections \ - $(ARCH) $(DEFINES) -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include -I$(PORTLIBS)/include/ -include $(LIBNX)/include/switch.h $(shell $(DEVKITPRO)/portlibs/switch/bin/freetype-config --cflags) + $(ARCH) $(DEFINES) -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include -I$(PORTLIBS)/include/ -include $(LIBNX)/include/switch.h $(shell $(PORTLIBS)/bin/freetype-config --cflags) -CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1 -DHAVE_SHADERPIPELINE -DHAVE_FREETYPE +CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1 -DHAVE_SHADERPIPELINE -DHAVE_UPDATE_ASSETS -DHAVE_FREETYPE # The following line works around an issue in newlib that produces a compilation # error in glm. It will be removed as soon as this issue is resolved. From af21a6ad368c87a467baedb01747d34704fbc37a Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 29 Sep 2018 17:52:35 +0200 Subject: [PATCH 3/7] [LIBNX] Prefered default for Analog DPAD Mode --- configuration.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/configuration.c b/configuration.c index fae1a05383..d8c8018b8d 100644 --- a/configuration.c +++ b/configuration.c @@ -1879,7 +1879,11 @@ static void config_set_defaults(void) for (i = 0; i < MAX_USERS; i++) { settings->uints.input_joypad_map[i] = i; +#ifdef SWITCH // Switch prefered default dpad mode + settings->uints.input_analog_dpad_mode[i] = ANALOG_DPAD_LSTICK; +#else settings->uints.input_analog_dpad_mode[i] = ANALOG_DPAD_NONE; +#endif input_config_set_device(i, RETRO_DEVICE_JOYPAD); settings->uints.input_mouse_index[i] = 0; } From 7a841eae2423646eb7448cd20cd25b9acbe7082e Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 29 Sep 2018 17:53:29 +0200 Subject: [PATCH 4/7] [SWITCH] Change platform dir layout to match unix, fixes autodetect --- frontend/drivers/platform_switch.c | 65 ++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/frontend/drivers/platform_switch.c b/frontend/drivers/platform_switch.c index 9157f71366..171d05d8ac 100644 --- a/frontend/drivers/platform_switch.c +++ b/frontend/drivers/platform_switch.c @@ -35,6 +35,7 @@ #include "../../retroarch.h" #include "../../file_path_special.h" #include "../../audio/audio_driver.h" +#include #ifndef IS_SALAMANDER #ifdef HAVE_MENU @@ -105,18 +106,18 @@ static void frontend_switch_get_environment_settings(int *argc, char *argv[], vo fill_pathname_basedir(g_defaults.dirs[DEFAULT_DIR_PORT], SD_PREFIX "/retroarch/retroarch_switch.nro", sizeof(g_defaults.dirs[DEFAULT_DIR_PORT])); RARCH_LOG("port dir: [%s]\n", g_defaults.dirs[DEFAULT_DIR_PORT]); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], g_defaults.dirs[DEFAULT_DIR_PORT], - "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS])); - - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], g_defaults.dirs[DEFAULT_DIR_PORT], - "media", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE], g_defaults.dirs[DEFAULT_DIR_PORT], "cores", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], g_defaults.dirs[DEFAULT_DIR_CORE], + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_INFO], g_defaults.dirs[DEFAULT_DIR_PORT], "info", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_INFO])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG], g_defaults.dirs[DEFAULT_DIR_PORT], + "autoconfig", sizeof(g_defaults.dirs[DEFAULT_DIR_AUTOCONFIG])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_ASSETS], g_defaults.dirs[DEFAULT_DIR_PORT], + "assets", sizeof(g_defaults.dirs[DEFAULT_DIR_ASSETS])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SAVESTATE], g_defaults.dirs[DEFAULT_DIR_CORE], "savestates", sizeof(g_defaults.dirs[DEFAULT_DIR_SAVESTATE])); @@ -126,24 +127,56 @@ static void frontend_switch_get_environment_settings(int *argc, char *argv[], vo fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SYSTEM], g_defaults.dirs[DEFAULT_DIR_CORE], "system", sizeof(g_defaults.dirs[DEFAULT_DIR_SYSTEM])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_PLAYLIST], g_defaults.dirs[DEFAULT_DIR_CORE], - "playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_PLAYLIST])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], g_defaults.dirs[DEFAULT_DIR_PORT], "config", sizeof(g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_REMAP], g_defaults.dirs[DEFAULT_DIR_PORT], - "config/remaps", sizeof(g_defaults.dirs[DEFAULT_DIR_REMAP])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_REMAP], g_defaults.dirs[DEFAULT_DIR_MENU_CONFIG], + "remaps", sizeof(g_defaults.dirs[DEFAULT_DIR_REMAP])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], g_defaults.dirs[DEFAULT_DIR_PORT], - "filters", sizeof(g_defaults.dirs[DEFAULT_DIR_REMAP])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_PLAYLIST], g_defaults.dirs[DEFAULT_DIR_PORT], + "playlists", sizeof(g_defaults.dirs[DEFAULT_DIR_PLAYLIST])); - fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], g_defaults.dirs[DEFAULT_DIR_PORT], - "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG], g_defaults.dirs[DEFAULT_DIR_PORT], + "records_config", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_CONFIG])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT], g_defaults.dirs[DEFAULT_DIR_PORT], + "records", sizeof(g_defaults.dirs[DEFAULT_DIR_RECORD_OUTPUT])); fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CURSOR], g_defaults.dirs[DEFAULT_DIR_PORT], "database/cursors", sizeof(g_defaults.dirs[DEFAULT_DIR_CURSOR])); + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_DATABASE], g_defaults.dirs[DEFAULT_DIR_PORT], + "database/rdb", sizeof(g_defaults.dirs[DEFAULT_DIR_DATABASE])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_VIDEO_FILTER], g_defaults.dirs[DEFAULT_DIR_PORT], + "filters", sizeof(g_defaults.dirs[DEFAULT_DIR_REMAP])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SHADER], g_defaults.dirs[DEFAULT_DIR_PORT], + "shaders", sizeof(g_defaults.dirs[DEFAULT_DIR_SHADER])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CHEATS], g_defaults.dirs[DEFAULT_DIR_PORT], + "cheats", sizeof(g_defaults.dirs[DEFAULT_DIR_CHEATS])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_OVERLAY], g_defaults.dirs[DEFAULT_DIR_PORT], + "overlay", sizeof(g_defaults.dirs[DEFAULT_DIR_OVERLAY])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS], g_defaults.dirs[DEFAULT_DIR_PORT], + "downloads", sizeof(g_defaults.dirs[DEFAULT_DIR_CORE_ASSETS])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], g_defaults.dirs[DEFAULT_DIR_PORT], + "screenshots", sizeof(g_defaults.dirs[DEFAULT_DIR_SCREENSHOT])); + + fill_pathname_join(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS], g_defaults.dirs[DEFAULT_DIR_PORT], + "thumbnails", sizeof(g_defaults.dirs[DEFAULT_DIR_THUMBNAILS])); + + int i = 0; + for (i; i < DEFAULT_DIR_LAST; i++) + { + const char *dir_path = g_defaults.dirs[i]; + if (!string_is_empty(dir_path)) + path_mkdir(dir_path); + } + fill_pathname_join(g_defaults.path.config, g_defaults.dirs[DEFAULT_DIR_PORT], file_path_str(FILE_PATH_MAIN_CONFIG), sizeof(g_defaults.path.config)); } From 6b24ca4632ebf79674719572cf9667d1df0b3f27 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 29 Sep 2018 19:25:45 +0200 Subject: [PATCH 5/7] [LIBNX] Add Static Dummy --- Makefile.libnx | 22 ++++++++++++++++------ cores/dynamic_dummy.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/Makefile.libnx b/Makefile.libnx index 739abd4788..e6b53a9c45 100644 --- a/Makefile.libnx +++ b/Makefile.libnx @@ -100,19 +100,24 @@ EXEFS_SRC := exefs_src #ROMFS := switch/romfs APP_TITLE := RetroArch -APP_VERSION := 1.0.0 +APP_VERSION := 1.7.5 APP_AUTHOR := libretro Team -NO_ICON := 1 +APP_ICON := pkg/libnx/retroarch.jpg #--------------------------------------------------------------------------------- # options for code generation #--------------------------------------------------------------------------------- ARCH := -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -mcpu=cortex-a57+crc+fp+simd -CFLAGS := -g -Wall -O3 -ffast-math -ffunction-sections \ - $(ARCH) $(DEFINES) -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include -I$(PORTLIBS)/include/ -include $(LIBNX)/include/switch.h $(shell $(PORTLIBS)/bin/freetype-config --cflags) +CFLAGS := -g -Wall -O3 -ffast-math -ffunction-sections \ + $(ARCH) $(DEFINES) -Ideps -Ideps/libz -Ilibretro-common/include -Ideps/stb -I$(LIBNX)/include -I$(PORTLIBS)/include/ -include $(LIBNX)/include/switch.h $(shell $(PORTLIBS)/bin/freetype-config --cflags) -CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1 -DHAVE_SHADERPIPELINE -DHAVE_UPDATE_ASSETS -DHAVE_FREETYPE +CFLAGS += $(INCLUDE) -DSWITCH=1 -DHAVE_LIBNX=1 -DNXLINK=1 -DHAVE_SHADERPIPELINE -DHAVE_UPDATE_ASSETS -DHAVE_FREETYPE + +ifeq ($(strip $(HAVE_STATIC_DUMMY)),1) + HAVE_STATIC_DUMMY = 1 + CFLAGS += -DHAVE_STATIC_DUMMY=1 +endif # The following line works around an issue in newlib that produces a compilation # error in glm. It will be removed as soon as this issue is resolved. @@ -169,7 +174,12 @@ else endif #--------------------------------------------------------------------------------- -export OFILES := $(OBJ) libretro_libnx.a +export OFILES := $(OBJ) + +ifeq ($(strip $(HAVE_STATIC_DUMMY)),) + OFILES += libretro_libnx.a +endif + export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES))) export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ diff --git a/cores/dynamic_dummy.c b/cores/dynamic_dummy.c index ad61faff97..21b8014a85 100644 --- a/cores/dynamic_dummy.c +++ b/cores/dynamic_dummy.c @@ -25,6 +25,34 @@ static uint16_t *dummy_frame_buf; +#if defined(HAVE_LIBNX) && defined(HAVE_STATIC_DUMMY) +void retro_init(void) { libretro_dummy_retro_init(); } +void retro_deinit(void) { libretro_dummy_retro_deinit(); } +unsigned retro_api_version(void) { return libretro_dummy_retro_api_version(); } +void retro_set_controller_port_device(unsigned port, unsigned device) { libretro_dummy_retro_set_controller_port_device(port, device); } +void retro_get_system_info(struct retro_system_info *info) { libretro_dummy_retro_get_system_info(info); } +void retro_get_system_av_info(struct retro_system_av_info *info) { retro_get_system_av_info(info); } +void retro_set_environment(retro_environment_t cb) { libretro_dummy_retro_set_environment(cb); } +void retro_set_audio_sample(retro_audio_sample_t cb) { libretro_dummy_retro_set_audio_sample(cb); } +void retro_set_audio_sample_batch(retro_audio_sample_batch_t cb) { libretro_dummy_retro_set_audio_sample_batch(cb); } +void retro_set_input_poll(retro_input_poll_t cb) { libretro_dummy_retro_set_input_poll(cb); } +void retro_set_input_state(retro_input_state_t cb) { libretro_dummy_retro_set_input_state(cb); } +void retro_set_video_refresh(retro_video_refresh_t cb) { libretro_dummy_retro_set_video_refresh(cb); } +void retro_reset(void) { libretro_dummy_retro_reset(); } +void retro_run(void) { libretro_dummy_retro_run(); } +bool retro_load_game(const struct retro_game_info *info) { return libretro_dummy_retro_load_game(info); } +void retro_unload_game(void) { libretro_dummy_retro_unload_game(); } +unsigned retro_get_region(void) { return libretro_dummy_retro_get_region(); } +bool retro_load_game_special(unsigned type, const struct retro_game_info *info, size_t num) { return libretro_dummy_retro_load_game_special(type, info, num); } +size_t retro_serialize_size(void) { return libretro_dummy_retro_serialize_size(); } +bool retro_serialize(void *data, size_t size) { return libretro_dummy_retro_serialize(data, size); } +bool retro_unserialize(const void *data, size_t size) { return libretro_dummy_retro_unserialize(data, size); } +void *retro_get_memory_data(unsigned id) { return libretro_dummy_retro_get_memory_data(id); } +size_t retro_get_memory_size(unsigned id) { return libretro_dummy_retro_get_memory_size(id); } +void retro_cheat_reset(void) { libretro_dummy_retro_cheat_reset(); } +void retro_cheat_set(unsigned idx, bool enabled, const char *code) { libretro_dummy_retro_cheat_set(idx, enabled, code); } +#endif + void libretro_dummy_retro_init(void) { unsigned i; From da5bf9659e12869b07d35f88d768500723844e88 Mon Sep 17 00:00:00 2001 From: M4xw Date: Sat, 29 Sep 2018 19:25:59 +0200 Subject: [PATCH 6/7] [LIBNX] dist-cores cleanup, add hbmenu icon --- dist-scripts/dist-cores.sh | 3 +-- pkg/libnx/retroarch.jpg | Bin 0 -> 14797 bytes 2 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 pkg/libnx/retroarch.jpg diff --git a/dist-scripts/dist-cores.sh b/dist-scripts/dist-cores.sh index 81766ae007..6911781411 100755 --- a/dist-scripts/dist-cores.sh +++ b/dist-scripts/dist-cores.sh @@ -40,7 +40,6 @@ mkdir -p ../pkg/vita/vpk elif [ $PLATFORM = "libnx" ] ; then platform=libnx EXT=a -mkdir -p ../pkg/${platform}/build/romfs # CTR/3DS elif [ $PLATFORM = "ctr" ] ; then @@ -265,7 +264,7 @@ for f in `ls -v *_${platform}.${EXT}`; do mv -f ../retroarch_3ds.3ds ../pkg/${platform}/build/rom/${name}_libretro.3ds elif [ $PLATFORM = "libnx" ] ; then mkdir -p ../pkg/${platform}/retroarch/cores/ - mv -f ../retroarch_switch.nro ../pkg/${platform}/retroarch/cores/${name}_libretro.nro + mv -f ../retroarch_switch.nro ../pkg/${platform}/retroarch/cores/${name}_libretro_${platform}.nro elif [ $PLATFORM = "unix" ] ; then mv -f ../retroarch ../pkg/${platform}/${name}_libretro.elf elif [ $PLATFORM = "ngc" ] ; then diff --git a/pkg/libnx/retroarch.jpg b/pkg/libnx/retroarch.jpg new file mode 100644 index 0000000000000000000000000000000000000000..502ad4266ff7d286791499a63ef8fdadc2d3c3eb GIT binary patch literal 14797 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 nq=D?`e-5*-Ii9iHId37cas6=dIw4)_|Nh Date: Sat, 29 Sep 2018 19:46:46 +0200 Subject: [PATCH 7/7] [LIBNX] Update hb icon --- pkg/libnx/retroarch.jpg | Bin 14797 -> 17774 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pkg/libnx/retroarch.jpg b/pkg/libnx/retroarch.jpg index 502ad4266ff7d286791499a63ef8fdadc2d3c3eb..30b51136e8df2d6c46a90aab63cbdbacec13465a 100644 GIT binary patch literal 17774 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 nq=D?`e-5*-Ii9iHId37cas6=dIw4)_|Nh