diff --git a/src/libretro/Makefile b/src/libretro/Makefile index 56e58808..8d4bbb99 100644 --- a/src/libretro/Makefile +++ b/src/libretro/Makefile @@ -1,6 +1,7 @@ TILED_RENDERING=0 STATIC_LINKING=0 FRONTEND_SUPPORTS_RGB565=1 +NO_LINK=0 SPACE := SPACE := $(SPACE) $(SPACE) @@ -259,12 +260,16 @@ include Makefile.common OBJS := $(SOURCES_CXX:.cpp=.o) -VBA_DEFINES += -D__LIBRETRO__ -DFINAL_VERSION -DC_CORE -DNO_LINK -DNO_DEBUGGER +VBA_DEFINES += -D__LIBRETRO__ -DFINAL_VERSION -DC_CORE -DNO_DEBUGGER ifeq ($(FRONTEND_SUPPORTS_RGB565),1) VBA_DEFINES += -DFRONTEND_SUPPORTS_RGB565 endif +ifeq ($(NO_LINK),1) +VBA_DEFINES += -DNO_LINK +endif + ifneq ($(SANITIZER),) CFLAGS += -fsanitize=$(SANITIZER) CXXFLAGS += -fsanitize=$(SANITIZER) diff --git a/src/libretro/libretro.cpp b/src/libretro/libretro.cpp index 51a5a385..05c89aa2 100644 --- a/src/libretro/libretro.cpp +++ b/src/libretro/libretro.cpp @@ -80,6 +80,49 @@ int emulating = 0; void (*dbgOutput)(const char* s, uint32_t addr); void (*dbgSignal)(int sig, int number); +// Dummy vars/funcs for serial io emulation without LINK communication related stuff +#ifndef NO_LINK +#include "../gba/GBALink.h" +uint8_t gbSIO_SC; +bool LinkIsWaiting; +bool LinkFirstTime; +bool EmuReseted; +int winGbPrinterEnabled; +bool gba_joybus_active = false; + +LinkMode GetLinkMode() +{ + return LINK_DISCONNECTED; +} + +void StartGPLink(uint16_t value) +{ +} + +void LinkUpdate(int ticks) +{ +} + +void StartLink(uint16_t siocnt) +{ +} + +void CheckLinkConnection() +{ +} + +void gbInitLink() +{ + LinkIsWaiting = false; + LinkFirstTime = true; +} + +uint16_t gbLinkUpdate(uint8_t b, int gbSerialOn) //used on external clock +{ + return (b << 8); +} +#endif + #define GS555(x) (x | (x << 5) | (x << 10)) uint16_t systemGbPalette[24] = { GS555(0x1f), GS555(0x15), GS555(0x0c), 0,