Merge branch 'master' into master

This commit is contained in:
The Last Cabra 2017-01-23 15:16:19 +01:00 committed by GitHub
commit 0e542037d8
737 changed files with 11720 additions and 6238 deletions

35
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@ -0,0 +1,35 @@
# First and foremost consider this:
- Only RetroArch bugs should be filed here. Not core bugs or game bugs
- This is not a forum or a help section, this is strictly developer oriented
## Description
[Description of the bug]
### Expected behavior
[What you expected to happen]
### Actual behavior
[What is actually happening]
### Steps to reproduce the bug
1. [First step]
2. [Second step]
3. [and so on...]
### Bisect Results
[Try to bisect and tell us when this started happening]
### Version/Commit
You can find this information under Information/System Information
- RetroArch: [version/commit]
### Environment information
- OS: [The operating system you're running]
- Compiler: [In case you are running local builds]

3
.gitignore vendored
View File

@ -65,6 +65,9 @@ menu/driverspzarch.c
# Ctags
/tags
# CLion
/cmake-build-debug/
# Android
/pkg/android/phoenix/obj/
/pkg/android/phoenix/assets/

View File

@ -22,6 +22,11 @@ LIBS :=
DEFINES := -DHAVE_CONFIG_H -DRARCH_INTERNAL -DHAVE_OVERLAY
DEFINES += -DGLOBAL_CONFIG_DIR='"$(GLOBAL_CONFIG_DIR)"'
ifneq ($(findstring DOS,$(OS)),)
CFLAGS += -march=i386
LDFLAGS += -lemu
endif
ifneq ($(findstring Win32,$(OS)),)
LDFLAGS += -static-libgcc
endif

View File

@ -26,6 +26,15 @@ ifeq ($(HAVE_VIDEO_PROCESSOR), 1)
DEFINES += -DHAVE_VIDEO_PROCESSOR
endif
ifeq ($(HAVE_MENU), 1)
DEFINES += -DHAVE_MENU
HAVE_MENU_COMMON = 1
endif
ifeq ($(HAVE_SOCKET_LEGACY), 1)
DEFINES += -DHAVE_SOCKET_LEGACY
endif
ifeq ($(HAVE_HID), 1)
DEFINES += -DHAVE_HID
endif
@ -34,6 +43,10 @@ ifeq ($(HAVE_LIBRETRODB), 1)
DEFINES += -DHAVE_LIBRETRODB
endif
ifeq ($(HAVE_VITA2D), 1)
DEFINES += -DHAVE_VITA2D
endif
ifeq ($(HAVE_FBO), 1)
DEFINES += -DHAVE_FBO
endif
@ -81,6 +94,11 @@ CFLAGS += -I$(LIBRETRO_COMM_DIR)/include
# Switches
ifeq ($(HAVE_NETLOGGER), 1)
CFLAGS += -DHAVE_LOGGER
DEFINES += -DHAVE_LOGGER
OBJ += network/net_logger.o
endif
# System
@ -232,6 +250,7 @@ OBJ += frontend/frontend.o \
performance_counters.o \
verbosity.o
ifeq ($(HAVE_CC_RESAMPLER), 1)
DEFINES += -DHAVE_CC_RESAMPLER
OBJ += audio/drivers_resampler/cc_resampler.o
@ -422,7 +441,8 @@ endif
ifeq ($(HAVE_NEON),1)
OBJ += $(LIBRETRO_COMM_DIR)/audio/resampler/drivers/sinc_resampler_neon.o \
audio/drivers_resampler/cc_resampler_neon.o
audio/drivers_resampler/cc_resampler_neon.o \
memory/neon/memcpy-neon.o
# When compiled without this, tries to attempt to compile sinc lerp,
# which will error out
#
@ -441,8 +461,11 @@ ifeq ($(HAVE_NEON),1)
endif
ifneq ($(findstring Win32,$(OS)),)
HAVE_VULKAN=1
DEFINES += -DHAVE_VULKAN
# if user explicitly sets --disable-vulkan on Windows, then disable it
ifneq ($(HAVE_NO_VULKAN),1)
HAVE_VULKAN=1
DEFINES += -DHAVE_VULKAN
endif
endif
HW_CONTEXT_MENU_DRIVERS=$(HAVE_RGUI)
@ -474,10 +497,10 @@ ifeq ($(HW_CONTEXT_MENU_DRIVERS), 1)
HAVE_XMB = 1
endif
else
HAVE_ZARCH = 0
HAVE_MATERIALUI = 0
#HAVE_NUKLEAR = 0
HAVE_XMB = 0
HAVE_ZARCH ?= 0
HAVE_MATERIALUI ?= 0
#HAVE_NUKLEAR ?= 0
HAVE_XMB ?= 0
endif
ifeq ($(HAVE_RGUI), 1)
@ -487,6 +510,7 @@ ifeq ($(HAVE_RGUI), 1)
ifeq ($(HAVE_MATERIALUI), 1)
OBJ += menu/drivers/materialui.o
DEFINES += -DHAVE_MATERIALUI
HAVE_MENU_COMMON = 1
endif
ifeq ($(HAVE_NUKLEAR), 1)
OBJ += menu/drivers/nuklear/nk_common.o
@ -502,10 +526,13 @@ ifeq ($(HAVE_ZARCH), 1)
OBJ += menu/drivers/zarch.o
DEFINES += -DHAVE_ZARCH
endif
endif
ifeq ($(HAVE_XMB), 1)
OBJ += menu/drivers/xmb.o
DEFINES += -DHAVE_XMB
endif
HAVE_MENU_COMMON = 1
endif
ifeq ($(HAVE_LAKKA), 1)
@ -554,9 +581,14 @@ ifeq ($(HAVE_MENU_COMMON), 1)
menu/drivers/null.o
endif
ifeq ($(HAVE_OVERLAY), 1)
DEFINES += -DHAVE_OVERLAY
endif
ifeq ($(HAVE_STB_FONT), 1)
OBJ += gfx/drivers_font_renderer/stb.o
OBJ += gfx/drivers_font_renderer/stb_unicode.o
DEFINES += -DHAVE_STB_FONT
endif
ifeq ($(HAVE_FREETYPE), 1)
@ -580,6 +612,30 @@ ifeq ($(HAVE_THREAD_STORAGE), 1)
DEFINES += -DHAVE_THREAD_STORAGE
endif
ifeq ($(HAVE_VITA2D), 1)
OBJ += $(DEPS_DIR)/libvita2d/source/vita2d.o \
$(DEPS_DIR)/libvita2d/source/vita2d_texture.o \
$(DEPS_DIR)/libvita2d/source/vita2d_draw.o \
$(DEPS_DIR)/libvita2d/source/utils.o
OBJ += $(DEPS_DIR)/libvita2d/shader/clear_v_gxp.o \
$(DEPS_DIR)/libvita2d/shader/clear_f_gxp.o \
$(DEPS_DIR)/libvita2d/shader/color_v_gxp.o \
$(DEPS_DIR)/libvita2d/shader/color_f_gxp.o \
$(DEPS_DIR)/libvita2d/shader/texture_v_gxp.o \
$(DEPS_DIR)/libvita2d/shader/texture_f_gxp.o \
$(DEPS_DIR)/libvita2d/shader/texture_tint_f_gxp.o
ifeq ($(HAVE_MENU),1)
OBJ += menu/drivers_display/menu_display_vita2d.o
endif
OBJ += gfx/drivers/vita2d_gfx.o \
gfx/drivers_font/vita2d_font.o
CFLAGS += -I$(DEPS_DIR)/libvita2d/include
endif
ifeq ($(HAVE_WAYLAND), 1)
OBJ += gfx/drivers_context/wayland_ctx.o
DEFINES += $(WAYLAND_CFLAGS) $(WAYLAND_CURSOR_CFLAGS)
@ -925,8 +981,7 @@ ifeq ($(HAVE_OMAP), 1)
endif
ifeq ($(HAVE_EXYNOS), 1)
OBJ += gfx/drivers/exynos_gfx.o \
memory/neon/memcpy-neon.o
OBJ += gfx/drivers/exynos_gfx.o
LIBS += $(DRM_LIBS) $(EXYNOS_LIBS)
DEFINES += $(DRM_CFLAGS) $(EXYNOS_CFLAGS)
HAVE_AND_WILL_USE_DRM = 1
@ -1110,7 +1165,8 @@ ifeq ($(HAVE_NETWORKING), 1)
network/net_http_special.o \
tasks/task_http.o \
tasks/task_netplay_lan_scan.o \
tasks/task_wifi.o
tasks/task_wifi.o \
tasks/task_netplay_find_content.o
ifneq ($(HAVE_SOCKET_LEGACY),1)
OBJ += $(LIBRETRO_COMM_DIR)/net/net_ifinfo.o
@ -1161,6 +1217,13 @@ ifneq ($(findstring Win32,$(OS)),)
input/drivers_keyboard/keyboard_event_win32.o \
gfx/common/win32_common.o \
frontend/drivers/platform_win32.o
OBJ += gfx/drivers/gdi_gfx.o \
gfx/drivers_context/gdi_ctx.o \
gfx/drivers_font/gdi_font.o \
menu/drivers_display/menu_display_gdi.o
LIBS += -lmsimg32
endif
ifeq ($(HAVE_AVFOUNDATION), 1)
@ -1206,3 +1269,11 @@ ifeq ($(HAVE_COCOA),1)
ui/drivers/cocoa/cocoa_common.o \
gfx/drivers_context/cocoa_gl_ctx.o
endif
ifneq ($(findstring DOS,$(OS)),)
OBJ += gfx/drivers/vga_gfx.o gfx/drivers_font/vga_font.o
ifeq ($(HAVE_MENU_COMMON), 1)
OBJ += menu/drivers_display/menu_display_vga.o
endif
endif

View File

@ -1,13 +1,15 @@
DEBUG = 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_CC_RESAMPLER = 1
WHOLE_ARCHIVE_LINK = 0
BIG_STACK = 1
ROOT_DIR := .
DEPS_DIR := $(ROOT_DIR)/deps
DEBUG = 0
HAVE_LOGGER = 0
HAVE_FILE_LOGGER = 0
HAVE_CC_RESAMPLER = 1
WHOLE_ARCHIVE_LINK = 0
BIG_STACK = 1
PC_DEVELOPMENT_IP_ADDRESS = 255.255.255.255
PC_DEVELOPMENT_UDP_PORT = 3490
RARCH_CONSOLE = 0
USBGECKO = 0
RARCH_CONSOLE = 0
USBGECKO = 0
ifneq ($(EMSCRIPTEN),)
platform = emscripten
@ -219,19 +221,20 @@ else ifeq ($(platform), vita)
-lScePower_stub -lSceRtc_stub -lSceCommonDialog_stub -lScePgf_stub \
-lSceMotion_stub -lSceAppMgr_stub -lpng -lm -lc
PLATEXTRA := deps/libvita2d/shader/compiled/clear_v_gxp.o \
deps/libvita2d/shader/compiled/clear_f_gxp.o \
deps/libvita2d/shader/compiled/color_v_gxp.o \
deps/libvita2d/shader/compiled/color_f_gxp.o \
deps/libvita2d/shader/compiled/texture_v_gxp.o \
deps/libvita2d/shader/compiled/texture_f_gxp.o \
deps/libvita2d/shader/compiled/texture_tint_f_gxp.o
PLATOBJS += \
libretro-common/audio/conversion/s16_to_float_neon.o \
libretro-common/audio/conversion/float_to_s16_neon.o \
memory/neon/memcpy-neon.o \
libretro-common/audio/resampler/drivers/sinc_resampler_neon.o \
audio/drivers_resampler/cc_resampler_neon.o
PLATOBJS += $(DEPS_DIR)/libvita2d/shader/clear_v_gxp.o \
$(DEPS_DIR)/libvita2d/shader/clear_f_gxp.o \
$(DEPS_DIR)/libvita2d/shader/color_v_gxp.o \
$(DEPS_DIR)/libvita2d/shader/color_f_gxp.o \
$(DEPS_DIR)/libvita2d/shader/texture_v_gxp.o \
$(DEPS_DIR)/libvita2d/shader/texture_f_gxp.o \
$(DEPS_DIR)/libvita2d/shader/texture_tint_f_gxp.o
PLATOBJS += \
libretro-common/audio/conversion/s16_to_float_neon.o \
libretro-common/audio/conversion/float_to_s16_neon.o \
memory/neon/memcpy-neon.o \
libretro-common/audio/resampler/drivers/sinc_resampler_neon.o \
audio/drivers_resampler/cc_resampler_neon.o
LIBDIRS += -L.
LDFLAGS += -Wl,-q

198
Makefile.vita Normal file
View File

@ -0,0 +1,198 @@
TARGET := retroarch_vita
DEBUG ?= 0
GRIFFIN_BUILD = 0
WHOLE_ARCHIVE_LINK = 0
VITA_TITLE_ID := RETROARCH
VITA_TITLE_NAME := RetroArch
PC_DEVELOPMENT_IP_ADDRESS =
PC_DEVELOPMENT_UDP_PORT =
OBJ :=
DEFINES :=
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DWANT_ZLIB -DHAVE_CC_RESAMPLER
ifeq ($(DEBUG), 1)
DEFINES += -DHAVE_NETLOGGER
endif
else
HAVE_NEON := 1
HAVE_FILTERS_BUILTIN := 1
HAVE_LANGEXTRA := 1
HAVE_RPNG := 1
HAVE_RJPEG := 1
HAVE_RBMP := 1
HAVE_RTGA := 1
HAVE_ZLIB := 1
HAVE_7ZIP := 1
HAVE_VITA2D := 1
HAVE_NETWORKING := 1
HAVE_SOCKET_LEGACY := 1
HAVE_MENU := 1
HAVE_MENU_COMMON := 1
HAVE_OVERLAY := 1
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_RGUI := 1
HAVE_STB_FONT := 1
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
HAVE_CC_RESAMPLER := 1
RARCH_CONSOLE := 1
ifeq ($(DEBUG), 1)
HAVE_NETLOGGER = 1
endif
include Makefile.common
BLACKLIST :=
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
OBJ += input/drivers/psp_input.o
OBJ += input/drivers_joypad/psp_joypad.o
OBJ += audio/drivers/psp_audio.o
OBJ += frontend/drivers/platform_psp.o
OBJ += gfx/video_filters/2xsai.o
OBJ += gfx/video_filters/super2xsai.o
OBJ += gfx/video_filters/supereagle.o
OBJ += gfx/video_filters/2xbr.o
OBJ += gfx/video_filters/darken.o
OBJ += gfx/video_filters/epx.o
OBJ += gfx/video_filters/scale2x.o
OBJ += gfx/video_filters/blargg_ntsc_snes.o
OBJ += gfx/video_filters/lq2x.o
OBJ += gfx/video_filters/phosphor2x.o
OBJ += libretro-common/audio/dsp_filters/echo.o
OBJ += libretro-common/audio/dsp_filters/eq.o
OBJ += libretro-common/audio/dsp_filters/chorus.o
OBJ += libretro-common/audio/dsp_filters/iir.o
OBJ += libretro-common/audio/dsp_filters/panning.o
OBJ += libretro-common/audio/dsp_filters/phaser.o
OBJ += libretro-common/audio/dsp_filters/reverb.o
OBJ += libretro-common/audio/dsp_filters/wahwah.o
endif
ifeq ($(strip $(VITASDK)),)
$(error "Please set VITASDK in your environment. export VITASDK=<path to>vitasdk")
endif
export PATH := $(PATH):$(VITASDK)/bin
PREFIX := arm-vita-eabi-
CC := $(PREFIX)gcc
CXX := $(PREFIX)g++
AS := $(PREFIX)as
AR := $(PREFIX)ar
OBJCOPY := $(PREFIX)objcopy
STRIP := $(PREFIX)strip
NM := $(PREFIX)nm
LD := $(CXX)
INCDIRS := -I. -Ideps/zlib -Ideps/7zip -Ilibretro-common/include
LIBDIRS := -L.
ARCHFLAGS := -march=armv7-a -mfpu=neon -mfloat-abi=hard -DVITA
CFLAGS += $(ARCHFLAGS) -mword-relocations -fno-optimize-sibling-calls
ifeq ($(DEBUG), 1)
CFLAGS += -O2 -g
else
CFLAGS += -O3
endif
ASFLAGS := $(CFLAGS)
LDFLAGS := -Wl,-q
CFLAGS += -Wall -ffast-math
CFLAGS += -DRARCH_INTERNAL -DRARCH_CONSOLE
CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES)
ifneq ($(PC_DEVELOPMENT_IP_ADDRESS),)
CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS='"$(PC_DEVELOPMENT_IP_ADDRESS)"'
endif
ifneq ($(PC_DEVELOPMENT_UDP_PORT),)
CFLAGS += -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
endif
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
VITA_LIBS := -lSceDisplay_stub -lSceGxm_stub -lSceNet_stub -lSceNetCtl_stub \
-lSceSysmodule_stub -lSceCtrl_stub -lSceTouch_stub -lSceAudio_stub \
-lScePower_stub -lSceRtc_stub -lSceCommonDialog_stub -lScePgf_stub \
-lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lpthread -lpng -lz
LIBS := $(WHOLE_START) -lretro_vita $(WHOLE_END) $(VITA_LIBS) -lm -lc
TARGETS := $(TARGET).vpk
DEPFLAGS = -MT $@ -MMD -MP -MF $*.Tdepend
POSTCOMPILE = mv -f $*.Tdepend $*.depend
all: $(TARGETS)
%.o: %.cpp
%.o: %.cpp %.depend
$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
%.o: %.c
%.o: %.c %.depend
$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
%.o: %.S
%.o: %.S %.depend
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
%.o: %.s
%.o: %.s %.depend
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
$(POSTCOMPILE)
%.depend: ;
$(TARGET).elf: $(OBJ) libretro_vita.a
$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
%.velf: %.elf
vita-elf-create $< $@
%.self: %.velf
vita-make-fself -c -s $< $@
%.vpk: %.self
vita-mksfoex -s TITLE_ID=$(VITA_TITLE_ID) "$(VITA_TITLE_NAME)" param.sfo
vita-pack-vpk -s param.sfo -b $< $@
clean:
rm -f $(OBJ) $(TARGET).elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk
rm -f $(OBJ:.o=.depend)
# Useful for developers
vpksend: $(TARGET).vpk
curl -T $< ftp://$(PSVITAIP):1337/ux0:/
send: $(TARGET).self
curl -T $< ftp://$(PSVITAIP):1337/ux0:/app/$(VITA_TITLE_ID)/eboot.bin
.PHONY: clean all send vpksend
.PRECIOUS: %.depend
-include $(OBJ:.o=.depend)

