mirror of
https://github.com/libretro/RetroArch
synced 2025-03-23 19:21:03 +00:00
Merge branch 'master' into master
This commit is contained in:
commit
0e542037d8
35
.github/ISSUE_TEMPLATE.md
vendored
Normal file
35
.github/ISSUE_TEMPLATE.md
vendored
Normal 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
3
.gitignore
vendored
@ -65,6 +65,9 @@ menu/driverspzarch.c
|
||||
# Ctags
|
||||
/tags
|
||||
|
||||
# CLion
|
||||
/cmake-build-debug/
|
||||
|
||||
# Android
|
||||
/pkg/android/phoenix/obj/
|
||||
/pkg/android/phoenix/assets/
|
||||
|
5
Makefile
5
Makefile
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
198
Makefile.vita
Normal 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)
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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-
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 */
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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;
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
59
command.c
59
command.c
@ -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;
|
||||
|
@ -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. */
|
||||
|
@ -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
|
||||
|
@ -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
2
core.h
@ -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);
|
||||
|
||||
|
14
core_impl.c
14
core_impl.c
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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
21
deps/libvita2d/shader/clear_f_gxp.c
vendored
Normal 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
23
deps/libvita2d/shader/clear_v_gxp.c
vendored
Normal 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
19
deps/libvita2d/shader/color_f_gxp.c
vendored
Normal 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
28
deps/libvita2d/shader/color_v_gxp.c
vendored
Normal 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
|
||||
};
|
BIN
deps/libvita2d/shader/compiled/clear_f_gxp.o
vendored
BIN
deps/libvita2d/shader/compiled/clear_f_gxp.o
vendored
Binary file not shown.
BIN
deps/libvita2d/shader/compiled/clear_v_gxp.o
vendored
BIN
deps/libvita2d/shader/compiled/clear_v_gxp.o
vendored
Binary file not shown.
BIN
deps/libvita2d/shader/compiled/color_f_gxp.o
vendored
BIN
deps/libvita2d/shader/compiled/color_f_gxp.o
vendored
Binary file not shown.
BIN
deps/libvita2d/shader/compiled/color_v_gxp.o
vendored
BIN
deps/libvita2d/shader/compiled/color_v_gxp.o
vendored
Binary file not shown.
BIN
deps/libvita2d/shader/compiled/texture_f_gxp.o
vendored
BIN
deps/libvita2d/shader/compiled/texture_f_gxp.o
vendored
Binary file not shown.
BIN
deps/libvita2d/shader/compiled/texture_tint_f_gxp.o
vendored
BIN
deps/libvita2d/shader/compiled/texture_tint_f_gxp.o
vendored
Binary file not shown.
BIN
deps/libvita2d/shader/compiled/texture_v_gxp.o
vendored
BIN
deps/libvita2d/shader/compiled/texture_v_gxp.o
vendored
Binary file not shown.
20
deps/libvita2d/shader/tetxure_f_gxp.c
vendored
Normal file
20
deps/libvita2d/shader/tetxure_f_gxp.c
vendored
Normal 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
|
||||
};
|
24
deps/libvita2d/shader/tetxure_tint_f_gxp.c
vendored
Normal file
24
deps/libvita2d/shader/tetxure_tint_f_gxp.c
vendored
Normal 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
28
deps/libvita2d/shader/tetxure_v_gxp.c
vendored
Normal 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
20
deps/libvita2d/shader/texture_f_gxp.c
vendored
Normal 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
|
||||
};
|
24
deps/libvita2d/shader/texture_tint_f_gxp.c
vendored
Normal file
24
deps/libvita2d/shader/texture_tint_f_gxp.c
vendored
Normal 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
28
deps/libvita2d/shader/texture_v_gxp.c
vendored
Normal 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
|
||||
};
|
28
deps/libvita2d/source/vita2d.c
vendored
28
deps/libvita2d/source/vita2d.c
vendored
@ -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
166
diff.diff
Normal 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,
|
@ -117,7 +117,6 @@ for f in `ls -v *_${platform}.${EXT}`; do
|
||||
fi
|
||||
fi
|
||||
rm -rf ${name}_meta.xml
|
||||
rm -rf $name.png
|
||||
|
||||
done
|
||||
|
||||
|
26
driver.c
26
driver.c
@ -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;
|
||||
|
21
driver.h
21
driver.h
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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-
|
||||
|
@ -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-
|
||||
|
@ -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
|
||||
|
@ -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-
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user