libretro: Fix GB games that uses serial (WIP)
Allow serial emulation without having the need to run link-related communication stuff (NO_LINK define). Some games need this e.g. RC Pro-AM racing. Dummy funcs/vars are added as placeholders. Currently work-in-progress and might need to disable some more NO_LINK sections.
This commit is contained in:
parent
af3fe01822
commit
f9efb79a7d
|
@ -1,6 +1,7 @@
|
||||||
TILED_RENDERING=0
|
TILED_RENDERING=0
|
||||||
STATIC_LINKING=0
|
STATIC_LINKING=0
|
||||||
FRONTEND_SUPPORTS_RGB565=1
|
FRONTEND_SUPPORTS_RGB565=1
|
||||||
|
NO_LINK=0
|
||||||
|
|
||||||
SPACE :=
|
SPACE :=
|
||||||
SPACE := $(SPACE) $(SPACE)
|
SPACE := $(SPACE) $(SPACE)
|
||||||
|
@ -259,12 +260,16 @@ include Makefile.common
|
||||||
|
|
||||||
OBJS := $(SOURCES_CXX:.cpp=.o)
|
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)
|
ifeq ($(FRONTEND_SUPPORTS_RGB565),1)
|
||||||
VBA_DEFINES += -DFRONTEND_SUPPORTS_RGB565
|
VBA_DEFINES += -DFRONTEND_SUPPORTS_RGB565
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(NO_LINK),1)
|
||||||
|
VBA_DEFINES += -DNO_LINK
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(SANITIZER),)
|
ifneq ($(SANITIZER),)
|
||||||
CFLAGS += -fsanitize=$(SANITIZER)
|
CFLAGS += -fsanitize=$(SANITIZER)
|
||||||
CXXFLAGS += -fsanitize=$(SANITIZER)
|
CXXFLAGS += -fsanitize=$(SANITIZER)
|
||||||
|
|
|
@ -80,6 +80,49 @@ int emulating = 0;
|
||||||
void (*dbgOutput)(const char* s, uint32_t addr);
|
void (*dbgOutput)(const char* s, uint32_t addr);
|
||||||
void (*dbgSignal)(int sig, int number);
|
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))
|
#define GS555(x) (x | (x << 5) | (x << 10))
|
||||||
uint16_t systemGbPalette[24] = {
|
uint16_t systemGbPalette[24] = {
|
||||||
GS555(0x1f), GS555(0x15), GS555(0x0c), 0,
|
GS555(0x1f), GS555(0x15), GS555(0x0c), 0,
|
||||||
|
|
Loading…
Reference in New Issue