View File

@ -21,7 +21,7 @@ RARCH_DEFINES = -DVITA -DIS_SALAMANDER -DRARCH_CONSOLE
LIBDIR =
LDFLAGS =
LIBS = -lSceKernel_stub -lSceDisplay_stub -lSceGxm_stub -lSceNet_stub -lSceNetCtl_stub\
LIBS = -lSceDisplay_stub -lSceGxm_stub -lSceNet_stub -lSceNetCtl_stub\
-lSceSysmodule_stub -lSceCtrl_stub -lSceAudio_stub -lSceFiber_stub\
-lScePower_stub -lSceRtc_stub -lSceCommonDialog_stub -lScePgf_stub \
-lSceMotion_stub -lSceAppMgr_stub -lfreetype -lpng -lm -lc
@ -48,7 +48,7 @@ OBJS = frontend/frontend_salamander.o \
libretro-common/file/retro_stat.o \
libretro-common/hash/rhash.o \
file_path_str.o \
verbosity.o
verbosity.o
all: $(TARGET).vpk
@ -67,7 +67,7 @@ $(TARGET).elf: $(OBJS)
%.o: %.png
$(PREFIX)-ld -r -b binary -o $@ $^
clean:
@rm -rf $(TARGET).vpk $(TARGET).velf $(TARGET).elf $(OBJS) \
eboot.bin param.sfo

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -456,11 +456,9 @@ static bool audio_driver_init_internal(bool audio_cb_inited)
RARCH_WARN("Audio rate control was desired, but driver does not support needed features.\n");
}
/* If we start muted, stop the audio driver, so subsequent unmute works. */
if (!audio_cb_inited && audio_driver_active && settings->audio.mute_enable)
{
/* If we start muted, stop the audio driver, so subsequent unmute works. */
audio_driver_stop();
}
command_event(CMD_EVENT_DSP_FILTER_INIT, NULL);
@ -472,7 +470,7 @@ static bool audio_driver_init_internal(bool audio_cb_inited)
&& !settings->audio.mute_enable
&& audio_cb_inited
)
audio_driver_start();
audio_driver_start(false);
return true;
@ -509,6 +507,9 @@ void audio_driver_set_nonblocking_state(bool enable)
static bool audio_driver_flush(const int16_t *data, size_t samples)
{
struct resampler_data src_data;
bool is_paused = false;
bool is_idle = false;
bool is_slowmotion = false;
static struct retro_perf_counter resampler_proc = {0};
static struct retro_perf_counter audio_convert_s16 = {0};
const void *output_data = NULL;
@ -525,7 +526,9 @@ static bool audio_driver_flush(const int16_t *data, size_t samples)
if (recording_data)
recording_push_audio(data, samples);
if (runloop_ctl(RUNLOOP_CTL_IS_PAUSED, NULL) || settings->audio.mute_enable)
runloop_get_status(&is_paused, &is_idle, &is_slowmotion);
if (is_paused || settings->audio.mute_enable)
return true;
if (!audio_driver_active || !audio_driver_input_data)
return false;
@ -597,7 +600,7 @@ static bool audio_driver_flush(const int16_t *data, size_t samples)
src_data.ratio = audio_source_ratio_current;
if (runloop_ctl(RUNLOOP_CTL_IS_SLOWMOTION, NULL))
if (is_slowmotion)
src_data.ratio *= settings->slowmotion_ratio;
performance_counter_init(&resampler_proc, "resampler_proc");
@ -965,12 +968,12 @@ bool audio_driver_toggle_mute(void)
return true;
}
bool audio_driver_start(void)
bool audio_driver_start(bool is_shutdown)
{
if (!current_audio || !current_audio->start
|| !audio_driver_context_audio_data)
return false;
return current_audio->start(audio_driver_context_audio_data);
return current_audio->start(audio_driver_context_audio_data, is_shutdown);
}
bool audio_driver_stop(void)

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -55,7 +55,7 @@ typedef struct audio_driver
bool (*stop)(void *data);
/* Starts driver. */
bool (*start)(void *data);
bool (*start)(void *data, bool is_shutdown);
/* Is the audio driver currently running? */
bool (*alive)(void *data);
@ -171,7 +171,7 @@ bool audio_driver_find_driver(void);
bool audio_driver_toggle_mute(void);
bool audio_driver_start(void);
bool audio_driver_start(bool is_shutdown);
bool audio_driver_stop(void);

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -35,6 +35,7 @@ typedef struct audio_thread
bool stopped;
bool stopped_ack;
bool is_paused;
bool is_shutdown;
bool use_float;
int inited;
@ -100,7 +101,7 @@ static void audio_thread_loop(void *data)
scond_wait(thr->cond, thr->lock);
}
thr->driver->start(thr->driver_data);
thr->driver->start(thr->driver_data, thr->is_shutdown);
}
slock_unlock(thr->lock);
@ -197,7 +198,7 @@ static bool audio_thread_stop(void *data)
return true;
}
static bool audio_thread_start(void *data)
static bool audio_thread_start(void *data, bool is_shutdown)
{
audio_thread_t *thr = (audio_thread_t*)data;
@ -206,7 +207,8 @@ static bool audio_thread_start(void *data)
audio_driver_enable_callback();
thr->is_paused = false;
thr->is_paused = false;
thr->is_shutdown = is_shutdown;
audio_thread_unblock(thr);
return true;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -270,7 +271,7 @@ static void alsa_set_nonblock_state(void *data, bool state)
alsa->nonblock = state;
}
static bool alsa_start(void *data)
static bool alsa_start(void *data, bool is_shutdown)
{
alsa_t *alsa = (alsa_t*)data;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -290,7 +290,7 @@ static bool alsa_qsa_alive(void *data)
return false;
}
static bool alsa_qsa_start(void *data)
static bool alsa_qsa_start(void *data, bool is_shutdown)
{
alsa_t *alsa = (alsa_t*)data;

View File

@ -318,7 +318,7 @@ static void alsa_thread_set_nonblock_state(void *data, bool state)
alsa->nonblock = state;
}
static bool alsa_thread_start(void *data)
static bool alsa_thread_start(void *data, bool is_shutdown)
{
alsa_thread_t *alsa = (alsa_thread_t*)data;

View File

@ -139,7 +139,7 @@ static void choose_output_device(coreaudio_t *dev, const char* device)
AudioObjectPropertyAddress propaddr =
{
kAudioHardwarePropertyDevices,
kAudioObjectPropertyScopeGlobal,
kAudioObjectPropertyScopeOutput,
kAudioObjectPropertyElementMaster
};
UInt32 size = 0;
@ -155,14 +155,13 @@ static void choose_output_device(coreaudio_t *dev, const char* device)
&propaddr, 0, 0, &size, devices) != noErr)
goto done;
propaddr.mScope = kAudioDevicePropertyScopeOutput;
propaddr.mSelector = kAudioDevicePropertyDeviceName;
size = 1024;
for (i = 0; i < deviceCount; i ++)
{
char device_name[1024];
device_name[0] = 0;
size = 1024;
if (AudioObjectGetPropertyData(devices[i],
&propaddr, 0, 0, &size, device_name) == noErr
@ -398,7 +397,7 @@ static bool coreaudio_stop(void *data)
return dev->is_paused ? true : false;
}
static bool coreaudio_start(void *data)
static bool coreaudio_start(void *data, bool is_shutdown)
{
coreaudio_t *dev = (coreaudio_t*)data;
if (!dev)

View File

@ -1,5 +1,5 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2014-2016 - Ali Bouhlel
* Copyright (C) 2014-2017 - Ali Bouhlel
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -20,7 +20,6 @@
#include "../audio_driver.h"
#include "../../performance_counters.h"
#include "../../runloop.h"
typedef struct
{
@ -95,7 +94,8 @@ Result csndPlaySound_custom(int chn, u32 flags, float vol, float pan,
if (loopMode == CSND_LOOPMODE_NORMAL && paddr1 > paddr0)
{
// Now that the first block is playing, configure the size of the subsequent blocks
/* Now that the first block is playing,
* configure the size of the subsequent blocks */
size -= paddr1 - paddr0;
CSND_SetBlock(chn, 1, paddr1, size);
}
@ -149,7 +149,9 @@ static void ctr_csnd_audio_free(void *data)
{
ctr_csnd_audio_t* ctr = (ctr_csnd_audio_t*)data;
// csndExit();
#if 0
csndExit();
#endif
CSND_SetPlayState(0x8, 0);
CSND_SetPlayState(0x9, 0);
csndExecCmds(false);
@ -242,14 +244,13 @@ static bool ctr_csnd_audio_alive(void *data)
return ctr->playing;
}
static bool ctr_csnd_audio_start(void *data)
static bool ctr_csnd_audio_start(void *data, bool is_shutdown)
{
ctr_csnd_audio_t* ctr = (ctr_csnd_audio_t*)data;
/* Prevents restarting audio when the menu
* is toggled off on shutdown */
if (runloop_ctl(RUNLOOP_CTL_IS_SHUTDOWN, NULL))
if (is_shutdown)
return true;
#if 0

View File

@ -1,5 +1,5 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2014-2016 - Ali Bouhlel
* Copyright (C) 2014-2017 - Ali Bouhlel
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -19,7 +19,6 @@
#include "../audio_driver.h"
#include "../../performance_counters.h"
#include "../../runloop.h"
#include "../../ctr/ctr_debug.h"
typedef struct
@ -60,7 +59,7 @@ static void *ctr_dsp_audio_init(const char *device, unsigned rate, unsigned late
ctr->channel = 0;
ndspSetOutputMode(NDSP_OUTPUT_STEREO);
ndspSetClippingMode(NDSP_CLIP_SOFT); //??
ndspSetClippingMode(NDSP_CLIP_SOFT); /* ?? */
ndspSetOutputCount(1);
ndspChnReset(ctr->channel);
ndspChnSetFormat(ctr->channel, NDSP_FORMAT_STEREO_PCM16);
@ -162,14 +161,13 @@ static bool ctr_dsp_audio_alive(void *data)
return ctr->playing;
}
static bool ctr_dsp_audio_start(void *data)
static bool ctr_dsp_audio_start(void *data, bool is_shutdown)
{
ctr_dsp_audio_t* ctr = (ctr_dsp_audio_t*)data;
/* Prevents restarting audio when the menu
* is toggled off on shutdown */
if (runloop_ctl(RUNLOOP_CTL_IS_SHUTDOWN, NULL))
if (is_shutdown)
return true;
ndspSetMasterVol(1.0);

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -396,7 +396,7 @@ static bool dsound_stop(void *data)
return (ds->is_paused) ? true : false;
}
static bool dsound_start(void *data)
static bool dsound_start(void *data, bool is_shutdown)
{
dsound_t *ds = (dsound_t*)data;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -173,7 +173,7 @@ static void gx_audio_set_nonblock_state(void *data, bool state)
wa->nonblock = state;
}
static bool gx_audio_start(void *data)
static bool gx_audio_start(void *data, bool is_shutdown)
{
gx_audio_t *wa = (gx_audio_t*)data;

View File

@ -322,7 +322,7 @@ static void ja_set_nonblock_state(void *data, bool state)
jd->nonblock = state;
}
static bool ja_start(void *data)
static bool ja_start(void *data, bool is_shutdown)
{
jack_t *jd = (jack_t*)data;
if (jd)

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -54,7 +55,7 @@ static bool null_audio_alive(void *data)
return true;
}
static bool null_audio_start(void *data)
static bool null_audio_start(void *data, bool is_shutdown)
{
(void)data;
return true;

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -234,7 +235,7 @@ static void al_set_nonblock_state(void *data, bool state)
al->nonblock = state;
}
static bool al_start(void *data)
static bool al_start(void *data, bool is_shutdown)
{
al_t *al = (al_t*)data;
if (al)

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -221,7 +221,7 @@ static void sl_set_nonblock_state(void *data, bool state)
sl->nonblock = state;
}
static bool sl_start(void *data)
static bool sl_start(void *data, bool is_shutdown)
{
sl_t *sl = (sl_t*)data;
sl->is_paused = (SLPlayItf_SetPlayState(sl->player, SL_PLAYSTATE_PLAYING)

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -124,7 +125,7 @@ static bool oss_stop(void *data)
return true;
}
static bool oss_start(void *data)
static bool oss_start(void *data, bool is_shutdown)
{
(void)data;
oss_is_paused = false;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -177,7 +177,7 @@ static bool ps3_audio_stop(void *data)
return true;
}
static bool ps3_audio_start(void *data)
static bool ps3_audio_start(void *data, bool is_shutdown)
{
ps3_audio_t *aud = data;
if (!aud->started)

View File

@ -1,7 +1,7 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2014-2016 - Ali Bouhlel
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2014-2017 - Ali Bouhlel
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -18,6 +18,7 @@
#include <stdint.h>
#include <malloc.h>
#include <stdio.h>
#include <string.h>
#ifdef VITA
#include <psp2/kernel/processmgr.h>
@ -284,7 +285,7 @@ static bool psp_audio_stop(void *data)
return true;
}
static bool psp_audio_start(void *data)
static bool psp_audio_start(void *data, bool is_shutdown)
{
SceKernelThreadInfo info;
psp_audio_t* psp = (psp_audio_t*)data;

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -290,7 +291,7 @@ static bool pulse_alive(void *data)
return !pa->is_paused;
}
static bool pulse_start(void *data)
static bool pulse_start(void *data, bool is_shutdown)
{
bool ret;
pa_t *pa = (pa_t*)data;

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -108,7 +109,7 @@ static void ra_set_nonblock_state(void *data, bool state)
roar->nonblocking = state;
}
static bool ra_start(void *data)
static bool ra_start(void *data, bool is_shutdown)
{
roar_t *roar = (roar_t*)data;
if (roar)

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -176,7 +177,7 @@ static bool rs_alive(void *data)
return false;
}
static bool rs_start(void *data)
static bool rs_start(void *data, bool is_shutdown)
{
rsd_t *rsd = (rsd_t*)data;
if (rsd_start(rsd->rd) < 0)

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2015 - Michael Lelli
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -75,7 +76,7 @@ static bool rwebaudio_alive(void *data)
return !rwebaudio_is_paused;
}
static bool rwebaudio_start(void *data)
static bool rwebaudio_start(void *data, bool is_shutdown)
{
(void)data;
rwebaudio_is_paused = false;

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -202,7 +203,7 @@ static bool sdl_audio_alive(void *data)
return !sdl->is_paused;
}
static bool sdl_audio_start(void *data)
static bool sdl_audio_start(void *data, bool is_shutdown)
{
sdl_audio_t *sdl = (sdl_audio_t*)data;
sdl->is_paused = false;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2014-2016 - Ali Bouhlel
* Copyright (C) 2016 - FIX94
* Copyright (C) 2014-2017 - Ali Bouhlel
* Copyright (C) 2016-2017 - FIX94
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -34,7 +34,6 @@
#include "audio/audio_driver.h"
#include "performance_counters.h"
#include "runloop.h"
typedef struct
{
@ -52,18 +51,21 @@ typedef struct
#define AX_AUDIO_COUNT 3072
#define AX_AUDIO_SIZE (AX_AUDIO_COUNT << 1u)
#define AX_AUDIO_SAMPLE_COUNT 144 //3ms
#define AX_AUDIO_SAMPLE_MIN (AX_AUDIO_SAMPLE_COUNT * 3) //9ms
#define AX_AUDIO_SAMPLE_LOAD (AX_AUDIO_SAMPLE_COUNT * 10) //30ms
#define AX_AUDIO_SAMPLE_COUNT 144 /* 3ms */
#define AX_AUDIO_SAMPLE_MIN (AX_AUDIO_SAMPLE_COUNT * 3) /* 9ms */
#define AX_AUDIO_SAMPLE_LOAD (AX_AUDIO_SAMPLE_COUNT * 10)/* 30ms */
#define AX_AUDIO_MAX_FREE (AX_AUDIO_COUNT - (AX_AUDIO_SAMPLE_COUNT * 2))
#define AX_AUDIO_RATE 48000
//#define ax_audio_ticks_to_samples(ticks) (((ticks) * 64) / 82875)
//#define ax_audio_samples_to_ticks(samples) (((samples) * 82875) / 64)
#if 0
#define ax_audio_ticks_to_samples(ticks) (((ticks) * 64) / 82875)
#define ax_audio_samples_to_ticks(samples) (((samples) * 82875) / 64)
#endif
static volatile ax_audio_t *wiiu_cb_ax = NULL;
void wiiu_ax_callback(void)
{
//possibly called before unregister
/*possibly called before unregister */
if(wiiu_cb_ax == NULL)
return;
@ -72,7 +74,7 @@ void wiiu_ax_callback(void)
{
if(OSUninterruptibleSpinLock_Acquire(&ax->spinlock))
{
//buffer underrun, stop playback to let it fill up
/* Buffer underrun, stop playback to let it fill up */
if(ax->written < AX_AUDIO_SAMPLE_MIN)
AXSetMultiVoiceState(ax->mvoice, AX_VOICE_STATE_STOPPED);
ax->written -= AX_AUDIO_SAMPLE_COUNT;
@ -180,17 +182,16 @@ static int ax_audio_limit(int in)
return in;
}
static bool ax_audio_start(void* data)
static bool ax_audio_start(void* data, bool is_shutdown)
{
ax_audio_t* ax = (ax_audio_t*)data;
/* Prevents restarting audio when the menu
* is toggled off on shutdown */
if (runloop_ctl(RUNLOOP_CTL_IS_SHUTDOWN, NULL))
if (is_shutdown)
return true;
//set back to playing on enough buffered data
/* Set back to playing on enough buffered data */
if(ax->written > AX_AUDIO_SAMPLE_LOAD)
{
AXSetMultiVoiceCurrentOffset(ax->mvoice, ax_audio_limit(ax->pos - ax->written));
@ -211,7 +212,7 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size)
if(!size || (size & 0x3))
return 0;
//measure copy performance from here
/* Measure copy performance from here */
performance_counter_init(&ax_audio_write_perf, "ax_audio_write");
performance_counter_start(&ax_audio_write_perf);
@ -222,70 +223,80 @@ static ssize_t ax_audio_write(void* data, const void* buf, size_t size)
if (ax->nonblocking)
{
//not enough available for 3ms of data
/* Not enough available for 3ms of data */
if(countAvail < AX_AUDIO_SAMPLE_COUNT)
count = 0;
}
else if(countAvail < count)
{
//sync, wait for free memory
/* Sync, wait for free memory */
while(AXIsMultiVoiceRunning(ax->mvoice) && (countAvail < count))
{
OSYieldThread(); //gives threads with same priority time to run
OSYieldThread(); /* Gives threads with same priority time to run */
countAvail = (ax->written > AX_AUDIO_MAX_FREE ? 0 : (AX_AUDIO_MAX_FREE - ax->written));
}
}
//over available space, do as much as possible
/* Over available space, do as much as possible */
if(count > countAvail)
count = countAvail;
//make sure we have input size
/* make sure we have input size */
if(count > 0)
{
//write in new data
size_t startPos = ax->pos;
/* write in new data */
size_t startPos = ax->pos;
int flushP2needed = 0;
int flushP2 = 0;
int flushP2 = 0;
for (i = 0; i < (count << 1); i += 2)
{
ax->buffer_l[ax->pos] = src[i];
ax->buffer_r[ax->pos] = src[i + 1];
ax->pos = ax_audio_limit(ax->pos + 1);
//wrapped around, make sure to store cache
ax->pos = ax_audio_limit(ax->pos + 1);
/* wrapped around, make sure to store cache */
if(ax->pos == 0)
{
flushP2needed = 1;
flushP2 = ((count << 1) - i);
flushP2 = ((count << 1) - i);
DCStoreRangeNoSync(ax->buffer_l+startPos, (AX_AUDIO_COUNT-startPos) << 1);
DCStoreRangeNoSync(ax->buffer_r+startPos, (AX_AUDIO_COUNT-startPos) << 1);
}
}
//standard cache store case
/* standard cache store case */
if(!flushP2needed)
{
DCStoreRangeNoSync(ax->buffer_l+startPos, count << 1);
DCStoreRange(ax->buffer_r+startPos, count << 1);
} //store the rest after wrap
}
/* store the rest after wrap */
else if(flushP2 > 0)
{
DCStoreRangeNoSync(ax->buffer_l, flushP2);
DCStoreRange(ax->buffer_r, flushP2);
}
//add in new audio data
/* add in new audio data */
if(OSUninterruptibleSpinLock_Acquire(&ax->spinlock))
{
ax->written += count;
OSUninterruptibleSpinLock_Release(&ax->spinlock);
}
}
//possibly buffer underrun
/* Possibly buffer underrun
*
* checks if it can be started
*/
if(!AXIsMultiVoiceRunning(ax->mvoice))
{
//checks if it can be started
ax_audio_start(ax);
}
//done copying new data
ax_audio_start(ax, false);
/* Done copying new data */
performance_counter_stop(&ax_audio_write_perf);
//return what was actually copied
/* return what was actually copied */
return (count << 2);
}
@ -338,6 +349,6 @@ audio_driver_t audio_ax =
"AX",
NULL,
NULL,
// ax_audio_write_avail,
// ax_audio_buffer_size
/* ax_audio_write_avail, */
/* ax_audio_buffer_size */
};

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -29,6 +29,11 @@
#include <compat/msvc.h>
#include <retro_miscellaneous.h>
#if defined(_MSC_VER) && (_WIN32_WINNT <= _WIN32_WINNT_WIN2K)
/* needed for CoInitializeEx */
#define _WIN32_DCOM
#endif
#include "xaudio.h"
#include "../audio_driver.h"
@ -311,7 +316,7 @@ static void xa_set_nonblock_state(void *data, bool state)
xa->nonblock = state;
}
static bool xa_start(void *data)
static bool xa_start(void *data, bool is_shutdown)
{
xa_t *xa = (xa_t*)data;
xa->is_paused = false;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2010-2014 - OV2
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -112,7 +112,7 @@ static void xenon360_audio_set_nonblock_state(void *data, bool state)
xa->nonblock = state;
}
static bool xenon360_audio_start(void *data)
static bool xenon360_audio_start(void *data, bool is_shutdown)
{
xenon_audio_t *xa = data;
xa->is_paused = false;

View File

@ -1,5 +1,5 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2014-2016 - Ali Bouhlel ( aliaspider@gmail.com )
* Copyright (C) 2014-2017 - Ali Bouhlel ( aliaspider@gmail.com )
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,5 +1,5 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2014-2015 - Ali Bouhlel ( aliaspider@gmail.com )
* Copyright (C) 2014-2017 - Ali Bouhlel ( aliaspider@gmail.com )
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,9 @@
#include <errno.h>
#include <reent.h>
#include "../../defines/psp_defines.h"
#include <psp2/kernel/sysmem.h>
#include <psp2/kernel/threadmgr.h>
static int _newlib_heap_memblock;
static unsigned _newlib_heap_size;
static char *_newlib_heap_base, *_newlib_heap_end, *_newlib_heap_cur;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2015 - Michael Lelli
* Copyright (C) 2012-2015 - Michael Lelli
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2012-2015 - Michael Lelli
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -955,7 +955,7 @@ static size_t cheevos_highest_bit(size_t n)
void cheevos_parse_guest_addr(cheevos_var_t *var, unsigned value)
{
rarch_system_info_t *system;
rarch_system_info_t *system = NULL;
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
var->bank_id = -1;
@ -1510,7 +1510,7 @@ uint8_t *cheevos_get_memory(const cheevos_var_t *var)
if (var->bank_id >= 0)
{
rarch_system_info_t *system;
rarch_system_info_t *system = NULL;
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system);
if (system->mmaps.num_descriptors != 0)

View File

@ -35,8 +35,10 @@
#endif
#ifdef HAVE_COMMAND
#include <net/net_compat.h>
#include <net/net_socket.h>
#ifdef HAVE_NETWORKING
#include <net/net_compat.h>
#include <net/net_socket.h>
#endif
#include <string/stdstring.h>
#endif
@ -539,6 +541,7 @@ bool command_network_send(const char *cmd_)
}
#ifdef HAVE_COMMAND
static void command_network_poll(command_t *handle)
{
fd_set fds;
@ -577,6 +580,7 @@ static void command_network_poll(command_t *handle)
}
}
#endif
#endif
#ifdef HAVE_STDIN_CMD
static bool command_stdin_init(command_t *handle)
@ -798,8 +802,10 @@ bool command_poll(command_t *handle)
memset(handle->state, 0, sizeof(handle->state));
#if defined(HAVE_NETWORKING) && defined(HAVE_NETWORK_CMD)
#ifdef HAVE_COMMAND
command_network_poll(handle);
#endif
#endif
#ifdef HAVE_STDIN_CMD
command_stdin_poll(handle);
@ -830,8 +836,10 @@ bool command_set(command_handle_t *handle)
bool command_free(command_t *handle)
{
#if defined(HAVE_NETWORKING) && defined(HAVE_NETWORK_CMD)
#ifdef HAVE_COMMAND
if (handle && handle->net_fd >= 0)
socket_close(handle->net_fd);
#endif
#endif
free(handle);
@ -1395,9 +1403,11 @@ static bool command_event_init_core(enum rarch_core_type *data)
if (!event_init_content())
return false;
if (!core_load())
if (!core_load(settings->input.poll_type_behavior))
return false;
runloop_ctl(RUNLOOP_CTL_SET_FRAME_LIMIT, NULL);
return true;
}
@ -1870,7 +1880,7 @@ bool command_event(enum event_command cmd, void *data)
return command_event_resize_windowed_scale();
case CMD_EVENT_MENU_TOGGLE:
#ifdef HAVE_MENU
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL))
if (menu_driver_is_alive())
rarch_ctl(RARCH_CTL_MENU_RUNNING_FINISHED, NULL);
else
rarch_ctl(RARCH_CTL_MENU_RUNNING, NULL);
@ -1887,6 +1897,9 @@ bool command_event(enum event_command cmd, void *data)
cheevos_set_cheats();
#endif
core_reset();
#ifdef HAVE_CHEEVOS
cheevos_reset_game();
#endif
break;
case CMD_EVENT_SAVE_STATE:
{
@ -1961,7 +1974,7 @@ bool command_event(enum event_command cmd, void *data)
command_event(CMD_EVENT_GAME_FOCUS_TOGGLE, (void*)(intptr_t)-1);
#ifdef HAVE_MENU
menu_display_set_framebuffer_dirty_flag();
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL))
if (menu_driver_is_alive())
command_event(CMD_EVENT_VIDEO_SET_BLOCKING_STATE, NULL);
#endif
break;
@ -2005,7 +2018,7 @@ bool command_event(enum event_command cmd, void *data)
#endif
{
if (settings->rewind_enable)
state_manager_event_init();
state_manager_event_init(settings->rewind_buffer_size);
}
}
break;
@ -2047,7 +2060,7 @@ bool command_event(enum event_command cmd, void *data)
if (audio_driver_alive())
return false;
if (settings && !settings->audio.mute_enable && !audio_driver_start())
if (settings && !settings->audio.mute_enable && !audio_driver_start(runloop_ctl(RUNLOOP_CTL_IS_SHUTDOWN, NULL)))
{
RARCH_ERR("%s\n",
msg_hash_to_str(MSG_FAILED_TO_START_AUDIO_DRIVER));
@ -2259,7 +2272,7 @@ bool command_event(enum event_command cmd, void *data)
{
int flags = DRIVER_AUDIO_MASK;
driver_ctl(RARCH_DRIVER_CTL_UNINIT, &flags);
driver_ctl(RARCH_DRIVER_CTL_INIT, &flags);
drivers_init(flags);
}
break;
case CMD_EVENT_RESET_CONTEXT:
@ -2278,7 +2291,7 @@ bool command_event(enum event_command cmd, void *data)
memcpy(hwr, &hwr_copy, sizeof(*hwr));
video_driver_set_context_negotiation_interface(iface);
driver_ctl(RARCH_DRIVER_CTL_INIT, &flags);
drivers_init(flags);
}
break;
case CMD_EVENT_SHUTDOWN:
@ -2374,7 +2387,7 @@ bool command_event(enum event_command cmd, void *data)
#ifdef HAVE_MENU
settings_t *settings = config_get_ptr();
if (menu_driver_ctl(RARCH_MENU_CTL_IS_ALIVE, NULL))
if (menu_driver_is_alive())
{
if (settings->menu.pause_libretro)
command_event(CMD_EVENT_AUDIO_STOP, NULL);
@ -2417,9 +2430,11 @@ bool command_event(enum event_command cmd, void *data)
break;
case CMD_EVENT_NETPLAY_INIT:
{
char *hostname = (char *) data;
char *hostname = (char *) data;
settings_t *settings = config_get_ptr();
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
if (!init_netplay(
NULL, hostname ? hostname : settings->netplay.server,
settings->netplay.port))
@ -2432,7 +2447,9 @@ bool command_event(enum event_command cmd, void *data)
case CMD_EVENT_NETPLAY_INIT_DIRECT:
{
settings_t *settings = config_get_ptr();
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
if (!init_netplay(
data, NULL, settings->netplay.port))
{
@ -2441,6 +2458,25 @@ bool command_event(enum event_command cmd, void *data)
}
}
break;
case CMD_EVENT_NETPLAY_INIT_DIRECT_DEFERRED:
{
/* buf is expected to be address:port, there must be a better way
to do this but for now I'll just use a string list */
char *buf = (char *)data;
static struct string_list *hostname = NULL;
hostname = string_split(buf, ":");
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
if (!init_netplay_deferred(
hostname->elems[0].data, atoi(hostname->elems[1].data)))
{
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
return false;
}
}
break;
case CMD_EVENT_NETPLAY_FLIP_PLAYERS:
netplay_driver_ctl(RARCH_NETPLAY_CTL_FLIP_PLAYERS, NULL);
break;
@ -2453,6 +2489,7 @@ bool command_event(enum event_command cmd, void *data)
case CMD_EVENT_NETWORK_INIT:
case CMD_EVENT_NETPLAY_INIT:
case CMD_EVENT_NETPLAY_INIT_DIRECT:
case CMD_EVENT_NETPLAY_INIT_DIRECT_DEFERRED:
case CMD_EVENT_NETPLAY_FLIP_PLAYERS:
case CMD_EVENT_NETPLAY_GAME_WATCH:
return false;

View File

@ -171,6 +171,8 @@ enum event_command
CMD_EVENT_NETPLAY_INIT,
/* Initializes netplay system with a direct host specified. */
CMD_EVENT_NETPLAY_INIT_DIRECT,
/* Initializes netplay system with a direct host specified after loading content. */
CMD_EVENT_NETPLAY_INIT_DIRECT_DEFERRED,
/* Deinitializes netplay system. */
CMD_EVENT_NETPLAY_DEINIT,
/* Flip netplay players. */

View File

@ -51,6 +51,9 @@ enum video_driver_enum
VIDEO_EXYNOS,
VIDEO_SUNXI,
VIDEO_DISPMANX,
VIDEO_CACA,
VIDEO_GDI,
VIDEO_VGA,
VIDEO_NULL
};
@ -209,6 +212,10 @@ enum record_driver_enum
#define VIDEO_DEFAULT_DRIVER VIDEO_SDL
#elif defined(HAVE_SDL2)
#define VIDEO_DEFAULT_DRIVER VIDEO_SDL2
#elif defined(_WIN32) && !defined(_XBOX)
#define VIDEO_DEFAULT_DRIVER VIDEO_GDI
#elif defined(DJGPP)
#define VIDEO_DEFAULT_DRIVER VIDEO_VGA
#elif defined(HAVE_DYLIB) && !defined(ANDROID)
#define VIDEO_DEFAULT_DRIVER VIDEO_EXT
#else

View File

@ -310,6 +310,12 @@ const char *config_get_default_video(void)
return "dispmanx";
case VIDEO_SUNXI:
return "sunxi";
case VIDEO_CACA:
return "caca";
case VIDEO_GDI:
return "gdi";
case VIDEO_VGA:
return "vga";
case VIDEO_NULL:
break;
}

2
core.h
View File

@ -158,7 +158,7 @@ typedef struct retro_callbacks
retro_input_poll_t poll_cb;
} retro_callbacks_t;
bool core_load(void);
bool core_load(unsigned poll_type_behavior);
bool core_unload(void);

View File

@ -34,16 +34,12 @@
#include "network/netplay/netplay.h"
#endif
#include "configuration.h"
#include "dynamic.h"
#include "core.h"
#include "msg_hash.h"
#include "managers/state_manager.h"
#include "runloop.h"
#include "verbosity.h"
#include "gfx/video_driver.h"
#include "audio/audio_driver.h"
#include "cheevos.h"
static unsigned core_poll_type = POLL_TYPE_EARLY;
static bool core_inited = false;
@ -376,9 +372,6 @@ bool core_get_system_av_info(struct retro_system_av_info *av_info)
bool core_reset(void)
{
core.retro_reset();
#ifdef HAVE_CHEEVOS
cheevos_reset_game();
#endif
return true;
}
@ -442,11 +435,9 @@ bool core_run(void)
return true;
}
bool core_load(void)
bool core_load(unsigned poll_type_behavior)
{
settings_t *settings = config_get_ptr();
core_poll_type = settings->input.poll_type_behavior;
core_poll_type = poll_type_behavior;
if (!core_verify_api_version())
return false;
@ -454,7 +445,6 @@ bool core_load(void)
return false;
core_get_system_av_info(video_viewport_get_system_av_info());
runloop_ctl(RUNLOOP_CTL_SET_FRAME_LIMIT, NULL);
return true;
}

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2015 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2015 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -31,24 +31,6 @@
#include "msg_hash.h"
#include "verbosity.h"
#define DB_QUERY_ENTRY 0x1c310956U
#define DB_QUERY_ENTRY_PUBLISHER 0x125e594dU
#define DB_QUERY_ENTRY_DEVELOPER 0xcbd89be5U
#define DB_QUERY_ENTRY_ORIGIN 0x4ebaa767U
#define DB_QUERY_ENTRY_FRANCHISE 0x77f9eff2U
#define DB_QUERY_ENTRY_RATING 0x68eba20fU
#define DB_QUERY_ENTRY_BBFC_RATING 0x0a8e67f0U
#define DB_QUERY_ENTRY_ELSPA_RATING 0x8bf6ab18U
#define DB_QUERY_ENTRY_PEGI_RATING 0x5fc77328U
#define DB_QUERY_ENTRY_CERO_RATING 0x24f6172cU
#define DB_QUERY_ENTRY_ENHANCEMENT_HW 0x9866bda3U
#define DB_QUERY_ENTRY_EDGE_MAGAZINE_RATING 0x1c7f8a43U
#define DB_QUERY_ENTRY_EDGE_MAGAZINE_ISSUE 0xaaeebde7U
#define DB_QUERY_ENTRY_FAMITSU_MAGAZINE_RATING 0xbf7ff5e7U
#define DB_QUERY_ENTRY_RELEASEDATE_MONTH 0x2b36ce66U
#define DB_QUERY_ENTRY_RELEASEDATE_YEAR 0x9c7c6e91U
#define DB_QUERY_ENTRY_MAX_USERS 0xbfcba816U
#define DB_CURSOR_ROM_NAME 0x16bbcf13U
#define DB_CURSOR_NAME 0x7c9b0c46U
#define DB_CURSOR_DESCRIPTION 0x91b0c789U
@ -420,9 +402,9 @@ static int database_cursor_close(libretrodb_t *db, libretrodb_cursor_t *cur)
database_info_handle_t *database_info_dir_init(const char *dir,
enum database_type type)
{
unsigned i;
database_info_handle_t *db = (database_info_handle_t*)
calloc(1, sizeof(*db));
unsigned i = 0;
if (!db)
return NULL;

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,5 +1,5 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,5 +1,5 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

21
deps/libvita2d/shader/clear_f_gxp.c vendored Normal file
View File

@ -0,0 +1,21 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file clear_f.gxp */
const long int clear_f_gxp_size = 236;
const unsigned char clear_f_gxp[236] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x42, 0xC5, 0x15, 0xBE,
0xAA, 0xA6, 0x78, 0x8C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00,
0x78, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x80, 0x19, 0xA0,
0x7E, 0x0D, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xFA,
0x00, 0x00, 0x00, 0xC5, 0x22, 0x04, 0x80, 0x38, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
0x10, 0x00, 0x00, 0x00, 0x01, 0xE4, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x75, 0x43, 0x6C, 0x65, 0x61, 0x72, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00
};

23
deps/libvita2d/shader/clear_v_gxp.c vendored Normal file
View File

@ -0,0 +1,23 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file clear_v.gxp */
const long int clear_v_gxp_size = 264;
const unsigned char clear_v_gxp[264] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x06, 0x01, 0x00, 0x00, 0x31, 0x0F, 0x53, 0x68,
0x27, 0x82, 0x90, 0xBD, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00,
0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x46, 0x52, 0x45, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x40, 0x09, 0x00, 0xF8, 0x01, 0x00, 0x24, 0x9F,
0x88, 0x1F, 0xC5, 0x08, 0x00, 0x0F, 0x00, 0x03, 0x21, 0x05, 0x80, 0x38, 0x00, 0x0F, 0x04, 0x03,
0x59, 0x05, 0x80, 0x38, 0x00, 0x00, 0x20, 0xA0, 0x00, 0x50, 0x27, 0xFB, 0x10, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x50, 0x6F, 0x73,
0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x00, 0x00
};

