RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    OpenBOR finally working fine on RETROPIE with ES

    Scheduled Pinned Locked Moved Ideas and Development
    openbortrick
    353 Posts 32 Posters 184.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      moonston333
      last edited by

      hi all just reading through this openbor section. im trying to get it working on pi3. ive got all my paks is there a tutorial on how to install it onto my pi thanks

      cyperghostC 1 Reply Last reply Reply Quote 0
      • cyperghostC
        cyperghost @moonston333
        last edited by cyperghost

        @moonston333 Please use install instructions done here
        Please remove the binaries provided in the google download if you want to compile on your own.... you will catch errors.

        We are still work in progress.

        cyperghostC 1 Reply Last reply Reply Quote 0
        • cyperghostC
          cyperghost @cyperghost
          last edited by cyperghost

          @cyperghost I will present Василий Patch next days for OpenBOR

          Борис is here

          Makefile
          
          ifdef BUILD_PANDORA
          TARGET 	        = $(VERSION_NAME).elf
          TARGET_FINAL    = $(VERSION_NAME)
          TARGET_PLATFORM = PANDORA
          BUILD_LINUX     = 1
          BUILD_SDL       = 1
          BUILD_GLES      = 1
          BUILD_OPENGL    = 1
          BUILD_LOADGL    = 1
          BUILD_WEBM      = 1
          BUILD_GFX       = 1
          BUILD_PTHREAD   = 1
          BUILD_SDL_IO    = 1
          BUILD_TREMOR    = 1
          BUILDING        = 1
          CC  	        = gcc
          INCLUDES        = $(PNDDEV)/include \
                            $(PNDDEV)/include/SDL
          OBJTYPE         = elf
          LIBRARIES       = $(PNDDEV)/lib
          ifeq ($(BUILD_PANDORA), 0)
          BUILD_DEBUG     = 1
          endif
          endif
          
          ...
          ...
          ifdef BUILD_PANDORA
          STRIP 	        = strip $(TARGET) -o $(TARGET_FINAL)
          endif
          
          ...
          ...
          
          CFLAGS 	       += $(addprefix -I", $(addsuffix ", $(INCS))) $(ARCHFLAGS) -D$(TARGET_PLATFORM)
          CFLAGS 	       += -g -Wall -Werror -fsigned-char -std=gnu99
          CFLAGS         += -marm -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -fomit-frame-pointer -ffast-math -O3
          
          ...
          ...
          
          ifdef BUILD_SDL
          ifeq ($(findstring DGE, $(SDKPATH)), DGE)
          LIBS           += -lSDL -lSDL_gfx -lts
          else
          LIBS           += -Wl,-rpath,$(LIBRARIES) -lSDL2 -lSDL2_gfx -lGL
          endif
          endif
          
          sdl/opencl.c
          // create an OpenGL compatibility context, not a core or ES context
          #ifndef WIN // except on Windows, where some Nvidia drivers really don't like us doing this
          //zanac, these attributes don't work well in allwinner (rasbperry too?)
          //SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY);
          #endif
          
              //zanac, it seems that you should always create a new context without delete the old one, this happen in allwinner (rasbperry too?)
              //if((context = SDL_GL_GetCurrentContext()))
              //      SDL_GL_DeleteContext(context);
          
          1 Reply Last reply Reply Quote 2
          • BiZzAr721B
            BiZzAr721
            last edited by

            @darknior Maybe opengl4es will be able to benefit Residualvm as well


            Salvador Liébana was one of the devs who got Diable & others running on Pi

            darkniorD 1 Reply Last reply Reply Quote 1
            • darkniorD
              darknior @BiZzAr721
              last edited by

              @bizzar721 WOAW it's possible to play this game on PI ??????
              We can also maybe play to "Return to the future" ???
              Incredible, maybe it can help yes, if you have some informations, create an other discussion please and give the link here, i'm very interested, i'm a BIG fan of ScummVM too :p
              Thanks

              Life is game, just play it !

              Z 1 Reply Last reply Reply Quote 0
              • Z
                zanac @darknior
                last edited by

                @darknior said in OpenBOR finally working fine on RETROPIE with ES:

                @bizzar721 WOAW it's possible to play this game on PI ??????
                We can also maybe play to "Return to the future" ???
                Incredible, maybe it can help yes, if you have some informations, create an other discussion please and give the link here, i'm very interested, i'm a BIG fan of ScummVM too :p
                Thanks

                gl4es is just a wrapper that translate some "open gl" function to "open gl es 2", if you want to play 3d games you need that software use "open gl es 2" (gles2 for friends) natively!

                About scummvm.... as i said it is possible to run it under libretro core, so it use gles2 natively using retroarch!!!
                Just download: https://github.com/libretro/scummvm

                After this just go to the folder "backends/platform/libretro/build" and type "make -j 4" :) It will compile (in about 7-8 hours!!!) a working core for allwinner/rasbperry!!!

                For improve scummvm speed i suggest to hack the makefile and use neon+arm+cortex optimization... i use these:
                TOOLSET = arm-linux-gnueabihf-
                TARGET := $(TARGET_NAME)libretro.so
                SHARED := -shared -Wl,--no-undefined
                DEFINES += -fPIC -Wno-multichar -D_ARM_ASSEM

                LDFLAGS += -shared -Wl,--version-script=../link.T -fPIC
                CC = gcc
                USE_VORBIS = 0
                USE_THEORADEC = 0
                USE_TREMOR = 1
                HAVE_MT32EMU = 0
                DEFINES += -marm -mcpu=cortex-a9 -marm -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -ffast-math -fomit-frame-pointer -O3
                DEFINES += -mfloat-abi=hard
                DEFINES += -DARM
                HAVE_NEON = 1
                DEFINES += -DSIZEOF_SIZE_T=4

                If you want i can share the libretro_scummv.so core compiled in this way, it work very well i use it and is very great!!!

                cyperghostC BiZzAr721B darkniorD 3 Replies Last reply Reply Quote 2
                • Z
                  zanac
                  last edited by

                  @zanac

                  new hint.... it seems that is better use -O2 for compile openbor!!!
                  just replace in makefile patch that i mae O3 with O2 : )

                  1 Reply Last reply Reply Quote 2
                  • cyperghostC
                    cyperghost @zanac
                    last edited by

                    @zanac I would suggest to use sperate libGL for each game.

                    add Makefile

                    LIBRARIES       = ./lib
                    

                    and create directory lib in OpenBOR dir and place libGL here

                    cyperghostC 1 Reply Last reply Reply Quote 0
                    • cyperghostC
                      cyperghost @cyperghost
                      last edited by cyperghost

                      @cyperghost This is Василий Patch

                      Changelog:
                      added lib next to binary
                      added cflags, change from O3 to O2

                      Makefile

                      Makefile
                      
                      ifdef BUILD_PANDORA
                      TARGET 	        = $(VERSION_NAME).elf
                      TARGET_FINAL    = $(VERSION_NAME)
                      TARGET_PLATFORM = PANDORA
                      BUILD_LINUX     = 1
                      BUILD_SDL       = 1
                      BUILD_GLES      = 1
                      BUILD_OPENGL    = 1
                      BUILD_LOADGL    = 1
                      BUILD_WEBM      = 1
                      BUILD_GFX       = 1
                      BUILD_PTHREAD   = 1
                      BUILD_SDL_IO    = 1
                      BUILD_TREMOR    = 1
                      BUILDING        = 1
                      CC  	        = gcc
                      INCLUDES        = $(PNDDEV)/include \
                                        $(PNDDEV)/include/SDL
                      OBJTYPE         = elf
                      LIBRARIES       = ./lib
                      ifeq ($(BUILD_PANDORA), 0)
                      BUILD_DEBUG     = 1
                      endif
                      endif
                      
                      ...
                      ...
                      ifdef BUILD_PANDORA
                      STRIP 	        = strip $(TARGET) -o $(TARGET_FINAL)
                      endif
                      
                      ...
                      ...
                      
                      CFLAGS 	       += $(addprefix -I", $(addsuffix ", $(INCS))) $(ARCHFLAGS) -D$(TARGET_PLATFORM)
                      CFLAGS 	       += -g -Wall -Werror -fsigned-char -std=gnu99
                      CFLAGS         += -marm -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -fomit-frame-pointer -ffast-math -O2
                      
                      ...
                      ...
                      
                      ifdef BUILD_SDL
                      ifeq ($(findstring DGE, $(SDKPATH)), DGE)
                      LIBS           += -lSDL -lSDL_gfx -lts
                      else
                      LIBS           += -Wl,-rpath,$(LIBRARIES) -lSDL2 -lSDL2_gfx -lGL
                      endif
                      endif
                      

                      sdl/opengl.c

                      // create an OpenGL compatibility context, not a core or ES context
                      #ifndef WIN // except on Windows, where some Nvidia drivers really don't like us doing this
                      //zanac, these attributes don't work well in allwinner (rasbperry too?)
                      //SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY);
                      #endif
                      
                          //zanac, it seems that you should always create a new context without delete the old one, this happen in allwinner (rasbperry too?)
                          //if((context = SDL_GL_GetCurrentContext()))
                          //      SDL_GL_DeleteContext(context);
                      
                      1 Reply Last reply Reply Quote 2
                      • BiZzAr721B
                        BiZzAr721 @zanac
                        last edited by

                        @zanac said in OpenBOR finally working fine on RETROPIE with ES:

                        If you want i can share the libretro_scummv.so core compiled in this way, it work very well i use it and is very great!!!

                        I would love for you to share the libretro_scummv.so core. Although eventually, learning how to compile is something I want to learn how to do. Thanks

                        @darknior
                        Using residualVM from the experimental section I am able to play

                        • Escape from Monkey Island
                        • Grim Fandango
                        • Myst 3

                        The pi takes a big hit running them, but they are playable
                        ResidualVM itself still has bugs

                        cyperghostC 1 Reply Last reply Reply Quote 1
                        • cyperghostC
                          cyperghost @BiZzAr721
                          last edited by cyperghost

                          @bizzar721 Compiling we do here is provided by scripts. Makefile or CMakeList for example. These scripts tell the compiler the order of source files and on which mashine they build. So it's not really difficult to do... Sometimes programmes give hints which compiler flag do this and that.... also not difficult to implent (a bit more know how needed)

                          The stuff @zanac and @darknior have done is really advanced. You must understand how the code works and analyse options. For example @darknior patch makes use of function fileExists. You may think it's an ususal C-command, no... it's a functions that is nested into /source/utils.c. (A very common way to do check file availability... but other languages provide a command for this)

                          1 Reply Last reply Reply Quote 2
                          • darkniorD
                            darknior @zanac
                            last edited by

                            @zanac said in OpenBOR finally working fine on RETROPIE with ES:

                            If you want i can share the libretro_scummv.so core compiled in this way, it work very well i use it and is very great!!!

                            Yes thanks a lot, if you can share it, i will try it :)

                            Life is game, just play it !

                            Z 1 Reply Last reply Reply Quote 0
                            • Z
                              zanac @darknior
                              last edited by zanac

                              @darknior said in OpenBOR finally working fine on RETROPIE with ES:

                              @zanac said in OpenBOR finally working fine on RETROPIE with ES:

                              If you want i can share the libretro_scummv.so core compiled in this way, it work very well i use it and is very great!!!

                              Yes thanks a lot, if you can share it, i will try it :)

                              here you are:
                              https://drive.google.com/open?id=1iuV9BUN4g8-aaf9DAPrmxG0s3dn0RDoR

                              For use in a game... i try to make an example. For example i have "Full Throttle" adventure, inside the game folder i place a "Full Throttle.scummvm" file, inside it you must just insert the "logical scummvm name", that is in this example "ft"

                              Here you can find a sort of "database" of scummvm files:
                              https://github.com/zanac/OpenPB4/blob/master/retroarch/cores/scummvm_libretro/scummvm-games.7z

                              p.s. excuse me for the OT, this is not openbor stuff i know!

                              darkniorD 1 Reply Last reply Reply Quote 4
                              • BiZzAr721B
                                BiZzAr721
                                last edited by

                                @zanac Thank you for sharing.

                                1 Reply Last reply Reply Quote 0
                                • cyperghostC
                                  cyperghost @darknior
                                  last edited by

                                  @darknior said in OpenBOR finally working fine on RETROPIE with ES:

                                  I must use 3400 for

                                  Asterix & Obelix

                                  Can't confirm it's working fine with latest releases.
                                  md5: 41a9bdf651676f77c50307cf955ae2ad Asterix And Caesars Challenge.pak

                                  1 Reply Last reply Reply Quote 1
                                  • darkniorD
                                    darknior @zanac
                                    last edited by

                                    @zanac Thanks a lot, really :D
                                    I think it can be a really good idea to share your work on an other thread to make every one using ScummVM on LR.
                                    It is really excellent !!!

                                    Same i wish it will be same in a few time with Daphne for LR too :)

                                    Life is game, just play it !

                                    Z 1 Reply Last reply Reply Quote 0
                                    • Z
                                      zanac @darknior
                                      last edited by zanac

                                      Sorry i have not time to follow a thread... anyway it's rather easy, i only tweak Makefile to add cortex/neon optimization on rasbperry, the source code of scummvm libretro work very weel on rpi/allwinner boards! :)

                                      @darknior said in OpenBOR finally working fine on RETROPIE with ES:

                                      @zanac Thanks a lot, really :D
                                      I think it can be a really good idea to share your work on an other thread to make every one using ScummVM on LR.
                                      It is really excellent !!!

                                      Same i wish it will be same in a few time with Daphne for LR too :)

                                      cyperghostC 1 Reply Last reply Reply Quote 1
                                      • cyperghostC
                                        cyperghost @zanac
                                        last edited by cyperghost

                                        Hello @zanac,

                                        I've collected all patch into a Openbor for Raspberry GIT ....
                                        We have patches: Anna, Boris, Wassili next patch will be Galina. I hope @darknior can make this work and we have CLI for PAKs ;)

                                        darkniorD 1 Reply Last reply Reply Quote 0
                                        • darkniorD
                                          darknior @cyperghost
                                          last edited by

                                          @cyperghost said in OpenBOR finally working fine on RETROPIE with ES:

                                          I hope @darknior can make this work and we have CLI for PAKs

                                          I don't understand ? You want i patch your OpenBOR version ?
                                          Why don't you had my patch directly ?

                                          Life is game, just play it !

                                          cyperghostC 1 Reply Last reply Reply Quote 0
                                          • cyperghostC
                                            cyperghost @darknior
                                            last edited by cyperghost

                                            @darknior Lack of time ;) Just fork the repo
                                            Use patch -p0 -i patchfile.patch to patch and patch -p0 -R -i patchfile.patch to revert patches.

                                            So a working example would be patch -p0 -i ./patch/3-Wassili.diff

                                            Every patch is mode from original version. So patch #3 is the same version is I offer as download in openbor openbeta thread.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.