Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    FBA new core option

    Emulator Arcade/PC/Console
    fba core option
    9
    67
    39156
    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.
    • voljega
      voljega Banned @barbudreadmon last edited by

      @barbudreadmon said in FBA new core option:

      By the way, with latest commit, every control issue should be solved.

      What do you mean by that ? In which game for instance ?

      paradadf 1 Reply Last reply Reply Quote 0
      • paradadf
        paradadf Staff @voljega last edited by

        @voljega there are a lot!

        For example:

        • Ace Attacker (FD1094 317-0059) - no button working
        • Angel Kids (Japan) - impossible to go left
        • Arkanoid - Revenge of DOH (World) - the sensitivity is super high (?)
        • Asterix (ver EAD) - player 2 can't access the game
        • Bikkuri Card (Japan) - payout screen can't be skipped
        • Bomb Bee - the sensitivity is super high (?)
        • Bullet (FD1094 317-0041) - only coin and start button working
        • Caliber 50 [No sound, imperfect inputs] - directions don't work
        • Check Man - only coin button working
        • Chance Kun (Japan) - only coin button working
        • Cutie Q - the sensitivity is super high (?)
        • Dark Planet [Dial doesn't work very well] - directions not working properly
        • Deroon DeroDero [No sound] - only directions working
        • DownTown / Mokugeki (Set 1) [No sound, imperfect inputs] - directions not working properly
        • Excite League (FD1094 317-0079) - only coin and start button working
        • F-1 Dream [Game is bugged, use the bootleg instead.] - weird directions on turns
        • Ganbare! Marine Kun (Marine 2K0411 JPN) - only coin button working
        • Gee Bee - the sensitivity is super high (?)
        • G.I. Joe (World, EAB, set 1) - coin to pass black screen, but impossible to select
        • Heavy Barrel (US) - directions nor working properly
          etc...

        Maybe some of these aren't directly related with the input system, but you get the idea 😉

        If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

        voljega 1 Reply Last reply Reply Quote 0
        • voljega
          voljega Banned @paradadf last edited by

          @paradadf yeah but i assume each one of those is a different issue or so, how is it possible that they would be all corrected in a instant ?

          paradadf barbudreadmon 2 Replies Last reply Reply Quote 0
          • paradadf
            paradadf Staff @voljega last edited by

            @voljega I was just mentioning the first ones from my list which have some kind of input problems. And as I said before, I'm not certain that all those were directly related to the input handling, but some for sure. I can't differentiate the root of the problem 😄

            If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

            1 Reply Last reply Reply Quote 0
            • barbudreadmon
              barbudreadmon @voljega last edited by

              @voljega not really different issues, most of them were missing inputs because the old input handling was hard to maintain, i rewrote it.

              What we were doing before :

              • Compare button's display name with a list of 305 display name we indexed
              • Use the first one matching, adapt it through core option
              • If no match, skip the button

              What we are doing now :

              • Use the button's normalized name, there is around twenty of them, and, unlike display names, they are programatically understandable.
              • Get the number of "fire" button (= buttons used in gameplay) used in the game, if lesser than or equal to 4 "fire" button tell if it is a neogeo game or not, if greater than 4 "fire" button tell if it is a street fighter or not
              • Use a different mapping for each of those 4 cases, adapt it through core option

              NB : I didn't debug the analog inputs yet, but that's a different issue.

              Libretro developper :

              • FBAlpha FBNeo (Arcade)
              • Kronos (Sega Saturn/ST-V)
              • YabaSanshiro (Sega Saturn)
              • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
              voljega 1 Reply Last reply Reply Quote 0
              • voljega
                voljega Banned @barbudreadmon last edited by

                @barbudreadmon Cool ! I'll retest everything not working when it's released then 🙂

                barbudreadmon 1 Reply Last reply Reply Quote 0
                • barbudreadmon
                  barbudreadmon @voljega last edited by

                  @voljega It is released, but not in recalbox's makefile yet, you can still build and use it the "normal" way :

                  git clone https://github.com/libretro/fbalpha.git
                  cd fbalpha/
                  make -f makefile.libretro platform=rpi2

                  Then you would have to update your es_systems.cfg file with the path to the "fbalpha_libretro.so" you just built

                  Since recalbox is "readonly", i suppose you have to remount your filesystem in read/write mode first :
                  mount -o remount,rw /

                  There are still a few games that segfault because of dipswitch, that's the next thing i want to solve.

                  Libretro developper :

                  • FBAlpha FBNeo (Arcade)
                  • Kronos (Sega Saturn/ST-V)
                  • YabaSanshiro (Sega Saturn)
                  • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
                  paradadf 1 Reply Last reply Reply Quote 0
                  • paradadf
                    paradadf Staff @barbudreadmon last edited by paradadf

                    @barbudreadmon I having the following errors with Ubuntu 16.04 32-bit::

                    paradadf@paradadf-pc:~/fbalpha$ make -f makefile.libretro platform=rpi2
                    cc -DARM -O2 -DNDEBUG -fPIC -Wno-write-strings -D__LIBRETRO__ -DLSB_FIRST -marm -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -ffast-math -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DUSE_SPEEDHACKS -DFRONTEND_SUPPORTS_RGB565 -Isrc/burner/win32 -Isrc/burner/libretro -Isrc/burner/libretro/tchar -Isrc/burn -Isrc/cpu -Isrc/burn/snd -Isrc/burn/devices -Isrc/intf -Isrc/intf/input -Isrc/intf/cd -Isrc/intf/audio -Isrc/burner -Isrc/cpu -Isrc/cpu/i8039 -Isrc/cpu/i8051 -Isrc/dep/libs/zlib -Isrc/burn/drv/capcom -Isrc/burn/drv/konami -Isrc/burn/drv/dataeast -Isrc/burn/drv/cave -Isrc/burn/drv/neogeo -Isrc/burn/drv/psikyo -Isrc/burn/drv/sega -Isrc/burn/drv/toaplan -Isrc/burn/drv/taito -Isrc/dep/generated -Isrc/dep/libs -c src/burner/unzip.c -o src/burner/unzip.o
                    cc: warning: ‘-mcpu=’ is deprecated; use ‘-mtune=’ or ‘-march=’ instead
                    cc: error: unrecognized command line option ‘-marm’
                    cc: error: unrecognized command line option ‘-mfpu=neon-vfpv4’
                    cc: error: unrecognized command line option ‘-mfloat-abi=hard’
                    makefile.libretro:585: recipe for target 'src/burner/unzip.o' failed
                    make: *** [src/burner/unzip.o] Error 1
                    

                    I suppose, I would need to make some modifications in order to cross compile, but that's beyond my skills XD

                    If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

                    barbudreadmon 1 Reply Last reply Reply Quote 0
                    • barbudreadmon
                      barbudreadmon @paradadf last edited by barbudreadmon

                      @paradadf Because ubuntu 16.04 uses gcc-6.X by default and fba is not yet compatible with gcc-6.X , try this :
                      CC="gcc-5.4" CXX="g++-5.4" make -f makefile.libretro platform=rpi2

                      If it complains about missing gcc/g++ 5.4, try this first :
                      sudo apt-get install gcc-5.4 g++-5.4

                      Libretro developper :

                      • FBAlpha FBNeo (Arcade)
                      • Kronos (Sega Saturn/ST-V)
                      • YabaSanshiro (Sega Saturn)
                      • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
                      paradadf 1 Reply Last reply Reply Quote 0
                      • paradadf
                        paradadf Staff @barbudreadmon last edited by

                        @barbudreadmon still nothing :S

                        paradadf@paradadf-pc:~/fbalpha$ gcc --version
                        gcc (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609
                        Copyright (C) 2015 Free Software Foundation, Inc.
                        This is free software; see the source for copying conditions.  There is NO
                        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
                        
                        paradadf@paradadf-pc:~/fbalpha$ g++ --version
                        g++ (Ubuntu 5.4.0-6ubuntu1~16.04.2) 5.4.0 20160609
                        Copyright (C) 2015 Free Software Foundation, Inc.
                        This is free software; see the source for copying conditions.  There is NO
                        warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
                        
                        paradadf@paradadf-pc:~/fbalpha$ CC="gcc-5.4" CXX="g++-5.4" make -f makefile.libretro platform=rpi2
                        gcc-5.4 -DARM -O2 -DNDEBUG -fPIC -Wno-write-strings -D__LIBRETRO__ -DLSB_FIRST -marm -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard -ffast-math -DINLINE="static inline" -DSH2_INLINE="static inline" -D__LIBRETRO_OPTIMIZATIONS__ -DUSE_SPEEDHACKS -DFRONTEND_SUPPORTS_RGB565 -Isrc/burner/win32 -Isrc/burner/libretro -Isrc/burner/libretro/tchar -Isrc/burn -Isrc/cpu -Isrc/burn/snd -Isrc/burn/devices -Isrc/intf -Isrc/intf/input -Isrc/intf/cd -Isrc/intf/audio -Isrc/burner -Isrc/cpu -Isrc/cpu/i8039 -Isrc/cpu/i8051 -Isrc/dep/libs/zlib -Isrc/burn/drv/capcom -Isrc/burn/drv/konami -Isrc/burn/drv/dataeast -Isrc/burn/drv/cave -Isrc/burn/drv/neogeo -Isrc/burn/drv/psikyo -Isrc/burn/drv/sega -Isrc/burn/drv/toaplan -Isrc/burn/drv/taito -Isrc/dep/generated -Isrc/dep/libs -c src/burner/unzip.c -o src/burner/unzip.o
                        /bin/sh: 1: gcc-5.4: not found
                        makefile.libretro:585: recipe for target 'src/burner/unzip.o' failed
                        make: *** [src/burner/unzip.o] Error 127
                        

                        If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

                        barbudreadmon 1 Reply Last reply Reply Quote 0
                        • barbudreadmon
                          barbudreadmon @paradadf last edited by

                          @paradadf Hmmm try with :
                          CC="gcc" CXX="g++" make -f makefile.libretro platform=rpi2

                          Libretro developper :

                          • FBAlpha FBNeo (Arcade)
                          • Kronos (Sega Saturn/ST-V)
                          • YabaSanshiro (Sega Saturn)
                          • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
                          paradadf 1 Reply Last reply Reply Quote 0
                          • paradadf
                            paradadf Staff @barbudreadmon last edited by

                            @barbudreadmon I get the first error again. But don't worry, I'll wait until recalbox gets updated to finish the list. Thank you!

                            If your question was answered, please mark it as solved: Topic Tools -> Ask a question + Topic Tools -> Mark as Solved

                            Substring 1 Reply Last reply Reply Quote 0
                            • Substring
                              Substring @paradadf last edited by Substring

                              @paradadf you can't compile the core without using buildroot. You'd just need to update the commit id of the .mk then make libretro-fba-dirclean && make libretro-fba from the root of the recalbox-buildroot repo

                              And we still need to improve the handling of some specific platforms, as said on one of your PR

                              Former dev - Please reply with @substring so that i am notified when you answer me
                              Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                              1 Reply Last reply Reply Quote 0
                              • gkralicek2
                                gkralicek2 @barbudreadmon last edited by

                                @barbudreadmon said in FBA new core option:

                                @gkralicek2 what about v0.2.97.36 ? "The killing blade Plus" performs around 57-60fps for me with v0.2.97.36, and my OC is lower. What's more, unlike porting v0.2.97.30/34 code to current fba, porting v0.2.97.36 code to current fba is something within my skills.

                                0.2.97.36 is indeed a tad better on "Killing Blade Plus" than 0.2.97.37 or 0.2.97.38 but still slower on "Spectral vs Generations" than 0.2.97.34 or .30 (the latter being the quickest of all).
                                Something has been changed to the FBA code after version 0.2.97.34 that has impacted the performances of PGM support in a negative way, but i don't know what exactly :=(
                                Could it be that early versions of FBA with PGM support were using some kind of "performance mode" vs "conservative mode" in the most recent releases (a bit like it is the case with SH2 support and the Fast vs Accurate mode) ?

                                1 Reply Last reply Reply Quote 0
                                • Substring
                                  Substring last edited by

                                  well ... i'll have to investigate much closer on the platform we specify to the makefile because ... ashamed ... for now ... we just specify amrvX and eventually cortexaN ... which means we never reach the rpi2 and even rpi3 platform ... which means no neon optimization ... sob

                                  Former dev - Please reply with @substring so that i am notified when you answer me
                                  Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                  barbudreadmon 1 Reply Last reply Reply Quote 0
                                  • rockaddicted
                                    rockaddicted last edited by

                                    @subs the fba cores that I give to @acris for testing are already built with rpi3 platform. I reworked the package. I didn't see any significant boost.

                                    Recalbox V4.1.0 - RPI3 OC - Xbox360 wireless
                                    Wiki ENG : https://github.com/recalbox/recalbox-os/wiki/Mini-How-To-(EN)
                                    Wiki FR : https://github.com/recalbox/recalbox-os/wiki/Mini-How-To-(FR)

                                    Don't forget to upvote messages if it has been useful ;)

                                    1 Reply Last reply Reply Quote 0
                                    • barbudreadmon
                                      barbudreadmon @Substring last edited by

                                      @subs said in FBA new core option:

                                      well ... i'll have to investigate much closer on the platform we specify to the makefile because ... ashamed ... for now ... we just specify amrvX and eventually cortexaN ... which means we never reach the rpi2 and even rpi3 platform ... which means no neon optimization ... sob

                                      There is no neon optimization in fba, this is a windows program written for x86, adding neon optimization would probably help with performance, but is beyond my skill.

                                      @gkralicek2 said in FBA new core option:

                                      @barbudreadmon said in FBA new core option:

                                      @gkralicek2 what about v0.2.97.36 ? "The killing blade Plus" performs around 57-60fps for me with v0.2.97.36, and my OC is lower. What's more, unlike porting v0.2.97.30/34 code to current fba, porting v0.2.97.36 code to current fba is something within my skills.

                                      0.2.97.36 is indeed a tad better on "Killing Blade Plus" than 0.2.97.37 or 0.2.97.38 but still slower on "Spectral vs Generations" than 0.2.97.34 or .30 (the latter being the quickest of all).
                                      Something has been changed to the FBA code after version 0.2.97.34 that has impacted the performances of PGM support in a negative way, but i don't know what exactly :=(
                                      Could it be that early versions of FBA with PGM support were using some kind of "performance mode" vs "conservative mode" in the most recent releases (a bit like it is the case with SH2 support and the Fast vs Accurate mode) ?

                                      That's just the result of fixing issues and adding new games to the pgm driver every few releases, emulation become more accurate, so more resources is needed. I'll give a try to porting v0.2.97.30-34 code to current fba when i have some time, but don't expect too much

                                      Libretro developper :

                                      • FBAlpha FBNeo (Arcade)
                                      • Kronos (Sega Saturn/ST-V)
                                      • YabaSanshiro (Sega Saturn)
                                      • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
                                      1 Reply Last reply Reply Quote 0
                                      • barbudreadmon
                                        barbudreadmon last edited by barbudreadmon

                                        My latest commit seems to increase fps in m68k games, it's still not enough to run Killing Blade Plus and Spectral vs Generation at full speed for me, but i still gained around 10 fps.

                                        Libretro developper :

                                        • FBAlpha FBNeo (Arcade)
                                        • Kronos (Sega Saturn/ST-V)
                                        • YabaSanshiro (Sega Saturn)
                                        • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
                                        1 Reply Last reply Reply Quote 0
                                        • Substring
                                          Substring last edited by

                                          @barbudreadmon compiled for pi3 :

                                          • in SVG, can't quit the training mode with the START + A or B. Runs between 45 and 54 fps during combat
                                          • Killing blande plus : even the PGM logo stutters, but the average ingame fps is higher than 50, say around 54

                                          Former dev - Please reply with @substring so that i am notified when you answer me
                                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                          1 Reply Last reply Reply Quote 0
                                          • barbudreadmon
                                            barbudreadmon last edited by barbudreadmon

                                            Also, there are still some games with bad/missing input (i'm not talking about analog issues), those have exotic input setup (seems to be mostly twin stick games). It would be nice to report any you find there : https://github.com/libretro/fbalpha/issues/102

                                            Libretro developper :

                                            • FBAlpha FBNeo (Arcade)
                                            • Kronos (Sega Saturn/ST-V)
                                            • YabaSanshiro (Sega Saturn)
                                            • Reicast Flycast (Dreamcast/Naomi/AtomisWave)
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            91
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com