19
deps/libvita2d/shader/color_f_gxp.c vendored Normal file
View File

@ -0,0 +1,19 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file color_f.gxp */
const long int color_f_gxp_size = 208;
const unsigned char color_f_gxp[208] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0xD0, 0x00, 0x00, 0x00, 0x41, 0x94, 0xBB, 0xB6,
0x66, 0x1E, 0xDD, 0x20, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0F, 0xA0, 0xD0, 0x0E,
0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xFA, 0x02, 0x80, 0x19, 0xA0, 0x7E, 0x0D, 0x80, 0x40
};

28
deps/libvita2d/shader/color_v_gxp.c vendored Normal file
View File

@ -0,0 +1,28 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file color_v.gxp */
const long int color_v_gxp_size = 340;
const unsigned char color_v_gxp[340] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x51, 0x01, 0x00, 0x00, 0xE2, 0xF2, 0xA7, 0xCC,
0x01, 0x74, 0x8D, 0xD3, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x00,
0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0x44, 0xFA, 0x80, 0x00, 0x08, 0x83, 0x21, 0x1D, 0x80, 0x38, 0x02, 0x80, 0x81, 0xAF,
0x9C, 0x0D, 0xC0, 0x40, 0x0E, 0x86, 0xB9, 0xFF, 0xBC, 0x0D, 0xC0, 0x40, 0x04, 0x11, 0x49, 0xCF,
0x80, 0x8F, 0xB1, 0x18, 0x02, 0x11, 0x45, 0xCF, 0x80, 0x8F, 0xB1, 0x18, 0x00, 0x11, 0x01, 0xC0,
0x81, 0x81, 0xB1, 0x18, 0x01, 0xD1, 0x42, 0xC0, 0x81, 0x81, 0xB1, 0x18, 0x00, 0x00, 0x20, 0xA0,
0x00, 0x50, 0x27, 0xFB, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00,
0x01, 0xE4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x50, 0x6F, 0x73,
0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x61, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x77, 0x76, 0x70,
0x00, 0x00, 0x00, 0x00
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

20
deps/libvita2d/shader/tetxure_f_gxp.c vendored Normal file
View File

@ -0,0 +1,20 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file texture_f.gxp */
const long int texture_f_gxp_size = 220;
const unsigned char texture_f_gxp[220] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x4D, 0xD2, 0xB7, 0x2A,
0xF5, 0x56, 0x28, 0x8B, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xFA, 0x10, 0x00, 0x00, 0x00, 0x02, 0x04, 0x02, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x65, 0x78, 0x00
};

View File

@ -0,0 +1,24 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file texture_tint_f.gxp */
const long int texture_tint_f_gxp_size = 288;
const unsigned char texture_tint_f_gxp[288] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0xEA, 0xFC, 0xA0, 0xCB,
0x79, 0x0C, 0xE6, 0xA5, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x40, 0x09, 0x00, 0xF8,
0x02, 0x80, 0x99, 0xAF, 0xBC, 0x0D, 0xC0, 0x40, 0x3C, 0x00, 0x04, 0xCF, 0x84, 0x47, 0xA4, 0x08,
0x00, 0xBC, 0x19, 0x20, 0x7E, 0x0D, 0x81, 0x40, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0xE4, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1B, 0x00, 0x00, 0x00, 0x02, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x75, 0x54, 0x69, 0x6E, 0x74, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x74, 0x65, 0x78, 0x00, 0x00
};

