Merge branch 'master' of github.com:reicast/reicast-emulator

This commit is contained in:
Stefanos Kornilios Mitsis Poiitidis 2015-04-12 22:48:31 +02:00
commit 330a60bcf4
10 changed files with 62 additions and 30 deletions

View File

@ -18,10 +18,11 @@ before_install:
- GIT_HASH=`git log --pretty=format:'%h' -n 1` - GIT_HASH=`git log --pretty=format:'%h' -n 1`
- GIT_BUILD=`git describe --all`-$GIT_HASH - GIT_BUILD=`git describe --all`-$GIT_HASH
install: install:
- download_extract http://dl.google.com/android/ndk/android-ndk-r9c-linux-x86_64.tar.bz2 - wget http://dl.google.com/android/ndk/android-ndk-r10d-linux-x86_64.bin
android-ndk-r9c-linux-x86_64.tar.bz2 - chmod +x android-ndk-r10d-linux-x86_64.bin
- mv android-ndk-r9c android-ndk - ./android-ndk-r10d-linux-x86_64.bin -y | grep -v Extracting
- rm android-ndk-r9c-linux-x86_64.tar.bz2 - mv android-ndk-r10d android-ndk
- rm android-ndk-r10d-linux-x86_64.bin
- export NDK=$(pwd)/android-ndk - export NDK=$(pwd)/android-ndk
- export ANDROID_NDK=$(pwd)/android-ndk - export ANDROID_NDK=$(pwd)/android-ndk
- export PATH=${PATH}:$ANDROID_HOME/tools - export PATH=${PATH}:$ANDROID_HOME/tools

View File

@ -2,7 +2,7 @@
#MFLAGS := -marm -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16 -mfloat-abi=softfp #MFLAGS := -marm -march=armv7-a -mtune=cortex-a8 -mfpu=vfpv3-d16 -mfloat-abi=softfp
#ASFLAGS := -march=armv7-a -mfpu=vfp-d16 -mfloat-abi=softfp #ASFLAGS := -march=armv7-a -mfpu=vfp-d16 -mfloat-abi=softfp
#LDFLAGS := -g -Wl,-Map,$(notdir $@).map,--gc-sections -Wl,-O3 -Wl,--sort-common #LDFLAGS := -Wl,-Map,$(notdir $@).map,--gc-sections -Wl,-O3 -Wl,--sort-common
RZDCY_SRC_DIR ?= $(call my-dir) RZDCY_SRC_DIR ?= $(call my-dir)
@ -53,7 +53,7 @@ RZDCY_FILES += $(foreach dir,$(addprefix $(RZDCY_SRC_DIR)/,$(RZDCY_MODULES)),$(w
ifdef FOR_PANDORA ifdef FOR_PANDORA
RZDCY_CFLAGS := \ RZDCY_CFLAGS := \
$(CFLAGS) -c -g -O3 -I$(RZDCY_SRC_DIR) -I$(RZDCY_SRC_DIR)/deps \ $(CFLAGS) -c -O3 -I$(RZDCY_SRC_DIR) -I$(RZDCY_SRC_DIR)/deps \
-DRELEASE -DPANDORA\ -DRELEASE -DPANDORA\
-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp \ -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp \
-frename-registers -fsingle-precision-constant -ffast-math \ -frename-registers -fsingle-precision-constant -ffast-math \
@ -62,7 +62,7 @@ RZDCY_CFLAGS := \
RZDCY_CFLAGS += -DTARGET_LINUX_ARMELv7 RZDCY_CFLAGS += -DTARGET_LINUX_ARMELv7
else else
RZDCY_CFLAGS := \ RZDCY_CFLAGS := \
$(CFLAGS) -c -g -O3 -I$(RZDCY_SRC_DIR) -I$(RZDCY_SRC_DIR)/deps \ $(CFLAGS) -c -O3 -I$(RZDCY_SRC_DIR) -I$(RZDCY_SRC_DIR)/deps \
-D_ANDROID -DRELEASE\ -D_ANDROID -DRELEASE\
-frename-registers -fsingle-precision-constant -ffast-math \ -frename-registers -fsingle-precision-constant -ffast-math \
-ftree-vectorize -fomit-frame-pointer -ftree-vectorize -fomit-frame-pointer
@ -87,4 +87,4 @@ ifndef DESKTOPGL
RZDCY_CFLAGS += -DGLES RZDCY_CFLAGS += -DGLES
endif endif
RZDCY_CXXFLAGS := $(RZDCY_CFLAGS) -fno-exceptions -fno-rtti -std=gnu++11 RZDCY_CXXFLAGS := $(RZDCY_CFLAGS) -fno-exceptions -fno-rtti -std=gnu++11

View File

@ -17,6 +17,7 @@
#if defined(_ANDROID) #if defined(_ANDROID)
#include <asm/sigcontext.h> #include <asm/sigcontext.h>
#if 0
typedef struct ucontext_t { typedef struct ucontext_t {
unsigned long uc_flags; unsigned long uc_flags;
struct ucontext_t *uc_link; struct ucontext_t *uc_link;
@ -31,17 +32,18 @@ struct sigcontext uc_mcontext;
*/ */
} ucontext_t; } ucontext_t;
#endif #endif
#endif
#if HOST_CPU == CPU_ARM #if HOST_CPU == CPU_ARM
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.arm_pc) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.arm_pc)
#elif HOST_CPU == CPU_MIPS #elif HOST_CPU == CPU_MIPS
#ifdef _ANDROID #if 0 && _ANDROID
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.sc_pc) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.sc_pc)
#else #else
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.pc) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.pc)
#endif #endif
#elif HOST_CPU == CPU_X86 #elif HOST_CPU == CPU_X86
#ifdef _ANDROID #if 0 && _ANDROID
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.eip) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.eip)
#else #else
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.gregs[REG_EIP]) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.gregs[REG_EIP])

