Add Rpi1 and Rpi2 support with GLES upscaling

This commit is contained in:
Chips-fr 2016-01-20 20:34:46 +01:00
parent 05eb243d03
commit 8450a2f561
3 changed files with 38 additions and 3 deletions

View file

@ -2,7 +2,7 @@ TARGET ?= PicoDrive
CFLAGS += -Wall -ggdb -falign-functions=2 CFLAGS += -Wall -ggdb -falign-functions=2
CFLAGS += -I. CFLAGS += -I.
ifndef DEBUG ifndef DEBUG
CFLAGS += -O2 -DNDEBUG -ffunction-sections CFLAGS += -O3 -DNDEBUG -ffunction-sections
ifeq ($(findstring clang,$(CC)),) ifeq ($(findstring clang,$(CC)),)
LDFLAGS += -Wl,--gc-sections LDFLAGS += -Wl,--gc-sections
endif endif
@ -73,6 +73,18 @@ OBJS += platform/opendingux/inputmap.o
# OpenDingux is a generic platform, really. # OpenDingux is a generic platform, really.
PLATFORM := generic PLATFORM := generic
endif endif
ifeq ("$(PLATFORM)",$(filter "$(PLATFORM)","rpi1" "rpi2"))
CFLAGS += -DHAVE_GLES -DRASPBERRY
CFLAGS += -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads/ -I/opt/vc/include/interface/vmcs_host/linux/
LDFLAGS += -ldl -lbcm_host -L/opt/vc/lib -lEGL -lGLESv2
OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME
OBJS += platform/common/plat_sdl.o
OBJS += platform/libpicofe/plat_sdl.o platform/libpicofe/in_sdl.o
OBJS += platform/libpicofe/plat_dummy.o
OBJS += platform/libpicofe/gl.o
OBJS += platform/libpicofe/gl_platform.o
USE_FRONTEND = 1
endif
ifeq "$(PLATFORM)" "generic" ifeq "$(PLATFORM)" "generic"
OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME
OBJS += platform/common/plat_sdl.o OBJS += platform/common/plat_sdl.o

6
README
View file

@ -13,3 +13,9 @@ then taken over and expanded by notaz.
PicoDrive was the first emulator ever to properly emulate Virtua Racing and PicoDrive was the first emulator ever to properly emulate Virtua Racing and
it's SVP chip. it's SVP chip.
How to compile on Raspbian Wheezy:
export CC=gcc-4.8
export CXX=g++-4.8
./configure --platform=rpi2
make

21
configure vendored
View file

@ -31,7 +31,7 @@ check_define()
# setting options to "yes" or "no" will make that choice default, # setting options to "yes" or "no" will make that choice default,
# "" means "autodetect". # "" means "autodetect".
platform_list="generic pandora gp2x opendingux" platform_list="generic pandora gp2x opendingux rpi1 rpi2"
platform="generic" platform="generic"
sound_driver_list="oss alsa sdl" sound_driver_list="oss alsa sdl"
sound_drivers="" sound_drivers=""
@ -44,6 +44,8 @@ need_sdl="no"
need_xlib="no" need_xlib="no"
# these are for known platforms # these are for known platforms
optimize_cortexa8="no" optimize_cortexa8="no"
optimize_cortexa7="no"
optimize_arm1176jzf="no"
optimize_arm926ej="no" optimize_arm926ej="no"
optimize_arm920="no" optimize_arm920="no"
@ -67,6 +69,13 @@ set_platform()
{ {
platform=$1 platform=$1
case "$platform" in case "$platform" in
rpi1)
optimize_arm1176jzf="yes"
;;
rpi2)
optimize_cortexa7="yes"
have_arm_neon="yes"
;;
generic) generic)
;; ;;
opendingux) opendingux)
@ -159,6 +168,14 @@ arm*)
CFLAGS="$CFLAGS -mcpu=cortex-a8 -mtune=cortex-a8" CFLAGS="$CFLAGS -mcpu=cortex-a8 -mtune=cortex-a8"
ASFLAGS="$ASFLAGS -mcpu=cortex-a8" ASFLAGS="$ASFLAGS -mcpu=cortex-a8"
fi fi
if [ "$optimize_cortexa7" = "yes" ]; then
CFLAGS="$CFLAGS -mcpu=cortex-a7"
ASFLAGS="$ASFLAGS -mcpu=cortex-a7"
fi
if [ "$optimize_arm1176jzf" = "yes" ]; then
CFLAGS="$CFLAGS -mcpu=arm1176jzf-s -mfloat-abi=hard"
ASFLAGS="$ASFLAGS -mcpu=arm1176jzf-s -mfloat-abi=hard"
fi
if [ "$optimize_arm926ej" = "yes" ]; then if [ "$optimize_arm926ej" = "yes" ]; then
CFLAGS="$CFLAGS -mcpu=arm926ej-s -mtune=arm926ej-s" CFLAGS="$CFLAGS -mcpu=arm926ej-s -mtune=arm926ej-s"
ASFLAGS="$ASFLAGS -mcpu=arm926ej-s -mfloat-abi=softfp" ASFLAGS="$ASFLAGS -mcpu=arm926ej-s -mfloat-abi=softfp"
@ -229,7 +246,7 @@ arm*)
esac esac
case "$platform" in case "$platform" in
generic | opendingux) rpi1 | rpi2 | generic | opendingux)
need_sdl="yes" need_sdl="yes"
;; ;;
esac esac