Libretro: Add support for libnx (#755)

This commit is contained in:
slash0042 2020-01-27 21:58:14 -06:00 committed by SourMesen
parent 551b2800cf
commit 5bb0f5c811
4 changed files with 16 additions and 6 deletions

View file

@ -1,13 +1,14 @@
#include "stdafx.h" #include "stdafx.h"
#include "DefaultVideoFilter.h" #include "DefaultVideoFilter.h"
#include "EmulationSettings.h" #include "EmulationSettings.h"
#define _USE_MATH_DEFINES
#include <math.h> #include <math.h>
#define M_PI 3.14159265358979323846264f
#include <algorithm> #include <algorithm>
#include "PPU.h" #include "PPU.h"
#include "DebugHud.h" #include "DebugHud.h"
#include "Console.h" #include "Console.h"
DefaultVideoFilter::DefaultVideoFilter(shared_ptr<Console> console) : BaseVideoFilter(console) DefaultVideoFilter::DefaultVideoFilter(shared_ptr<Console> console) : BaseVideoFilter(console)
{ {
InitConversionMatrix(_pictureSettings.Hue, _pictureSettings.Saturation); InitConversionMatrix(_pictureSettings.Hue, _pictureSettings.Saturation);
@ -126,4 +127,4 @@ uint32_t DefaultVideoFilter::ApplyScanlineEffect(uint16_t ppuPixel, uint8_t scan
uint8_t b = (pixelOutput & 0xFF) * scanlineIntensity / 255; uint8_t b = (pixelOutput & 0xFF) * scanlineIntensity / 255;
return 0xFF000000 | (r << 16) | (g << 8) | b; return 0xFF000000 | (r << 16) | (g << 8) | b;
} }

View file

@ -163,6 +163,15 @@ else ifeq ($(platform), vita)
AR = arm-vita-eabi-ar AR = arm-vita-eabi-ar
CXXFLAGS += -Wl,-q -Wall -O3 CXXFLAGS += -Wl,-q -Wall -O3
STATIC_LINKING = 1 STATIC_LINKING = 1
# Nintendo Switch (libnx)
else ifeq ($(platform), libnx)
include $(DEVKITPRO)/libnx/switch_rules
TARGET := $(TARGET_NAME)_libretro_$(platform).a
DEFINES := -DSWITCH=1 -D__SWITCH__ -D_LARGEFILE_SOURCE -DHAVE_LIBNX -D__aarch64__
CFLAGS := $(DEFINES) -fPIE -I$(LIBNX)/include/ -ffunction-sections -fdata-sections -ftls-model=local-exec
CFLAGS += -march=armv8-a -mtune=cortex-a57 -mtp=soft -mcpu=cortex-a57+crc+fp+simd -ffast-math
CXXFLAGS := $(ASFLAGS) $(CFLAGS)
STATIC_LINKING = 1
# Windows MSVC 2017 all architectures # Windows MSVC 2017 all architectures
else ifneq (,$(findstring windows_msvc2017,$(platform))) else ifneq (,$(findstring windows_msvc2017,$(platform)))

View file

@ -16,12 +16,12 @@ extern const uint32_t Crc32Lookup[MaxSlice][256];
#endif #endif
// define endianess and some integer data types // define endianess and some integer data types
#if defined(_MSC_VER) || defined(__MINGW32__) #if defined(_MSC_VER) || defined(__MINGW32__) || defined(__aarch64__)
// Windows always little endian // Windows always little endian
#define __BYTE_ORDER __LITTLE_ENDIAN #define __BYTE_ORDER __LITTLE_ENDIAN
#else #else
// defines __BYTE_ORDER as __LITTLE_ENDIAN or __BIG_ENDIAN // defines __BYTE_ORDER as __LITTLE_ENDIAN or __BIG_ENDIAN
#ifdef __APPLE__ #if defined(__APPLE__) || defined(HAVE_LIBNX)
#include <machine/endian.h> #include <machine/endian.h>
#else #else
#include <endian.h> #include <endian.h>
@ -685,4 +685,4 @@ const uint32_t Crc32Lookup[MaxSlice][256] =
0x839B5EED,0x2DF3CF7C,0x043B7B8E,0xAA53EA1F,0x57AA126A,0xF9C283FB,0xD00A3709,0x7E62A698, 0x839B5EED,0x2DF3CF7C,0x043B7B8E,0xAA53EA1F,0x57AA126A,0xF9C283FB,0xD00A3709,0x7E62A698,
0xF088C1A2,0x5EE05033,0x7728E4C1,0xD9407550,0x24B98D25,0x8AD11CB4,0xA319A846,0x0D7139D7, 0xF088C1A2,0x5EE05033,0x7728E4C1,0xD9407550,0x24B98D25,0x8AD11CB4,0xA319A846,0x0D7139D7,
} }
}; };

View file

@ -224,7 +224,7 @@
#if defined(_MSC_VER) || defined(__MINGW32__) #if defined(_MSC_VER) || defined(__MINGW32__)
#include <malloc.h> #include <malloc.h>
#endif #endif
#if defined(__linux__) || defined(__linux) || defined(__EMSCRIPTEN__) #if defined(__linux__) || defined(__linux) || defined(__EMSCRIPTEN__) || defined(HAVE_LIBNX)
#include <alloca.h> #include <alloca.h>
#endif #endif
#else // STB_VORBIS_NO_CRT #else // STB_VORBIS_NO_CRT