View File

@ -35,7 +35,7 @@
#if defined(_ANDROID) #if defined(_ANDROID)
#include <asm/sigcontext.h> #include <asm/sigcontext.h>
#if 0
typedef struct ucontext_t typedef struct ucontext_t
{ {
unsigned long uc_flags; unsigned long uc_flags;
@ -52,20 +52,20 @@ typedef struct ucontext_t
* we don't use them for now... * we don't use them for now...
*/ */
} ucontext_t; } ucontext_t;
#endif
#include <android/log.h> #include <android/log.h>
#endif #endif
#if HOST_CPU == CPU_ARM #if HOST_CPU == CPU_ARM
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.arm_pc) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.arm_pc)
#elif HOST_CPU == CPU_MIPS #elif HOST_CPU == CPU_MIPS
#ifdef _ANDROID #if 0 && _ANDROID
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.sc_pc) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.sc_pc)
#else #else
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.pc) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.pc)
#endif #endif
#elif HOST_CPU == CPU_X86 #elif HOST_CPU == CPU_X86
#ifdef _ANDROID #if 0 && _ANDROID
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.eip) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.eip)
#else #else
#define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.gregs[REG_EIP]) #define GET_PC_FROM_CONTEXT(c) (((ucontext_t *)(c))->uc_mcontext.gregs[REG_EIP])

View File

@ -183,10 +183,10 @@ typedef ConditionCode eCC;
#define rfp_r9 r9 #define rfp_r9 r9
typedef void FPBinOP (eFSReg Sd, eFSReg Sn, eFSReg Sm, ConditionCode CC=CC_AL); typedef void FPBinOP (eFSReg Sd, eFSReg Sn, eFSReg Sm, ConditionCode CC);
typedef void FPUnOP (eFSReg Sd, eFSReg Sm, ConditionCode CC=CC_AL); typedef void FPUnOP (eFSReg Sd, eFSReg Sm, ConditionCode CC);
typedef void BinaryOP (eReg Rd, eReg Rn, eReg Rm, ConditionCode CC=AL); typedef void BinaryOP (eReg Rd, eReg Rn, eReg Rm, ConditionCode CC);
typedef void BinaryOPImm (eReg Rd, eReg Rn, s32 sImm8, ConditionCode CC=AL); typedef void BinaryOPImm (eReg Rd, eReg Rn, s32 sImm8, ConditionCode CC);
typedef void UnaryOP (eReg Rd, eReg Rs); typedef void UnaryOP (eReg Rd, eReg Rs);

View File

