Box86 - Linux Userspace x86 Emulator

Discussion in 'General Discussions' started by ptitSeb, Mar 3, 2019.

  1. elvissteinjr

    elvissteinjr Very Active Member

    Joined:
    Aug 23, 2013
    Messages:
    394
    Location:
    Germany
    Indeed it does. It also plays very well.
    The game is not CPU intensive and is rather held down by the GPU. Thanks to that, the actual resulting maximum frame rate is identical to the native version. Neat.

    Performance in numbers, though be warned these are neither 100% accurate nor properly averaged. Frame timing is displayed as the frame renders so the numbers are gone just as fast and fluctuate a bit too. Meaning they're rough average estimates of what I saw on the higher end.
    This is with frameskip limiting the game to 30fps, but the frame rates are identical with it turned off as well (my CC Pandora doesn't manage 60 there).


    What I did come across however was a segfault when attacking a certain enemy type. But this appears to also happen in a freshly compiled native build. Perhaps something broke with libs in current beta Code::Blocks PND? I'll get to debugging that myself later.
    It's certainly not Box86's fault here at least.


    Edit:
    I've managed to use version 1.0 data files with version 1.1 binaries on both ends. Good job me.
    Everything is fine.
     
    Last edited: Mar 15, 2019 at 4:39 AM
    levi and ptitSeb like this.
  2. ingoreis

    ingoreis Advanced Member

    Joined:
    Mar 7, 2012
    Messages:
    3,059
    Location:
    49.491276,8.423518
    I searched yesterday about good Linux RPGs which are X86 only for testings.
    Found mostly Visual Novells.

    I am searching for Games Like Ragnarok online.

    Skunks Linux 32Bit Version did started and with Omapdss even in Fullscreen.

    It makes Fun to experimenting.
    And i try mostly old X86 Things.

    Maybe i will try this Evening Descent3 :)
     
  3. TheOldOne

    TheOldOne Fallen Paladin

    Joined:
    Jul 22, 2015
    Messages:
    399
    Location:
    California
    Well what I found is I need a new MicroSD card for my potato.
     
  4. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,280
    Location:
    France, near Lyon
  5. TrashyMG

    TrashyMG Sarcasm Dispenser Staff Member

    Joined:
    Jan 18, 2010
    Messages:
    10,361
    I need to get my OMAP5 devboard a working OS again to fool with this. First step get the energy level to do so....
     
  6. Pickle

    Pickle Mega GP Mania

    Joined:
    May 30, 2006
    Messages:
    5,423
    Location:
    Detroit, Michigan
  7. ingoreis

    ingoreis Advanced Member

    Joined:
    Mar 7, 2012
    Messages:
    3,059
    Location:
    49.491276,8.423518
    I am happy that @ekianjo continue his Site.

    And i am thankfull to @ptitSeb for do all this Work for us.

    Tried to install Descent3 Linux Native Version on my Ubuntu,but its difficult.
    Maybe i have next days more Success :)

    After Step i want to try X2 from the X Universe,because it have a native Linux Version too.
     
  8. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,280
    Location:
    France, near Lyon
    @Farox : I have added some preliminary Signal handling, and now Hollywood Player does run (but a bit too slow on my Gigahertz).
     
    Last edited: Mar 16, 2019 at 8:50 PM
    levi and Farox like this.
  9. KidPaddle

    KidPaddle Member

    Joined:
    May 3, 2009
    Messages:
    103
    Location:
    Germany
    Maybe a bad idea, but It is possible using this nice piece of software, running arm compiled software on x86? An arm user space emulator running with native libs from x86.

    With this compiling for arm can be done without cross compiling and testing on x86.

    Thomas
     
  10. Silent-Hunter

    Silent-Hunter Hardcore Member

    Joined:
    May 29, 2010
    Messages:
    2,955
    Hey yeah, can it run in reverse?
     
  11. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,280
    Location:
    France, near Lyon
    That would be another software. The same method is doable, but all wrappers have to be redone, and the CPU emulator too...
     
    levi likes this.
  12. Silent-Hunter

    Silent-Hunter Hardcore Member

    Joined:
    May 29, 2010
    Messages:
    2,955
    I figured as much! That's okay, it's more useful to emulate x86 linux apps on ARM than the other way round anyway.
     
  13. xnopasaranx

    xnopasaranx Superbad!

    Joined:
    Jan 31, 2006
    Messages:
    3,294
    For anyone looking for (commercial) games to test, here is a small list of things I could imagine would possibly run and be interesting:
    - caves of qud
    - tangledeep
    - neurovoider
    - songbringer
    - retrocity rampage
    - Else Heart.break()
    - dungeon souls


    if you have a XU4 or something similar maybe:
    - rimworld
    - dwarf fortress

    I believe all of these have DRM free linux binaries available.
     
  14. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,280
    Location:
    France, near Lyon
    I haven't checked any of those title (I don't have most of them), but Neurovoider is a C# with XNA (FNA on linux) games, so it will run without box86 help. I think Else.Heart.Break() is a Unity games (I plan to have a look at unity games later, especially the libmono used, that is opensource, and probably can be wrapped for much better performances).

    But thanks for the list, I'll try later the ones I have.
     
    xnopasaranx likes this.
  15. xnopasaranx

    xnopasaranx Superbad!

    Joined:
    Jan 31, 2006
    Messages:
    3,294
    thanks! I am excited to see what is possible and how the project will get on. So much potential.
     
  16. Farox

    Farox Certified Guru

    Joined:
    Jan 8, 2009
    Messages:
    2,015
    Location:
    Italy
    Thanks i build one of latest revision (but not the latest with some fixes from MH-T) and give a go on Hollywood Player...it run but is too slow.

    Next i want to test some games from Locomalito (so YoYo games) i downloaded Gaurodan and surprising after adding x86 libssl and lib crypto to libs/i386 i have:
    -------------------------------------------------------------
    Setting PATH to /media/TEMPUS/eggnoggplus-linux:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games
    --------------------------------------------------------------
    Setting LD_LIBRARY_PATH to /media/TEMPUS/eggnoggplus-linux/lib:/lib:/usr/lib
    Debug level is 1
    BOX86_LD_LIBRARY_PATH: /media/TEMPUS/eggnoggplus-linux/lib/i386-linux-gnu/:/media/TEMPUS/eggnoggplus-linux/lib32/
    Using default BOX86_PATH: ./:bin/
    Counted 39 Env var
    Looking for ./runner
    Using emulated /media/TEMPUS/eggnoggplus-linux/lib/i386-linux-gnu/libstdc++.so.6
    Using native(wrapped) libm.so.6
    Using native(wrapped) libc.so.6
    Using native(wrapped) ld-linux.so.2
    Using native(wrapped) libpthread.so.0
    Using native(wrapped) librt.so.1
    Using emulated /media/TEMPUS/eggnoggplus-linux/lib/i386-linux-gnu/libgcc_s.so.1
    Using native(wrapped) libz.so.1
    Using native(wrapped) libXxf86vm.so.1
    LIBGL: Initialising gl4es
    LIBGL: v1.1.1 built on Feb 24 2019 20:20:50
    LIBGL: framebuffer output enabled
    LIBGL: Using GLES 2.0 backend
    LIBGL: loaded: libGLESv2.so
    LIBGL: loaded: libEGL.so
    LIBGL: Using GLES 2.0 backend
    LIBGL: Hardware Limited NPOT detected and used
    LIBGL: FBO are in core, and so used
    LIBGL: PointSprite are in core, and so used
    LIBGL: CubeMap are in core, and so used
    LIBGL: BlendColor is in core, and so used
    LIBGL: Blend Substract is in core, and so used
    LIBGL: Blend Function and Equation Separation is in core, and so used
    LIBGL: Texture Mirrored Repeat is in core, and so used
    LIBGL: Extension GL_OES_mapbuffer detected
    LIBGL: Extension GL_OES_element_index_uint detected and used
    LIBGL: Extension GL_OES_depth24 detected and used
    LIBGL: Extension GL_OES_rgb8_rgba8 detected and used
    LIBGL: Extension GL_EXT_multi_draw_arrays detected
    LIBGL: Extension GL_EXT_texture_format_BGRA8888 detected and used
    LIBGL: Extension GL_OES_texture_float detected and used
    LIBGL: Extension GL_OES_texture_half_float detected and used
    LIBGL: Extension GL_OES_fragment_precision_high detected and used
    LIBGL: Max vertex attrib: 8
    LIBGL: Extension GL_OES_standard_derivatives detected and used
    LIBGL: Max texture size: 2048
    LIBGL: Max Varying Vector: 8
    LIBGL: Texture Units: 4(8), Max lights: 8, Max planes: 6
    LIBGL: Hardware vendor is Imagination Technologies
    LIBGL: Targeting OpenGL 2.0
    LIBGL: Enable FastMath for cortex-a8
    LIBGL: Forcing NPOT support by disabling MIPMAP support for NPOT textures
    LIBGL: glXMakeCurrent FBO workaround enabled
    LIBGL: FBO workaround for using binded texture enabled
    LIBGL: Current folder is:/media/TEMPUS/eggnoggplus-linux
    Using native(wrapped) libGL.so.1
    Using native(wrapped) libopenal.so.1
    Using native(wrapped) libX11.so.6
    Using emulated /media/TEMPUS/eggnoggplus-linux/lib/i386-linux-gnu/libssl.so.1.0.0
    Using emulated /media/TEMPUS/eggnoggplus-linux/lib/i386-linux-gnu/libcrypto.so.1.0.0
    Using native(wrapped) libdl.so.2

    ***************************************
    * YoYo Games Linux Runner V0.1 *
    ***************************************
    CommandLine: -game game.unx
    ExeName= /media/TEMPUS/eggnoggplus-linux/runner
    MemoryManager allocated: 5575
    RunnerLoadGame: game.unx
    RunnerLoadGame() - assets/game.unx
    Checking if INIFile assets/options.ini Exists
    assets/options.ini file contents: [Linux]
    DisplayName="Gaurodan"

    INI DisplayName=Gaurodan
    Reading File assets/game.unx
    Loaded File assets/game.unx
    IFF wad found
    Get Resolution
    Get Header Information
    InitGMLFunctions
    HighScore..SavePrePend /home/farox/.config/Gaurodan/
    Game..Math..Graphic..Action..File..Resource..Interaction..3D..Particle..Misc..DS..Sound..DPlay..Physics..Gamepad..GAMEPAD: Initialising Ubuntu support
    GAMEPAD: 4 axis values (last) at 0xa8191fc0
    GAMEPAD: 4 axis values (last) at 0xa81922f0
    GAMEPAD: 4 axis values (last) at 0xa8194710
    GAMEPAD: 4 axis values (last) at 0xa8194a40
    Buffers..Networking..Shaders..YoYo..Fini
    Code_Load()
    VARI_Load()
    ID_STRG
    Create Window
    Display Size(Pixels): 800,480
    GameDisplayName=Gaurodan
    XF86VidModeExtension-Version 2.2
    Got Doublebuffered Visual!
    glX-Version 1.4
    Icon: w=64 h=64
    X Error: BadMatch
    Request Major code 72 ()
    Error Serial #21
    Current Serial #28

    I tryed with many parameters of LIBGL (FB= 1 or 2 or 3 ### GL=2.1 or only ES=1 or 2 ### FBO=with small and big sizes) but i have always the same error BadMatch
     
  17. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,280
    Location:
    France, near Lyon
    I may have broken something with some late fixes on gl4es (but I'm surprised even LIBGL_FB=3 doesn't run). I'll check that.
     
  18. ElPoco

    ElPoco Very Active Member

    Joined:
    Feb 16, 2012
    Messages:
    671
    Location:
    Paris, France
    I tried retro city rampage. The installer worked fine but the game itself complained about a missing libstdc++6, I guess I need to get the x86 version and put it in lib?
    Then I tried bit.trip.runner and it complained about missing libGL.so.1, I tried putting the one compiled from gl4es but it didn't work. Do I need to put the x86 version? In that case, do I need an extra step to get it to use gl4es?
     
  19. ptitSeb

    ptitSeb Serial Porter

    Joined:
    Aug 15, 2012
    Messages:
    8,280
    Location:
    France, near Lyon
    You'll need an x86 version of libstc++ and libgcc_s indeed. Grab the Airline Tycoon PND to get a version of them.
    For libGL.so, yes, it's gl4es (x86 version will be ignored anyway). Don't forget to use an LD_LIBRARY_PATH to point to it.
     
  20. ElPoco

    ElPoco Very Active Member

    Joined:
    Feb 16, 2012
    Messages:
    671
    Location:
    Paris, France
    Ok, I had the libGL from gl4es, but didn't have a LD_LIBRARY_PATH pointing to it (it was just in the same directory as the executable) that might have been the issue.
     

Share This Page

Loading...