Add Rpi1 and Rpi2 support with GLES upscaling
authorChips-fr <darcelf@gmail.com>
Wed, 20 Jan 2016 19:34:46 +0000 (20:34 +0100)
committerChips-fr <darcelf@gmail.com>
Wed, 20 Jan 2016 19:34:46 +0000 (20:34 +0100)
Makefile
README
configure

index 8e2feee..eecb768 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ TARGET ?= PicoDrive
 CFLAGS += -Wall -ggdb -falign-functions=2
 CFLAGS += -I.
 ifndef DEBUG
 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
 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
 # 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
 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 fbcecc1..3254fe2 100644 (file)
--- 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.
 
 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
index 96cea7e..6cc4254 100755 (executable)
--- a/configure
+++ b/configure
@@ -31,7 +31,7 @@ check_define()
 # setting options to "yes" or "no" will make that choice default,
 # "" means "autodetect".
 
 # 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=""
 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"
 need_xlib="no"
 # these are for known platforms
 optimize_cortexa8="no"
+optimize_cortexa7="no"
+optimize_arm1176jzf="no"
 optimize_arm926ej="no"
 optimize_arm920="no"
 
 optimize_arm926ej="no"
 optimize_arm920="no"
 
@@ -67,6 +69,13 @@ set_platform()
 {
   platform=$1
   case "$platform" in
 {
   platform=$1
   case "$platform" in
+  rpi1)
+    optimize_arm1176jzf="yes"
+    ;;
+  rpi2)
+    optimize_cortexa7="yes"
+    have_arm_neon="yes"
+    ;;
   generic)
     ;;
   opendingux)
   generic)
     ;;
   opendingux)
@@ -159,6 +168,14 @@ arm*)
     CFLAGS="$CFLAGS -mcpu=cortex-a8 -mtune=cortex-a8"
     ASFLAGS="$ASFLAGS -mcpu=cortex-a8"
   fi
     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"
   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
 esac
 
 case "$platform" in
-generic | opendingux)
+rpi1 | rpi2 | generic | opendingux)
   need_sdl="yes"
   ;;
 esac
   need_sdl="yes"
   ;;
 esac