libretro patch (twinaphex)
This commit is contained in:
parent
6f58f95083
commit
0ac7bcd353
|
@ -1,6 +1,7 @@
|
|||
DEBUG = 0
|
||||
LIBRETRO_OPTIMIZATIONS = 1
|
||||
FRONTEND_SUPPORTS_RGB565 = 1
|
||||
HAVE_GRIFFIN = 0
|
||||
|
||||
ifeq ($(platform),)
|
||||
platform = unix
|
||||
|
@ -35,6 +36,7 @@ FBA_LIB_DIR := $(MAIN_FBA_DIR)/dep/libs
|
|||
FBA_INTERFACE_DIR := $(MAIN_FBA_DIR)/intf
|
||||
FBA_GENERATED_DIR = $(MAIN_FBA_DIR)/dep/generated
|
||||
FBA_SCRIPTS_DIR = $(MAIN_FBA_DIR)/dep/scripts
|
||||
GRIFFIN_DIR = griffin-libretro
|
||||
|
||||
EXTERNAL_ZLIB = 0
|
||||
|
||||
|
@ -157,26 +159,38 @@ BURN_BLACKLIST += $(FBA_BURNER_DIR)/unzip.c \
|
|||
$(FBA_BURNER_DIR)/ioapi.c
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_GRIFFIN), 1)
|
||||
GRIFFIN_CXXSRCFILES := $(GRIFFIN_DIR)/cps12.cpp $(GRIFFIN_DIR)/cps3.cpp $(GRIFFIN_DIR)/neogeo.cpp $(GRIFFIN_DIR)/pgm.cpp $(GRIFFIN_DIR)/snes.cpp $(GRIFFIN_DIR)/galaxian.cpp $(GRIFFIN_DIR)/cpu-m68k.cpp
|
||||
BURN_BLACKLIST += $(FBA_CPU_DIR)/m68000_intf.cpp
|
||||
else
|
||||
CPS2_DIR := $(FBA_BURN_DRIVERS_DIR)/capcom
|
||||
CPS3_DIR := $(FBA_BURN_DRIVERS_DIR)/cps3
|
||||
GALAXIAN_DIR := $(FBA_BURN_DRIVERS_DIR)/galaxian
|
||||
NEOGEO_DIR := $(FBA_BURN_DRIVERS_DIR)/neogeo
|
||||
PGM_DIR := $(FBA_BURN_DRIVERS_DIR)/pgm
|
||||
SNES_DIR := $(FBA_BURN_DRIVERS_DIR)/snes
|
||||
M68K_DIR := $(FBA_CPU_DIR)/m68k
|
||||
endif
|
||||
|
||||
FBA_BURN_DIRS := $(FBA_BURN_DIR) \
|
||||
$(FBA_BURN_DIR)/devices \
|
||||
$(FBA_BURN_DIR)/snd \
|
||||
$(FBA_BURN_DRIVERS_DIR)/capcom \
|
||||
$(CPS2_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/cave \
|
||||
$(FBA_BURN_DRIVERS_DIR)/cps3 \
|
||||
$(CPS3_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/dataeast \
|
||||
$(FBA_BURN_DRIVERS_DIR)/galaxian \
|
||||
$(GALAXIAN_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/irem \
|
||||
$(FBA_BURN_DRIVERS_DIR)/konami \
|
||||
$(FBA_BURN_DRIVERS_DIR)/megadrive \
|
||||
$(FBA_BURN_DRIVERS_DIR)/neogeo \
|
||||
$(NEOGEO_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pce \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pgm \
|
||||
$(PGM_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pre90s \
|
||||
$(FBA_BURN_DRIVERS_DIR)/psikyo \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pst90s \
|
||||
$(FBA_BURN_DRIVERS_DIR)/sega \
|
||||
$(FBA_BURN_DRIVERS_DIR)/snes \
|
||||
$(SNES_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/taito \
|
||||
$(FBA_BURN_DRIVERS_DIR)/toaplan
|
||||
|
||||
|
@ -187,7 +201,7 @@ FBA_CPU_DIRS := $(FBA_CPU_DIR) \
|
|||
$(FBA_CPU_DIR)/hd6309 \
|
||||
$(FBA_CPU_DIR)/i8039 \
|
||||
$(FBA_CPU_DIR)/konami \
|
||||
$(FBA_CPU_DIR)/m68k \
|
||||
$(M68K_DIR) \
|
||||
$(FBA_CPU_DIR)/m6502 \
|
||||
$(FBA_CPU_DIR)/m6800 \
|
||||
$(FBA_CPU_DIR)/m6805 \
|
||||
|
@ -201,13 +215,14 @@ FBA_LIB_DIRS := $(FBA_LIB_DIR)/zlib
|
|||
|
||||
FBA_SRC_DIRS := $(FBA_BURNER_DIR) $(FBA_BURN_DIRS) $(FBA_CPU_DIRS) $(FBA_BURNER_DIRS)
|
||||
|
||||
|
||||
ifeq ($(EXTERNAL_ZLIB), 1)
|
||||
FBA_DEFINES += -DEXTERNAL_ZLIB
|
||||
else
|
||||
FBA_SRC_DIRS += $(FBA_LIB_DIRS)
|
||||
endif
|
||||
|
||||
FBA_CXXSRCS := $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.cpp)))
|
||||
FBA_CXXSRCS := $(GRIFFIN_CXXSRCFILES) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.cpp)))
|
||||
FBA_CXXSRCS += $(LIBRETRO_DIR)/libretro.cpp $(LIBRETRO_DIR)/neocdlist.cpp
|
||||
FBA_CXXOBJ := $(FBA_CXXSRCS:.cpp=.o)
|
||||
FBA_CSRCS := $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.c)))
|
||||
|
|
|
@ -1,22 +1,10 @@
|
|||
CYCLONE_ENABLED := 0
|
||||
HAVE_GRIFFIN := 0
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
ifeq ($(TARGET_ARCH),arm)
|
||||
LOCAL_CXXFLAGS += -DANDROID_ARM
|
||||
LOCAL_ARM_MODE := arm
|
||||
LOCAL_C_FLAGS += -fuse-ld=gold
|
||||
LOCAL_CPP_FLAGS+= -fuse-ld=gold
|
||||
LOCAL_LDLIBS := -fuse-ld=gold
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_CXXFLAGS += -DANDROID_X86
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ARCH),mips)
|
||||
LOCAL_CXXFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__
|
||||
endif
|
||||
|
||||
MAIN_FBA_DIR := ../../../src
|
||||
FBA_BURN_DIR := $(MAIN_FBA_DIR)/burn
|
||||
|
@ -28,6 +16,27 @@ FBA_LIB_DIR := $(MAIN_FBA_DIR)/dep/libs
|
|||
FBA_INTERFACE_DIR := $(MAIN_FBA_DIR)/intf
|
||||
FBA_GENERATED_DIR = $(MAIN_FBA_DIR)/dep/generated
|
||||
FBA_SCRIPTS_DIR = $(MAIN_FBA_DIR)/dep/scripts
|
||||
GRIFFIN_DIR := ../../../griffin-libretro
|
||||
|
||||
ifeq ($(TARGET_ARCH),arm)
|
||||
LOCAL_CXXFLAGS += -DANDROID_ARM
|
||||
LOCAL_ARM_MODE := arm
|
||||
LOCAL_C_FLAGS += -fuse-ld=gold
|
||||
LOCAL_CPP_FLAGS+= -fuse-ld=gold
|
||||
LOCAL_LDLIBS := -fuse-ld=gold
|
||||
ifeq ($(CYCLONE_ENABLED), 1)
|
||||
CYCLONE_SRC := $(FBA_CPU_DIR)/cyclone/cyclone.s
|
||||
CYCLONE_DEFINES := -DBUILD_C68K
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ARCH),x86)
|
||||
LOCAL_CXXFLAGS += -DANDROID_X86
|
||||
endif
|
||||
|
||||
ifeq ($(TARGET_ARCH),mips)
|
||||
LOCAL_CXXFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__
|
||||
endif
|
||||
|
||||
BURN_BLACKLIST := $(FBA_BURNER_DIR)/un7z.cpp \
|
||||
$(FBA_CPU_DIR)/arm7/arm7exec.c \
|
||||
|
@ -66,25 +75,39 @@ BURN_BLACKLIST := $(FBA_BURNER_DIR)/un7z.cpp \
|
|||
$(FBA_CPU_DIR)/nec/necinstr.c \
|
||||
$(FBA_BURN_DIR)/drv/capcom/ctv_make.cpp
|
||||
|
||||
ifeq ($(HAVE_GRIFFIN), 1)
|
||||
GRIFFIN_CXX_SRC_FILES := $(GRIFFIN_DIR)/cps12.cpp $(GRIFFIN_DIR)/cps3.cpp $(GRIFFIN_DIR)/neogeo.cpp $(GRIFFIN_DIR)/pgm.cpp $(GRIFFIN_DIR)/snes.cpp $(GRIFFIN_DIR)/galaxian.cpp
|
||||
GRIFFIN_CXX_SRC_FILES += $(GRIFFIN_DIR)/cpu-m68k.cpp
|
||||
BURN_BLACKLIST += $(FBA_CPU_DIR)/m68000_intf.cpp
|
||||
else
|
||||
CPS2_DIR := $(FBA_BURN_DRIVERS_DIR)/capcom
|
||||
CPS3_DIR := $(FBA_BURN_DRIVERS_DIR)/cps3
|
||||
GALAXIAN_DIR := $(FBA_BURN_DRIVERS_DIR)/galaxian
|
||||
NEOGEO_DIR := $(FBA_BURN_DRIVERS_DIR)/neogeo
|
||||
PGM_DIR := $(FBA_BURN_DRIVERS_DIR)/pgm
|
||||
SNES_DIR := $(FBA_BURN_DRIVERS_DIR)/snes
|
||||
M68K_DIR := $(FBA_CPU_DIR)/m68k
|
||||
endif
|
||||
|
||||
FBA_BURN_DIRS := $(FBA_BURN_DIR) \
|
||||
$(FBA_BURN_DIR)/devices \
|
||||
$(FBA_BURN_DIR)/snd \
|
||||
$(FBA_BURN_DRIVERS_DIR)/capcom \
|
||||
$(CPS2_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/cave \
|
||||
$(FBA_BURN_DRIVERS_DIR)/cps3 \
|
||||
$(CPS3_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/dataeast \
|
||||
$(FBA_BURN_DRIVERS_DIR)/galaxian \
|
||||
$(GALAXIAN_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/irem \
|
||||
$(FBA_BURN_DRIVERS_DIR)/konami \
|
||||
$(FBA_BURN_DRIVERS_DIR)/megadrive \
|
||||
$(FBA_BURN_DRIVERS_DIR)/neogeo \
|
||||
$(NEOGEO_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pce \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pgm \
|
||||
$(PGM_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pre90s \
|
||||
$(FBA_BURN_DRIVERS_DIR)/psikyo \
|
||||
$(FBA_BURN_DRIVERS_DIR)/pst90s \
|
||||
$(FBA_BURN_DRIVERS_DIR)/sega \
|
||||
$(FBA_BURN_DRIVERS_DIR)/snes \
|
||||
$(SNES_DIR) \
|
||||
$(FBA_BURN_DRIVERS_DIR)/taito \
|
||||
$(FBA_BURN_DRIVERS_DIR)/toaplan
|
||||
|
||||
|
@ -95,7 +118,7 @@ FBA_CPU_DIRS := $(FBA_CPU_DIR) \
|
|||
$(FBA_CPU_DIR)/hd6309 \
|
||||
$(FBA_CPU_DIR)/i8039 \
|
||||
$(FBA_CPU_DIR)/konami \
|
||||
$(FBA_CPU_DIR)/m68k \
|
||||
$(M68K_DIR) \
|
||||
$(FBA_CPU_DIR)/m6502 \
|
||||
$(FBA_CPU_DIR)/m6800 \
|
||||
$(FBA_CPU_DIR)/m6805 \
|
||||
|
@ -105,17 +128,16 @@ FBA_CPU_DIRS := $(FBA_CPU_DIR) \
|
|||
$(FBA_CPU_DIR)/sh2 \
|
||||
$(FBA_CPU_DIR)/z80
|
||||
|
||||
FBA_LIB_DIRS := $(FBA_LIB_DIR)/zlib
|
||||
|
||||
FBA_SRC_DIRS := $(FBA_BURNER_DIR) $(FBA_BURN_DIRS) $(FBA_CPU_DIRS) $(FBA_BURNER_DIRS) $(FBA_LIB_DIRS)
|
||||
FBA_SRC_DIRS := $(FBA_BURNER_DIR) $(FBA_BURN_DIRS) $(FBA_CPU_DIRS) $(FBA_BURNER_DIRS)
|
||||
|
||||
LOCAL_MODULE := libretro
|
||||
|
||||
LOCAL_SRC_FILES := $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.cpp))) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.c))) $(LIBRETRO_DIR)/libretro.cpp $(LIBRETRO_DIR)/neocdlist.cpp
|
||||
|
||||
|
||||
LOCAL_CXXFLAGS += -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565
|
||||
LOCAL_CFLAGS = -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565
|
||||
LOCAL_SRC_FILES := $(GRIFFIN_CXX_SRC_FILES) $(CYCLONE_SRC) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.cpp))) $(filter-out $(BURN_BLACKLIST),$(foreach dir,$(FBA_SRC_DIRS),$(wildcard $(dir)/*.c))) $(LIBRETRO_DIR)/libretro.cpp $(LIBRETRO_DIR)/neocdlist.cpp
|
||||
|
||||
LOCAL_CXXFLAGS += -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565 $(CYCLONE_DEFINES)
|
||||
LOCAL_CFLAGS = -O3 -fno-stack-protector -DUSE_SPEEDHACKS -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DLSB_FIRST -D__LIBRETRO__ -Wno-write-strings -DUSE_FILE32API -DANDROID -DFRONTEND_SUPPORTS_RGB565 $(CYCLONE_DEFINES)
|
||||
|
||||
LOCAL_C_INCLUDES = $(FBA_BURNER_DIR)/win32 \
|
||||
$(LIBRETRO_DIR) \
|
||||
|
@ -142,4 +164,6 @@ LOCAL_C_INCLUDES = $(FBA_BURNER_DIR)/win32 \
|
|||
$(FBA_GENERATED_DIR) \
|
||||
$(FBA_LIB_DIR)
|
||||
|
||||
LOCAL_LDLIBS += -lz
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
|
|
@ -31,11 +31,11 @@ static std::vector<std::string> g_find_list_path;
|
|||
static ROMFIND g_find_list[1024];
|
||||
static unsigned g_rom_count;
|
||||
|
||||
#define AUDIO_SAMPLERATE 32000
|
||||
#define AUDIO_SEGMENT_LENGTH 534 // <-- Hardcoded value that corresponds well to 32kHz audio.
|
||||
#define AUDIO_SEGMENT_LENGTH_TIMES_CHANNELS (534 * 2)
|
||||
|
||||
static uint16_t g_fba_frame[1024 * 1024];
|
||||
static int16_t g_audio_buf[AUDIO_SEGMENT_LENGTH_TIMES_CHANNELS];
|
||||
static int16_t g_audio_buf[AUDIO_SEGMENT_LENGTH * 2];
|
||||
|
||||
// libretro globals
|
||||
|
||||
|
@ -57,7 +57,7 @@ static bool driver_inited;
|
|||
void retro_get_system_info(struct retro_system_info *info)
|
||||
{
|
||||
info->library_name = "FB Alpha";
|
||||
info->library_version = "v0.2.97.27";
|
||||
info->library_version = "v0.2.97.28";
|
||||
info->need_fullpath = true;
|
||||
info->block_extract = true;
|
||||
info->valid_extensions = "iso|ISO|zip|ZIP";
|
||||
|
@ -339,8 +339,8 @@ void retro_run()
|
|||
|
||||
nBurnLayer = 0xff;
|
||||
pBurnSoundOut = g_audio_buf;
|
||||
nBurnSoundRate = 32000;
|
||||
nBurnSoundLen = AUDIO_SEGMENT_LENGTH;
|
||||
nBurnSoundRate = AUDIO_SAMPLERATE;
|
||||
//nBurnSoundLen = AUDIO_SEGMENT_LENGTH;
|
||||
nCurrentFrame++;
|
||||
|
||||
|
||||
|
@ -357,7 +357,7 @@ void retro_run()
|
|||
nBurnPitch = width * sizeof(uint16_t);
|
||||
|
||||
video_cb(g_fba_frame, width, height, nBurnPitch);
|
||||
audio_batch_cb(g_audio_buf, AUDIO_SEGMENT_LENGTH);
|
||||
audio_batch_cb(g_audio_buf, nBurnSoundLen);
|
||||
}
|
||||
|
||||
static uint8_t *write_state_ptr;
|
||||
|
@ -428,7 +428,7 @@ void retro_get_system_av_info(struct retro_system_av_info *info)
|
|||
int maximum = width > height ? width : height;
|
||||
struct retro_game_geometry geom = { width, height, maximum, maximum };
|
||||
|
||||
struct retro_system_timing timing = { 60.0, 60.0 * AUDIO_SEGMENT_LENGTH };
|
||||
struct retro_system_timing timing = { (nBurnFPS / 100.0), (nBurnFPS / 100.0) * AUDIO_SEGMENT_LENGTH };
|
||||
|
||||
info->geometry = geom;
|
||||
info->timing = timing;
|
||||
|
@ -497,22 +497,6 @@ int VidRecalcPal()
|
|||
|
||||
static void init_video()
|
||||
{
|
||||
nBurnBpp = 2;
|
||||
VidRecalcPal();
|
||||
#if 0
|
||||
#ifdef FRONTEND_SUPPORTS_RGB565
|
||||
BurnHighCol = HighCol16;
|
||||
#else
|
||||
BurnHighCol = HighCol15;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static void init_audio()
|
||||
{
|
||||
pBurnSoundOut = g_audio_buf;
|
||||
nBurnSoundRate = 32000;
|
||||
nBurnSoundLen = AUDIO_SEGMENT_LENGTH;
|
||||
}
|
||||
|
||||
static void extract_basename(char *buf, const char *path, size_t size)
|
||||
|
@ -561,8 +545,11 @@ bool retro_load_game(const struct retro_game_info *info)
|
|||
unsigned i = BurnDrvGetIndexByName(basename);
|
||||
if (i < nBurnDrvCount)
|
||||
{
|
||||
init_video();
|
||||
init_audio();
|
||||
nBurnBpp = 2;
|
||||
VidRecalcPal();
|
||||
pBurnSoundOut = g_audio_buf;
|
||||
nBurnSoundRate = AUDIO_SAMPLERATE;
|
||||
nBurnSoundLen = AUDIO_SEGMENT_LENGTH;
|
||||
|
||||
if (!fba_init(i))
|
||||
return false;
|
||||
|
@ -1361,12 +1348,10 @@ static inline int CinpJoyAxis(int i, int axis)
|
|||
case 7:
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int CinpMouseAxis(int i, int axis)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int CinpState(int i)
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <stdint.h>
|
||||
#include <wchar.h>
|
||||
|
||||
#include "input/inp_keys.h"
|
||||
#include "inp_keys.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <tchar.h>
|
||||
|
@ -16,15 +16,7 @@ typedef struct { int x, y, width, height; } RECT;
|
|||
#undef __cdecl
|
||||
#define __cdecl
|
||||
|
||||
#ifdef _XBOX1
|
||||
static inline void bprintf(int code, const char *format, ...)
|
||||
{
|
||||
(void)0;
|
||||
}
|
||||
#else
|
||||
#define bprintf
|
||||
#endif
|
||||
|
||||
#define bprintf(...) {}
|
||||
#define _strnicmp(s1, s2, n) strncasecmp(s1, s2, n)
|
||||
#define _stricmp(x, y) strcasecmp(x,y)
|
||||
|
||||
|
@ -46,13 +38,10 @@ static inline void bprintf(int code, const char *format, ...)
|
|||
#define _tcsstr strstr
|
||||
#define _stscanf sscanf
|
||||
#define _ftprintf fprintf
|
||||
#define _tcscpy(to, from) strcpy(to, from)
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define _tcsicmp(a, b) _stricmp(a, b)
|
||||
#else
|
||||
#ifndef _MSC_VER
|
||||
#define _tcsicmp(a, b) strcasecmp(a, b)
|
||||
#endif
|
||||
#define _tcscpy(to, from) strcpy(to, from)
|
||||
/*define lstrlen what does lstrlen correspond to?*/
|
||||
|
||||
#undef __fastcall
|
||||
|
|
Loading…
Reference in New Issue