Created
December 25, 2012 01:29
-
-
Save anonymous/4371288 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Index: trunk/makefile.libretro | |
=================================================================== | |
--- trunk/makefile.libretro (revision 941) | |
+++ trunk/makefile.libretro (working copy) | |
@@ -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_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 @@ | |
$(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_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_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))) | |
Index: trunk/projectfiles/libretro-android/jni/Android.mk | |
=================================================================== | |
--- trunk/projectfiles/libretro-android/jni/Android.mk (revision 941) | |
+++ trunk/projectfiles/libretro-android/jni/Android.mk (working copy) | |
@@ -1,3 +1,6 @@ | |
+CYCLONE_ENABLED := 0 | |
+HAVE_GRIFFIN := 0 | |
+ | |
LOCAL_PATH := $(call my-dir) | |
include $(CLEAR_VARS) | |
@@ -2,2 +5,15 @@ | |
+ | |
+MAIN_FBA_DIR := ../../../src | |
+FBA_BURN_DIR := $(MAIN_FBA_DIR)/burn | |
+FBA_BURN_DRIVERS_DIR := $(MAIN_FBA_DIR)/burn/drv | |
+FBA_BURNER_DIR := $(MAIN_FBA_DIR)/burner | |
+LIBRETRO_DIR := $(FBA_BURNER_DIR)/libretro | |
+FBA_CPU_DIR := $(MAIN_FBA_DIR)/cpu | |
+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) | |
@@ -8,7 +24,11 @@ | |
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 | |
@@ -18,17 +38,6 @@ | |
LOCAL_CXXFLAGS += -DANDROID_MIPS -D__mips__ -D__MIPSEL__ | |
endif | |
-MAIN_FBA_DIR := ../../../src | |
-FBA_BURN_DIR := $(MAIN_FBA_DIR)/burn | |
-FBA_BURN_DRIVERS_DIR := $(MAIN_FBA_DIR)/burn/drv | |
-FBA_BURNER_DIR := $(MAIN_FBA_DIR)/burner | |
-LIBRETRO_DIR := $(FBA_BURNER_DIR)/libretro | |
-FBA_CPU_DIR := $(MAIN_FBA_DIR)/cpu | |
-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 | |
- | |
BURN_BLACKLIST := $(FBA_BURNER_DIR)/un7z.cpp \ | |
$(FBA_CPU_DIR)/arm7/arm7exec.c \ | |
$(FBA_CPU_DIR)/arm7/arm7core.c \ | |
@@ -66,25 +75,39 @@ | |
$(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_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,18 +128,17 @@ | |
$(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_SRC_DIRS := $(FBA_BURNER_DIR) $(FBA_BURN_DIRS) $(FBA_CPU_DIRS) $(FBA_BURNER_DIRS) $(FBA_LIB_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) \ | |
$(LIBRETRO_DIR)/tchar \ | |
@@ -142,4 +164,6 @@ | |
$(FBA_GENERATED_DIR) \ | |
$(FBA_LIB_DIR) | |
+LOCAL_LDLIBS += -lz | |
+ | |
include $(BUILD_SHARED_LIBRARY) | |
Index: trunk/src/burner/libretro/libretro.cpp | |
=================================================================== | |
--- trunk/src/burner/libretro/libretro.cpp (revision 941) | |
+++ trunk/src/burner/libretro/libretro.cpp (working copy) | |
@@ -31,11 +31,11 @@ | |
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 @@ | |
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 @@ | |
nBurnLayer = 0xff; | |
pBurnSoundOut = g_audio_buf; | |
- nBurnSoundRate = 32000; | |
- nBurnSoundLen = AUDIO_SEGMENT_LENGTH; | |
+ nBurnSoundRate = AUDIO_SAMPLERATE; | |
+ //nBurnSoundLen = AUDIO_SEGMENT_LENGTH; | |
nCurrentFrame++; | |
@@ -357,7 +357,7 @@ | |
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 @@ | |
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,24 +497,8 @@ | |
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) | |
{ | |
const char *base = strrchr(path, '/'); | |
@@ -561,8 +545,11 @@ | |
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 @@ | |
case 7: | |
return 0; | |
} | |
- return 0; | |
} | |
static inline int CinpMouseAxis(int i, int axis) | |
{ | |
- return 0; | |
} | |
static inline int CinpState(int i) | |
Index: trunk/src/burner/libretro/tchar.h | |
=================================================================== | |
--- trunk/src/burner/libretro/tchar.h (revision 941) | |
+++ trunk/src/burner/libretro/tchar.h (working copy) | |
@@ -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 @@ | |
#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 @@ | |
#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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment