From 8450a2f56172b22bf2b7e871f75ab8b8b4cd2732 Mon Sep 17 00:00:00 2001 From: Chips-fr Date: Wed, 20 Jan 2016 20:34:46 +0100 Subject: [PATCH] Add Rpi1 and Rpi2 support with GLES upscaling --- Makefile | 14 +++++++++++++- README | 6 ++++++ configure | 21 +++++++++++++++++++-- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 8e2feee1..eecb7687 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ TARGET ?= PicoDrive CFLAGS += -Wall -ggdb -falign-functions=2 CFLAGS += -I. ifndef DEBUG -CFLAGS += -O2 -DNDEBUG -ffunction-sections +CFLAGS += -O3 -DNDEBUG -ffunction-sections ifeq ($(findstring clang,$(CC)),) LDFLAGS += -Wl,--gc-sections endif @@ -73,6 +73,18 @@ OBJS += platform/opendingux/inputmap.o # OpenDingux is a generic platform, really. PLATFORM := generic 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" OBJS += platform/linux/emu.o platform/linux/blit.o # FIXME OBJS += platform/common/plat_sdl.o diff --git a/README b/README index fbcecc13..3254fe21 100644 --- a/README +++ b/README @@ -13,3 +13,9 @@ then taken over and expanded by notaz. PicoDrive was the first emulator ever to properly emulate Virtua Racing and it's SVP chip. +How to compile on Raspbian Wheezy: + +export CC=gcc-4.8 +export CXX=g++-4.8 +./configure --platform=rpi2 +make \ No newline at end of file diff --git a/configure b/configure index 96cea7e2..6cc42545 100755 --- a/configure +++ b/configure @@ -31,7 +31,7 @@ check_define() # setting options to "yes" or "no" will make that choice default, # "" means "autodetect". -platform_list="generic pandora gp2x opendingux" +platform_list="generic pandora gp2x opendingux rpi1 rpi2" platform="generic" sound_driver_list="oss alsa sdl" sound_drivers="" @@ -44,6 +44,8 @@ need_sdl="no" need_xlib="no" # these are for known platforms optimize_cortexa8="no" +optimize_cortexa7="no" +optimize_arm1176jzf="no" optimize_arm926ej="no" optimize_arm920="no" @@ -67,6 +69,13 @@ set_platform() { platform=$1 case "$platform" in + rpi1) + optimize_arm1176jzf="yes" + ;; + rpi2) + optimize_cortexa7="yes" + have_arm_neon="yes" + ;; generic) ;; opendingux) @@ -159,6 +168,14 @@ arm*) CFLAGS="$CFLAGS -mcpu=cortex-a8 -mtune=cortex-a8" ASFLAGS="$ASFLAGS -mcpu=cortex-a8" 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 CFLAGS="$CFLAGS -mcpu=arm926ej-s -mtune=arm926ej-s" ASFLAGS="$ASFLAGS -mcpu=arm926ej-s -mfloat-abi=softfp" @@ -229,7 +246,7 @@ arm*) esac case "$platform" in -generic | opendingux) +rpi1 | rpi2 | generic | opendingux) need_sdl="yes" ;; esac -- 2.39.5