28
deps/libvita2d/shader/tetxure_v_gxp.c vendored Normal file
View File

@ -0,0 +1,28 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file texture_v.gxp */
const long int texture_v_gxp_size = 340;
const unsigned char texture_v_gxp[340] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x34, 0x73, 0xC9, 0xAD,
0xE1, 0xC5, 0xBA, 0x45, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x00,
0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xB0, 0x7E, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0x44, 0xFA, 0x80, 0x00, 0x08, 0x83, 0x21, 0x0D, 0x80, 0x38, 0x02, 0x80, 0x81, 0xAF,
0x9C, 0x0D, 0xC0, 0x40, 0x0E, 0x86, 0xB9, 0xFF, 0xBC, 0x0D, 0xC0, 0x40, 0x04, 0x11, 0x49, 0xCF,
0x80, 0x8F, 0xB1, 0x18, 0x02, 0x11, 0x45, 0xCF, 0x80, 0x8F, 0xB1, 0x18, 0x00, 0x11, 0x01, 0xC0,
0x81, 0x81, 0xB1, 0x18, 0x01, 0xD1, 0x42, 0xC0, 0x81, 0x81, 0xB1, 0x18, 0x00, 0x00, 0x20, 0xA0,
0x00, 0x50, 0x27, 0xFB, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
0x01, 0xE4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x50, 0x6F, 0x73,
0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x61, 0x54, 0x65, 0x78, 0x63, 0x6F, 0x6F, 0x72, 0x64, 0x00,
0x77, 0x76, 0x70, 0x00
};