@ -11,6 +11,7 @@
@@@@@@@@@@ some helpers @@@@@@@@@@ @@@@@@@@@@ some helpers @@@@@@@@@@
.global do_sqw_nommu_area_3 .global do_sqw_nommu_area_3
.hidden do_sqw_nommu_area_3
@r0: addr @r0: addr
@r1: sq_both @r1: sq_both
do_sqw_nommu_area_3: do_sqw_nommu_area_3:
@ -25,6 +26,7 @@ vstm r3,{d0-d3}
bx lr bx lr
.global TAWriteSQ .global TAWriteSQ
.hidden TAWriteSQ
@r0: addr @r0: addr
@r1: sq_both @r1: sq_both
TAWriteSQ: TAWriteSQ:
@ -57,6 +59,7 @@ bx lr
@@@@@@@@@@ ngen_LinkBlock_*****_stub @@@@@@@@@@ @@@@@@@@@@ ngen_LinkBlock_*****_stub @@@@@@@@@@
.global ngen_LinkBlock_Generic_stub .global ngen_LinkBlock_Generic_stub
.hidden ngen_LinkBlock_Generic_stub
ngen_LinkBlock_Generic_stub: ngen_LinkBlock_Generic_stub:
mov r1,r4 @ djump/pc -> in case we need it .. mov r1,r4 @ djump/pc -> in case we need it ..
@ -64,12 +67,14 @@ ngen_LinkBlock_Generic_stub:
.global ngen_LinkBlock_cond_Branch_stub .global ngen_LinkBlock_cond_Branch_stub
.hidden ngen_LinkBlock_cond_Branch_stub
ngen_LinkBlock_cond_Branch_stub: ngen_LinkBlock_cond_Branch_stub:
mov r1,#1 mov r1,#1
b ngen_LinkBlock_Shared_stub b ngen_LinkBlock_Shared_stub
.global ngen_LinkBlock_cond_Next_stub .global ngen_LinkBlock_cond_Next_stub
.hidden ngen_LinkBlock_cond_Next_stub
ngen_LinkBlock_cond_Next_stub: ngen_LinkBlock_cond_Next_stub:
mov r1,#0 mov r1,#0
@ -77,6 +82,7 @@ ngen_LinkBlock_cond_Next_stub:
.global ngen_LinkBlock_Shared_stub .global ngen_LinkBlock_Shared_stub
.hidden ngen_LinkBlock_Shared_stub
ngen_LinkBlock_Shared_stub: ngen_LinkBlock_Shared_stub:
mov r0,lr mov r0,lr
@ -88,6 +94,7 @@ ngen_LinkBlock_Shared_stub:
.global ngen_FailedToFindBlock_ .global ngen_FailedToFindBlock_
.hidden ngen_FailedToFindBlock_
ngen_FailedToFindBlock_: ngen_FailedToFindBlock_:
mov r0,r4 mov r0,r4
bl rdv_FailedToFindBlock bl rdv_FailedToFindBlock
@ -96,6 +103,7 @@ ngen_FailedToFindBlock_:
@@@@@@@@@@ ngen_blockcheckfail @@@@@@@@@@ @@@@@@@@@@ ngen_blockcheckfail @@@@@@@@@@
.global ngen_blockcheckfail .global ngen_blockcheckfail
.hidden ngen_blockcheckfail
ngen_blockcheckfail: ngen_blockcheckfail:
bl rdv_BlockCheckFail bl rdv_BlockCheckFail
bx r0 bx r0
@ -111,6 +119,7 @@ ngen_blockcheckfail:
.global ngen_mainloop .global ngen_mainloop
.hidden ngen_mainloop
ngen_mainloop: ngen_mainloop:
push { r4-r12,lr } push { r4-r12,lr }
@ -125,7 +134,8 @@ push { r4-r12,lr }
@this code is here for fall-through behavior of do_iter @this code is here for fall-through behavior of do_iter
.global intc_sched .global intc_sched
.hidden intc_sched
intc_sched: @ next_pc _MUST_ be on ram intc_sched: @ next_pc _MUST_ be on ram
add r9,r9,#SH4_TIMESLICE add r9,r9,#SH4_TIMESLICE
mov r4,lr mov r4,lr
@ -140,6 +150,7 @@ do_iter:
mov r4,r0 mov r4,r0
.global no_update .global no_update
.hidden no_update
no_update: @ next_pc _MUST_ be on r4 *R4 NOT R0 anymore* no_update: @ next_pc _MUST_ be on r4 *R4 NOT R0 anymore*
sub r2,r8,#33816576 sub r2,r8,#33816576
@ -157,6 +168,7 @@ end_ngen_mainloop:
@@@@@@@@@@ ngen_mainloop @@@@@@@@@@ @@@@@@@@@@ ngen_mainloop @@@@@@@@@@
.global arm_compilecode .global arm_compilecode
.hidden arm_compilecode
arm_compilecode: arm_compilecode:
bl CompileCode bl CompileCode
b arm_dispatch b arm_dispatch
@ -166,7 +178,8 @@ Xarm_Reg: .word arm_Reg
XEntryPoints: .word EntryPoints XEntryPoints: .word EntryPoints
#endif #endif
.global arm_mainloop .global arm_mainloop
.hidden arm_mainloop
arm_mainloop: @(cntx,lookup_base,cycles) arm_mainloop: @(cntx,lookup_base,cycles)
push {r4,r5,r8,r9,lr} push {r4,r5,r8,r9,lr}
@ -185,6 +198,7 @@ push {r4,r5,r8,r9,lr}
b arm_dispatch b arm_dispatch
.global arm_dispatch .global arm_dispatch
.hidden arm_dispatch
arm_dispatch: arm_dispatch:
#ifdef TARGET_IPHONE #ifdef TARGET_IPHONE
ldrd r0,r1,[r8,#184] @load: Next PC, interrupt ldrd r0,r1,[r8,#184] @load: Next PC, interrupt
@ -203,6 +217,7 @@ arm_dofiq:
b arm_dispatch b arm_dispatch
.global arm_exit .global arm_exit
.hidden arm_exit
arm_exit: arm_exit:
str r5,[r8,#192] @if timeslice is over, save remaining cycles str r5,[r8,#192] @if timeslice is over, save remaining cycles
pop {r4,r5,r8,r9,pc} pop {r4,r5,r8,r9,pc}
@ -211,6 +226,7 @@ arm_exit:
@matrix mul @matrix mul
#ifndef _ANDROID #ifndef _ANDROID
.global ftrv_asm .global ftrv_asm
.hidden ftrv_asm
ftrv_asm: ftrv_asm:
@r0=dst,r1=vec,r2=mtx @r0=dst,r1=vec,r2=mtx
@ -229,6 +245,7 @@ vstm r0,{d4,d5}
bx lr bx lr
.global fipr_asm .global fipr_asm
.hidden fipr_asm
fipr_asm: fipr_asm:
@ vdot @ vdot

View File

@ -36,19 +36,28 @@ include $(LOCAL_PATH)/../../core/core.mk
LOCAL_SRC_FILES := $(RZDCY_FILES) LOCAL_SRC_FILES := $(RZDCY_FILES)
LOCAL_SRC_FILES += $(wildcard $(LOCAL_PATH)/jni/src/Android.cpp) LOCAL_SRC_FILES += $(wildcard $(LOCAL_PATH)/jni/src/Android.cpp)
LOCAL_SRC_FILES += $(wildcard $(LOCAL_PATH)/jni/src/utils.cpp) LOCAL_SRC_FILES += $(wildcard $(LOCAL_PATH)/jni/src/utils.cpp)
LOCAL_CFLAGS := $(RZDCY_CFLAGS) LOCAL_CFLAGS := $(RZDCY_CFLAGS) -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections
LOCAL_CXXFLAGS := $(RZDCY_CXXFLAGS) LOCAL_CXXFLAGS := $(RZDCY_CXXFLAGS) -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections
LOCAL_CPPFLAGS := $(RZDCY_CXXFLAGS) -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections
LOCAL_CPP_FEATURES :=
LOCAL_SHARED_LIBRARIES:= libcutils libutils LOCAL_SHARED_LIBRARIES:= libcutils libutils
LOCAL_PRELINK_MODULE := false LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := dc LOCAL_MODULE := dc
LOCAL_DISABLE_FORMAT_STRING_CHECKS=true LOCAL_DISABLE_FORMAT_STRING_CHECKS=true
LOCAL_ASFLAGS := -fvisibility=hidden LOCAL_ASFLAGS := -fvisibility=hidden
LOCAL_LDLIBS := -llog -lGLESv2 -lEGL -lz LOCAL_LDLIBS := -llog -lGLESv2 -lEGL -lz
#-Wl,-Map,./res/raw/syms.mp3 #-Wl,-Map,./res/raw/syms.mp3
LOCAL_ARM_MODE := arm LOCAL_ARM_MODE := arm
ifeq ($(TARGET_ARCH),mips)
LOCAL_LDFLAGS += -Wl,--gc-sections
else
LOCAL_LDFLAGS += -Wl,--gc-sections,--icf=safe
endif
# #
# android has poor support for hardfp calling. # android has poor support for hardfp calling.
# r9b+ is required, and it only works for internal calls # r9b+ is required, and it only works for internal calls

View File

@ -2,4 +2,4 @@ APP_STL := stlport_static
APP_ABI := armeabi-v7a x86 mips APP_ABI := armeabi-v7a x86 mips
#APP_ABI := armeabi-v7a #APP_ABI := armeabi-v7a
APP_PLATFORM := android-19 APP_PLATFORM := android-19
NDK_TOOLCHAIN_VERSION := 4.8 #NDK_TOOLCHAIN_VERSION := 4.8

View File

@ -11,4 +11,4 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target. # Project target.
target=android-19 target=android-21

View File

@ -2,10 +2,12 @@
<string name="menu_settings">Configurações</string> <string name="menu_settings">Configurações</string>
<string name="system_path">Diretório do sistema (localização do diretório de dados com os arquivos dc_boot.bin / dc_flash.bin)</string> <string name="system_path">Diretório da BIOS (local dos arquivos dc_boot.bin/dc_flash.bin)</string>
<string name="browser_path">Diretório padrão de jogos</string> <string name="browser_path">Diretório padrão de jogos</string>
<string name="games_path">Caminho do armazenamento (local das imagens .gdi, .chd ou .cdi)</string> <string name="games_path">Diretório dos jogos (local das imagens .gdi, .chd ou .cdi)</string>
<string name="game_path">Diretório padrão de jogos</string> <string name="button_theme">Tema dos botões na tela</string>
<string name="game_path">Diretório padrão de jogos</string>
<string name="config_home">Por favor configure um diretório principal.</string> <string name="config_home">Por favor configure um diretório principal.</string>
<string name="config_data">Por favor mova a BIOS para %1$s/data/</string> <string name="config_data">Por favor mova a BIOS para %1$s/data/</string>
<string name="config_game">Por favor configure o diretório dos jogos.</string> <string name="config_game">Por favor configure o diretório dos jogos.</string>
@ -27,6 +29,7 @@
<string name="optimization_opts">Opções de Otimização e Depuração</string> <string name="optimization_opts">Opções de Otimização e Depuração</string>
<string name="experimental_opts">Experimental (Pode causar problemas)</string> <string name="experimental_opts">Experimental (Pode causar problemas)</string>
<string name="select_reios">Usar reios BIOS</string>
<string name="select_bios">Região da BIOS (dc_flash[X].bin)</string> <string name="select_bios">Região da BIOS (dc_flash[X].bin)</string>
<string name="select_details">Habilitar detalhes do jogo</string> <string name="select_details">Habilitar detalhes do jogo</string>
<string name="select_native">Modo nativo [Sem OSD]</string> <string name="select_native">Modo nativo [Sem OSD]</string>
@ -45,7 +48,7 @@
<string name="select_sound">Desabilitar Som do Emulador</string> <string name="select_sound">Desabilitar Som do Emulador</string>
<string name="select_depth">Profundidade da Renderização</string> <string name="select_depth">Profundidade da Renderização</string>
<string name="select_force_gpu">Forçar Configurações GPU v6</string> <string name="select_force_gpu">Forçar Configurações GPU v6</string>
<string name="default_disk">Definir disco padrão</string> <string name="default_disk">Disco padrão</string>
<string name="games_listing">Lista de jogos</string> <string name="games_listing">Lista de jogos</string>
@ -54,7 +57,7 @@
<string name="disk_loading">Carregando Informações do Disco</string> <string name="disk_loading">Carregando Informações do Disco</string>
<string name="report_issue">Falha Anterior Detectada</string> <string name="report_issue">Falha Anterior Detectada</string>
<string name="bios_config">Falha ao Configurar!</string> <string name="bios_config">Falha ao configurar!</string>
<string name="customize_touch_controls">Costumizar controles de toque</string> <string name="customize_touch_controls">Costumizar controles de toque</string>
<string name="launch_editor">Iniciar editor</string> <string name="launch_editor">Iniciar editor</string>