20
deps/libvita2d/shader/texture_f_gxp.c vendored Normal file
View File

@ -0,0 +1,20 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file texture_f.gxp */
const long int texture_f_gxp_size = 220;
const unsigned char texture_f_gxp[220] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0xDC, 0x00, 0x00, 0x00, 0x4D, 0xD2, 0xB7, 0x2A,
0xF5, 0x56, 0x28, 0x8B, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xA0, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xFA, 0x10, 0x00, 0x00, 0x00, 0x02, 0x04, 0x02, 0x00,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x65, 0x78, 0x00
};

View File

@ -0,0 +1,24 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file texture_tint_f.gxp */
const long int texture_tint_f_gxp_size = 288;
const unsigned char texture_tint_f_gxp[288] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x1F, 0x01, 0x00, 0x00, 0xEA, 0xFC, 0xA0, 0xCB,
0x79, 0x0C, 0xE6, 0xA5, 0x01, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xC8, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0xF9, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x40, 0x09, 0x00, 0xF8,
0x02, 0x80, 0x99, 0xAF, 0xBC, 0x0D, 0xC0, 0x40, 0x3C, 0x00, 0x04, 0xCF, 0x84, 0x47, 0xA4, 0x08,
0x00, 0xBC, 0x19, 0x20, 0x7E, 0x0D, 0x81, 0x40, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
0x20, 0x00, 0x00, 0x00, 0x01, 0xE4, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1B, 0x00, 0x00, 0x00, 0x02, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x75, 0x54, 0x69, 0x6E, 0x74, 0x43, 0x6F, 0x6C, 0x6F, 0x72, 0x00, 0x74, 0x65, 0x78, 0x00, 0x00
};

28
deps/libvita2d/shader/texture_v_gxp.c vendored Normal file
View File

@ -0,0 +1,28 @@
/* Generated by bin2c, do not edit manually */
/* Contents of file texture_v.gxp */
const long int texture_v_gxp_size = 340;
const unsigned char texture_v_gxp[340] = {
0x47, 0x58, 0x50, 0x00, 0x01, 0x04, 0x00, 0x00, 0x54, 0x01, 0x00, 0x00, 0x34, 0x73, 0xC9, 0xAD,
0xE1, 0xC5, 0xBA, 0x45, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x09, 0x00, 0x00, 0x00,
0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xB0, 0x7E, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x07, 0x44, 0xFA, 0x80, 0x00, 0x08, 0x83, 0x21, 0x0D, 0x80, 0x38, 0x02, 0x80, 0x81, 0xAF,
0x9C, 0x0D, 0xC0, 0x40, 0x0E, 0x86, 0xB9, 0xFF, 0xBC, 0x0D, 0xC0, 0x40, 0x04, 0x11, 0x49, 0xCF,
0x80, 0x8F, 0xB1, 0x18, 0x02, 0x11, 0x45, 0xCF, 0x80, 0x8F, 0xB1, 0x18, 0x00, 0x11, 0x01, 0xC0,
0x81, 0x81, 0xB1, 0x18, 0x01, 0xD1, 0x42, 0xC0, 0x81, 0x81, 0xB1, 0x18, 0x00, 0x00, 0x20, 0xA0,
0x00, 0x50, 0x27, 0xFB, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
0x01, 0xE4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x50, 0x6F, 0x73,
0x69, 0x74, 0x69, 0x6F, 0x6E, 0x00, 0x61, 0x54, 0x65, 0x78, 0x63, 0x6F, 0x6F, 0x72, 0x64, 0x00,
0x77, 0x76, 0x70, 0x00
};

View File

@ -34,25 +34,25 @@ typedef struct vita2d_display_data {
/* Extern */
extern const SceGxmProgram clear_v_gxp_start;
extern const SceGxmProgram clear_f_gxp_start;
extern const SceGxmProgram color_v_gxp_start;
extern const SceGxmProgram color_f_gxp_start;
extern const SceGxmProgram texture_v_gxp_start;
extern const SceGxmProgram texture_f_gxp_start;
extern const SceGxmProgram texture_tint_f_gxp_start;
extern const SceGxmProgram clear_v_gxp;
extern const SceGxmProgram clear_f_gxp;
extern const SceGxmProgram color_v_gxp;
extern const SceGxmProgram color_f_gxp;
extern const SceGxmProgram texture_v_gxp;
extern const SceGxmProgram texture_f_gxp;
extern const SceGxmProgram texture_tint_f_gxp;
/* Static variables */
static int pgf_module_was_loaded = 0;
static const SceGxmProgram *const clearVertexProgramGxp = &clear_v_gxp_start;
static const SceGxmProgram *const clearFragmentProgramGxp = &clear_f_gxp_start;
static const SceGxmProgram *const colorVertexProgramGxp = &color_v_gxp_start;
static const SceGxmProgram *const colorFragmentProgramGxp = &color_f_gxp_start;
static const SceGxmProgram *const textureVertexProgramGxp = &texture_v_gxp_start;
static const SceGxmProgram *const textureFragmentProgramGxp = &texture_f_gxp_start;
static const SceGxmProgram *const textureTintFragmentProgramGxp = &texture_tint_f_gxp_start;
static const SceGxmProgram *const clearVertexProgramGxp = &clear_v_gxp;
static const SceGxmProgram *const clearFragmentProgramGxp = &clear_f_gxp;
static const SceGxmProgram *const colorVertexProgramGxp = &color_v_gxp;
static const SceGxmProgram *const colorFragmentProgramGxp = &color_f_gxp;
static const SceGxmProgram *const textureVertexProgramGxp = &texture_v_gxp;
static const SceGxmProgram *const textureFragmentProgramGxp = &texture_f_gxp;
static const SceGxmProgram *const textureTintFragmentProgramGxp = &texture_tint_f_gxp;
static int vita2d_initialized = 0;
static float clear_color[4] = {0.0f, 0.0f, 0.0f, 1.0f};

166
diff.diff Normal file
View File

@ -0,0 +1,166 @@
diff --git a/gfx/drivers_context/wgl_ctx.cpp b/gfx/drivers_context/wgl_ctx.cpp
index fc6132d..6c81bcb 100644
--- a/gfx/drivers_context/wgl_ctx.cpp
+++ b/gfx/drivers_context/wgl_ctx.cpp
@@ -81,6 +81,20 @@
#endif
#if defined(HAVE_OPENGL)
+typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC)(HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC)(HDC hdc, INT32 *numerator, INT32 *denominator);
+typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC)(HDC hdc, INT64 traget_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hdc);
+
+static PFNWGLGETEXTENSIONSSTRINGARBPROC wglGetExtensionsStringARB;
+static PFNWGLGETSYNCVALUESOMLPROC wglGetSyncValuesOML;
+static PFNWGLGETMSCRATEOMLPROC wglGetMscRateOML;
+static PFNWGLSWAPBUFFERSMSCOMLPROC wglSwapBuffersMscOML;
+static PFNWGLWAITFORMSCOMLPROC wglWaitForMscOML;
+static PFNWGLWAITFORSBCOMLPROC wglWaitForSbcOML;
+
typedef HGLRC (APIENTRY *wglCreateContextAttribsProc)(HDC, HGLRC, const int*);
static wglCreateContextAttribsProc pcreate_context;
#endif
@@ -91,6 +105,13 @@ static HGLRC win32_hw_hrc;
static HDC win32_hdc;
static bool win32_use_hw_ctx = false;
static bool win32_core_hw_context_enable = false;
+static unsigned g_wgl_swap_mode = 0;
+
+static int g_wgl_divisor = 0;
+static int g_wgl_remainder = 0;
+static int64_t g_wgl_ust = 0;
+static int64_t g_wgl_msc = 0;
+static int64_t g_wgl_sbc = 0;
#ifdef HAVE_VULKAN
static gfx_ctx_vulkan_data_t win32_vk;
@@ -103,6 +124,44 @@ static enum gfx_ctx_api win32_api = GFX_CTX_NONE;
static dylib_t dll_handle = NULL; /* Handle to OpenGL32.dll */
+static unsigned strclen(const unsigned char *s, unsigned char c)
+{
+ unsigned i = 0;
+ while (s + i != NULL && s[i] != '\0' && s[i] != c)
+ i++;
+ return i;
+}
+
+static bool strsame(const unsigned char *a, const unsigned char *b, unsigned n)
+{
+ unsigned i = 0;
+ while (i < n && a + i != NULL && b + i != NULL && a[i] == b[i])
+ i++;
+ return i == n;
+}
+
+static bool wgl_has_extension(HDC hdc, const char *ext)
+{
+ char *end;
+ int len = strlen(ext);
+ char *p = (char*)wglGetExtensionsStringARB(hdc);
+
+ if (p == 0)
+ return false;
+
+ end = p + strlen(p);
+
+ while (p < end)
+ {
+ int n = strclen((const unsigned char*)p, ' ');
+ if (len == n && strsame((const unsigned char*)ext, (const unsigned char*)p, n))
+ return true;
+ p += n+1;
+ }
+
+ return false;
+}
+
static void setup_pixel_format(HDC hdc)
{
PIXELFORMATDESCRIPTOR pfd = {0};
@@ -282,9 +341,7 @@ static void gfx_ctx_wgl_swap_interval(void *data, unsigned interval)
case GFX_CTX_OPENGL_API:
#ifdef HAVE_OPENGL
win32_interval = interval;
- if (!win32_hrc)
- return;
- if (!p_swap_interval)
+ if (!win32_hrc || !p_swap_interval)
return;
RARCH_LOG("[WGL]: wglSwapInterval(%u)\n", win32_interval);
@@ -339,7 +396,19 @@ static void gfx_ctx_wgl_swap_buffers(void *data, video_frame_info_t video_info)
{
case GFX_CTX_OPENGL_API:
#ifdef HAVE_OPENGL
- SwapBuffers(win32_hdc);
+ if (g_wgl_swap_mode)
+ {
+ if (win32_interval)
+ {
+ wglWaitForMscOML(win32_hdc, g_wgl_msc + win32_interval,
+ 0, 0, &g_wgl_ust, &g_wgl_msc, &g_wgl_sbc);
+ wglSwapBuffersMscOML(win32_hdc, 0, 0, 0);
+ }
+ else
+ wglSwapBuffersMscOML(win32_hdc, 0, g_wgl_divisor, g_wgl_remainder);
+ }
+ else
+ SwapBuffers(win32_hdc);
#endif
break;
@@ -439,11 +508,35 @@ static void *gfx_ctx_wgl_init(video_frame_info_t video_info, void *video_driver)
win32_monitor_init();
wndclass.lpfnWndProc = WndProcGL;
+ g_wgl_swap_mode = 0;
if (!win32_window_init(&wndclass, true, NULL))
return NULL;
switch (win32_api)
{
+ case GFX_CTX_OPENGL_API:
+ RARCH_LOG("Testing if extension WGL_OML_sync_control is available...\n");
+ wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)wglGetProcAddress("wglGetExtensionsStringARB");
+
+ if (wgl_has_extension(win32_hdc, "WGL_OML_sync_control"))
+ {
+ RARCH_LOG("WGL_OML_sync_control supported, using better swap control method...\n");
+
+ g_wgl_swap_mode = 1;
+ wglGetSyncValuesOML = (PFNWGLGETSYNCVALUESOMLPROC)
+ wglGetProcAddress("wglGetSyncValuesOML");
+ wglGetMscRateOML = (PFNWGLGETMSCRATEOMLPROC)
+ wglGetProcAddress("wglGetMscRateOML");
+ wglSwapBuffersMscOML = (PFNWGLSWAPBUFFERSMSCOMLPROC)
+ wglGetProcAddress("wglSwapBuffersMscOML");
+ wglWaitForMscOML = (PFNWGLWAITFORMSCOMLPROC)
+ wglGetProcAddress("wglWaitForMscOML");
+ wglWaitForSbcOML = (PFNWGLWAITFORSBCOMLPROC)
+ wglGetProcAddress("wglWaitForSbcOML");
+
+ wglGetSyncValuesOML(win32_hdc, &g_wgl_ust, &g_wgl_msc, &g_wgl_sbc);
+ }
+ break;
case GFX_CTX_VULKAN_API:
#ifdef HAVE_VULKAN
if (!vulkan_context_init(&win32_vk, VULKAN_WSI_WIN32))
@@ -522,6 +615,13 @@ static void gfx_ctx_wgl_destroy(void *data)
win32_major = 0;
win32_minor = 0;
p_swap_interval = NULL;
+
+ g_wgl_swap_mode = 0;
+ g_wgl_divisor = 0;
+ g_wgl_remainder = 0;
+ g_wgl_ust = 0;
+ g_wgl_msc = 0;
+ g_wgl_sbc = 0;
}
static bool gfx_ctx_wgl_set_video_mode(void *data,

View File

@ -117,7 +117,6 @@ for f in `ls -v *_${platform}.${EXT}`; do
fi
fi
rm -rf ${name}_meta.xml
rm -rf $name.png
done

View File

@ -225,7 +225,7 @@ static void driver_adjust_system_rates(void)
if (runloop_ctl(RUNLOOP_CTL_IS_NONBLOCK_FORCED, NULL))
command_event(CMD_EVENT_VIDEO_SET_NONBLOCKING_STATE, NULL);
else
driver_ctl(RARCH_DRIVER_CTL_SET_NONBLOCK_STATE, NULL);
driver_set_nonblock_state();
}
/**
@ -236,7 +236,7 @@ static void driver_adjust_system_rates(void)
* If nonblock state is false, sets
* blocking state for both audio and video drivers instead.
**/
static void driver_set_nonblock_state(void)
void driver_set_nonblock_state(void)
{
bool enable = input_driver_is_nonblock_state();
@ -287,13 +287,13 @@ static bool driver_update_system_av_info(const struct retro_system_av_info *info
}
/**
* init_drivers:
* drivers_init:
* @flags : Bitmask of drivers to initialize.
*
* Initializes drivers.
* @flags determines which drivers get initialized.
**/
static void init_drivers(int flags)
void drivers_init(int flags)
{
if (flags & DRIVER_VIDEO_MASK)
video_driver_unset_own_driver();
@ -360,7 +360,7 @@ static void init_drivers(int flags)
{
/* Keep non-throttled state as good as possible. */
if (input_driver_is_nonblock_state())
driver_ctl(RARCH_DRIVER_CTL_SET_NONBLOCK_STATE, NULL);
driver_set_nonblock_state();
}
}
@ -453,19 +453,6 @@ bool driver_ctl(enum driver_ctl_state state, void *data)
int flags = DRIVERS_CMD_ALL;
return driver_ctl(RARCH_DRIVER_CTL_UNINIT, &flags);
}
case RARCH_DRIVER_CTL_INIT:
{
int *flags = (int*)data;
if (!flags)
return false;
init_drivers(*flags);
}
break;
case RARCH_DRIVER_CTL_INIT_ALL:
{
int flags = DRIVERS_CMD_ALL;
return driver_ctl(RARCH_DRIVER_CTL_INIT, &flags);
}
case RARCH_DRIVER_CTL_INIT_PRE:
audio_driver_find_driver();
video_driver_find_driver();
@ -485,9 +472,6 @@ bool driver_ctl(enum driver_ctl_state state, void *data)
driver_adjust_system_rates();
}
break;
case RARCH_DRIVER_CTL_SET_NONBLOCK_STATE:
driver_set_nonblock_state();
break;
case RARCH_DRIVER_CTL_UPDATE_SYSTEM_AV_INFO:
{
const struct retro_system_av_info **info = (const struct retro_system_av_info**)data;

View File

@ -72,13 +72,6 @@ enum driver_ctl_state
RARCH_DRIVER_CTL_UNINIT_ALL,
/* Initializes drivers.
* @data is a bitmask which determines
* which drivers get initialized. */
RARCH_DRIVER_CTL_INIT,
RARCH_DRIVER_CTL_INIT_ALL,
/* Attempts to find a default driver for
* all driver types.
*
@ -91,12 +84,6 @@ enum driver_ctl_state
* calls audio_monitor_set_refresh_rate(). */
RARCH_DRIVER_CTL_SET_REFRESH_RATE,
/* Sets audio and video drivers to nonblock state.
*
* If nonblock state is false, sets blocking state for both
* audio and video drivers instead. */
RARCH_DRIVER_CTL_SET_NONBLOCK_STATE,
/* Update the system Audio/Video information.
* Will reinitialize audio/video drivers.
* Used by RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO. */
@ -122,6 +109,14 @@ typedef struct driver_ctx_info
bool driver_ctl(enum driver_ctl_state state, void *data);
/* Sets audio and video drivers to nonblock state.
*
* If nonblock state is false, sets blocking state for both
* audio and video drivers instead. */
void driver_set_nonblock_state(void);
void drivers_init(int flags);
RETRO_END_DECLS
#endif

View File

@ -252,6 +252,7 @@ static bool load_dynamic_core(void)
RARCH_ERR("Error(s): %s\n", dylib_error());
runloop_msg_queue_push(msg_hash_to_str(MSG_FAILED_TO_OPEN_LIBRETRO_CORE), 1, 180, true);
retroarch_fail(1, "load_dynamic_core()");
return false;
}

View File

@ -285,7 +285,7 @@ void fill_pathname_application_path(char *s, size_t len)
#endif
#ifdef HAVE_XMB
const char *xmb_theme_ident(void);
const char* xmb_theme_ident(void);
#endif
void fill_pathname_application_special(char *s, size_t len, enum application_special_type type)

View File

@ -53,6 +53,7 @@ enum file_path_enum
FILE_PATH_LAKKA_URL,
FILE_PATH_CORE_THUMBNAILS_URL,
FILE_PATH_INDEX_DIRS_URL,
FILE_PATH_NETPLAY_ROOM_LIST_URL,
FILE_PATH_INDEX_URL,
FILE_PATH_INDEX_EXTENDED_URL,
FILE_PATH_CGP_EXTENSION,

View File

@ -101,6 +101,8 @@ const char *file_path_str(enum file_path_enum enum_idx)
return ".index-dirs";
case FILE_PATH_INDEX_EXTENDED_URL:
return ".index-extended";
case FILE_PATH_NETPLAY_ROOM_LIST_URL:
return "registry.lpl";
case FILE_PATH_CORE_THUMBNAILS_URL:
return "http://thumbnailpacks.libretro.com";
case FILE_PATH_LAKKA_URL:

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Jason Fetters
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
@ -14,13 +14,13 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#include "../frontend_driver.h"
#include <stdint.h>
#include <string.h>
#include <signal.h>
#include <stdlib.h>
#include "../frontend_driver.h"
static volatile sig_atomic_t bsd_sighandler_quit;
static void frontend_bsd_sighandler(int sig)

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2014-2016 - Ali Bouhlel
* Copyright (C) 2014-2017 - Ali Bouhlel
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -32,7 +33,6 @@
#endif
#include "../frontend_driver.h"
#include "../../configuration.h"
#include "../../verbosity.h"
#include "../../defaults.h"
#include "../../paths.h"

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2014 - Jason Fetters
* Copyright (C) 2014-2015 - Jay McCarthy
*

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2015 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Jason Fetters
* Copyright (C) 2012-2015 - Michael Lelli
*
@ -54,7 +54,6 @@
#include "../frontend.h"
#include "../frontend_driver.h"
#include "../../configuration.h"
#include "../../defaults.h"
#include "../../retroarch.h"
#include "../../verbosity.h"

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -1,7 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2012-2015 - Jason Fetters
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -23,7 +23,6 @@
#endif
#ifdef VITA
#include <psp2/moduleinfo.h>
#include <psp2/power.h>
#include <psp2/sysmodule.h>
#include <psp2/appmgr.h>
@ -39,16 +38,23 @@
#include <pspsdk.h>
#endif
#include <string/stdstring.h>
#include <boolean.h>
#include <file/file_path.h>
#ifndef IS_SALAMANDER
#include <lists/file_list.h>
#endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../frontend_driver.h"
#include "../../defaults.h"
#include "../../file_path_special.h"
#include "../../defines/psp_defines.h"
#include "../../retroarch.h"
#include "../../paths.h"
#include "../../verbosity.h"
#if defined(HAVE_KERNEL_PRX) || defined(IS_SALAMANDER)
@ -57,9 +63,7 @@
#endif
#endif
#ifdef VITA
PSP2_MODULE_INFO(0, 0, "RetroArch");
#else
#ifndef VITA
PSP_MODULE_INFO("RetroArch", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER|THREAD_ATTR_VFPU);
#ifdef BIG_STACK

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-

View File

@ -1,6 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
* Copyright (C) 2012-2015 - Michael Lelli
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms

View File

@ -1,5 +1,6 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2014-2016 - Ali Bouhlel
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -25,7 +26,6 @@
#include "../frontend_driver.h"
#include "../frontend.h"
#include "../../configuration.h"
#include "../../verbosity.h"
#include "../../defaults.h"
#include "../../paths.h"
@ -49,6 +49,7 @@
#include <proc_ui/procui.h>
#include <vpad/input.h>
#include <sysapp/launch.h>
#include <padscore.h>
#include <fat.h>
#include <iosuhax.h>
@ -279,6 +280,9 @@ int main(int argc, char **argv)
devoptab_list[STD_ERR] = &dotab_stdout;
#endif
VPADInit();
WPADEnableURCC(true);
WPADEnableWiiRemote(true);
KPADInit();
verbosity_enable();
DEBUG_VAR(argc);

View File

@ -1,5 +1,5 @@
/* RetroArch - A frontend for libretro.
* Copyright (C) 2011-2016 - Daniel De Matteis
* Copyright (C) 2011-2017 - Daniel De Matteis
*
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
@ -311,24 +311,40 @@ static void frontend_win32_environment_get(int *argc, char *argv[],
static uint64_t frontend_win32_get_mem_total(void)
{
/* OSes below 2000 don't have the Ex version, and non-Ex cannot work with >4GB RAM */
#if _WIN32_WINNT > 0x0400
MEMORYSTATUSEX mem_info;
mem_info.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&mem_info);
return mem_info.ullTotalPhys;
#else
MEMORYSTATUS mem_info;
mem_info.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&mem_info);
return mem_info.dwTotalPhys;
#endif
}
static uint64_t frontend_win32_get_mem_used(void)
{
/* OSes below 2000 don't have the Ex version, and non-Ex cannot work with >4GB RAM */
#if _WIN32_WINNT > 0x0400
MEMORYSTATUSEX mem_info;
mem_info.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&mem_info);
return ((frontend_win32_get_mem_total() - mem_info.ullAvailPhys));
#else
MEMORYSTATUS mem_info;
mem_info.dwLength = sizeof(MEMORYSTATUS);
GlobalMemoryStatus(&mem_info);
return ((frontend_win32_get_mem_total() - mem_info.dwAvailPhys));
#endif
}
static void frontend_win32_attach_console(void)
{
#ifdef _WIN32
#if(_WIN32_WINNT >= 0x0500)
#ifdef _WIN32_WINNT_WINXP
if (!AttachConsole(ATTACH_PARENT_PROCESS))
{
AllocConsole();
@ -343,7 +359,7 @@ static void frontend_win32_attach_console(void)
static void frontend_win32_detach_console(void)
{
#if defined(_WIN32) && !defined(_XBOX)
#if(_WIN32_WINNT >= 0x0500)
#ifdef _WIN32_WINNT_WINXP
if (!AttachConsole(ATTACH_PARENT_PROCESS))
{
HWND wnd = GetConsoleWindow();

Some files were not shown because too many files have changed in this diff Show More