Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oxygen Not Included (Native) #298

Open
ricoazzurro opened this issue Jun 4, 2023 · 17 comments
Open

Oxygen Not Included (Native) #298

ricoazzurro opened this issue Jun 4, 2023 · 17 comments
Labels
box64 Run with Box64 OpenGL 3+ OpenGL 3.x or more Unity Game made with Unity Working Tested on a platform and it was working fine

Comments

@ricoazzurro
Copy link

Description

Oxygen Not Included, U46-552078-S, with Spaced Out! DLC, Linux x64, Steam, Engine: Unity

Box64 with Dynarec v0.2.3 f4c8c29

Rock 5B, LFS, BSP kernel 5.10.160+ rkr4, Gnome 44.1
PAN_MESA_DEBUG=gofaster,gl3
1080p, default game setting

With Goldberg.

Working.

Need preload x64 zlib. Thanks to @thaihugo 's tips.
Mine is aquired from debian deb and set in start script as
export LD_PRELOAD=/opt/box-libs/x86_64/libz.so.1

Otherwise the game will crash when creating the world in menu.

rico [ /opt/games/oxygen_not_included ]$ ./box64-start.sh 
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Dynarec will try tp generate x86 precise IEEE->int rounding
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Running on Cortex-A55 Cortex-A76 with 8 Cores
Params database has 24 entries
Box64 with Dynarec v0.2.3 f4c8c29 built on Jun  4 2023 21:38:41
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 62 Env var
BOX64 try to Preload /opt/box-libs/x86_64/libz.so.1 
Looking for ./OxygenNotIncluded
Rename process to "OxygenNotIncluded"
Using emulated /opt/box-libs/x86_64/libz.so.1
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libpthread.so.0
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
Using emulated UnityPlayer.so
Using native(wrapped) libm.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) libdl.so.2
Loading in SingleInstance mode
Using native(wrapped) libX11.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXinerama.so.1
Using native(wrapped) libXi.so.6
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXss.so.1
Using native(wrapped) libXxf86vm.so.1
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXinerama.so.1
Using native(wrapped) libXi.so.6
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXss.so.1
Using native(wrapped) libXxf86vm.so.1
Using native(wrapped) libGL.so.1
Using native(wrapped) libudev.so.1
./box64-start.sh: line 11:  3007 Aborted                 (core dumped) box64 ./"OxygenNotIncluded"

Tested on

Box64 with Dynarec v0.2.3 f4c8c29

Rock 5B, LFS, BSP kernel 5.10.160+ rkr4, Gnome 44.1
PAN_MESA_DEBUG=gofaster,gl3
1080p, default game setting

Status

Previous behavior:

Not working when creating the world.
#233

Current behavior:

Working.
Thanks to @thaihugo 's tips about preload x64 zlib.

Screenshots

Oxygen Not Included-1
Oxygen Not Included-2

OpenGL

OpenGL 3+

Unity engine build: 2018.2.20f1
Unity engine build: 2019.4.14
MonoBleedingEdge (In game folder)

Additional Information

Need preload x64 zlib
https://www.pcgamingwiki.com/wiki/Oxygen_Not_Included

@ptitSeb ptitSeb added Unity Game made with Unity OpenGL 3+ OpenGL 3.x or more Working Tested on a platform and it was working fine box64 Run with Box64 labels Jun 4, 2023
@ricoazzurro
Copy link
Author

Tested the undated version U47.561558 Steam with lastest box64 git.
Now to launch the game, no need of preloading x64 libz.so.1, but requires of export BOX64_DYNAREC_FASTROUND=0 to create the world.

Box64 with Dynarec v0.2.3 7e282c9

Rock 5B, LFS, BSP kernel 5.10.160 rkr4.1, Gnome 44.2
PAN_MESA_DEBUG=gofaster,gl3
1080p, default game setting

@ptitSeb
Copy link
Owner

ptitSeb commented Jun 17, 2023

You can add a profile in box64.box64rc and make a PR with this.

@ricoazzurro
Copy link
Author

Thanks. I'll do it. May take some time. It'll be good practice opportunity for my learning git.

@ksco
Copy link
Contributor

ksco commented Jun 17, 2023

Feel free to ping me on tg if you need any help :)

@ricoazzurro
Copy link
Author

Re-Tested for New version or New platform

Oxygen Not Included, U51-600112-S, Linux x64, Steam, Engine: Unity
Included DLC: Spaced Out!

Box64 with Dynarec v0.2.7 b77c8fe
Rock 5B, LFS, Kernel rk-6.1-rkr1-panthor-v6, Mesa 24.1.0, Gnome 46

  • Working.
  • Speed issue.
  • export BOX64_DYNAREC_FASTROUND=0 is needed to create the world.
  • export PAN_MESA_DEBUG=gl3

Working Log,

rico [ /opt/games/oxygen_not_included ]$ ./box64-start.sh 
Dynarec will try to emulate a strong memory model with limited performance loss
Dynarec will try tp generate x86 precise IEEE->int rounding
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Cortex-A55 Cortex-A76 with 8 Cores
Will use Hardware counter measured at 24.0 MHz emulating 768 MHz
Params database has 61 entries
Box64 with Dynarec v0.2.7 b77c8fe built on Apr  8 2024 06:11:35
BOX64: Detected 48bits at least of address space
Counted 64 Env var
BOX64 LIB PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/
BOX64 BIN PATH: ./:bin/:/opt/rustc/bin/:/usr/local/bin/:/usr/bin/:/opt/ant/bin/:/opt/jdk/bin/:/opt/bin/
Looking for ./OxygenNotIncluded
Rename process to "OxygenNotIncluded"
Using emulated UnityPlayer.so
Using native(wrapped) libm.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) libpthread.so.0
Using native(wrapped) libc.so.6
Using native(wrapped) ld-linux-x86-64.so.2
Using native(wrapped) libdl.so.2
Using native(wrapped) libutil.so.1
Using native(wrapped) librt.so.1
Using native(wrapped) libbsd.so.0
Loading in SingleInstance mode
Using native(wrapped) libX11.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXfixes.so.3
Using native(wrapped) libXrender.so.1
Using native(wrapped) libXinerama.so.1
Using native(wrapped) libXi.so.6
Using native(wrapped) libXrandr.so.2
Using native(wrapped) libXss.so.1
Using native(wrapped) libXxf86vm.so.1
Using native(wrapped) libGL.so.1
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using native(wrapped) libudev.so.1

Tested on

  • Box64 with Dynarec v0.2.7 b77c8fe
  • Radxa Rock 5B, (RK3588, Cortex-A76+Cortex-A55, Mali-G610)
  • LFS r12.1-30
    BSP Kernel 6.1.43+ (rk-6.1-rkr1-panthor-v6 6bd0bc6)
    Mesa 24.1.0-devel (git-fe36cf6cad)
    Gnome 46
  • 1080p, Default game settings

@ptitSeb
Copy link
Owner

ptitSeb commented Apr 10, 2024

still waiting for the box64rc change for that one ;)

@ksco
Copy link
Contributor

ksco commented Apr 10, 2024

Still, feel free to ping me for help 😄

@sehraf
Copy link

sehraf commented Apr 10, 2024

I took the liberty to create the PR 😁
The game actually does not run/start on my system but I did verify that BOX64_DYNAREC_FASTROUND=0 is applied.

@ksco
Copy link
Contributor

ksco commented Apr 10, 2024

This is supposed to the opportunity for @ricoazzurro to learn git, and you took it away! (I'm kidding)

ptitSeb pushed a commit to ptitSeb/box64 that referenced this issue Apr 10, 2024
@ricoazzurro
Copy link
Author

hehe. Thanks seharaf.
And thank you all.
I'll learn git and there are still many games I'm testing and can contribute later.
Have a lot fun in the project :)

@ricoazzurro
Copy link
Author

I took the liberty to create the PR 😁 The game actually does not run/start on my system but I did verify that BOX64_DYNAREC_FASTROUND=0 is applied.

It took a lot time to launch.
(5 mins to loading start screen. 10 mins to the crew member select screen. so a little patience :))

@ptitSeb
Copy link
Owner

ptitSeb commented Apr 10, 2024

It took a lot time to launch. (5 mins to loading start screen. 10 mins to the crew member select screen. so a little patience :))

Wow, that seems a bit long. I wonder if there can be some missing opcode in the dynarec for this game maybe? That loading time looks a bit anormal...

@ricoazzurro
Copy link
Author

This game and rimworld need a lot loading time.
I'll post the log with BOX64_SHOWSEGV=1 BOX64_SHOWBT=1 BOX64_ROLLING_LOG=1 later.

@ptitSeb
Copy link
Owner

ptitSeb commented Apr 10, 2024

This game and rimworld need a lot loading time. I'll post the log with BOX64_SHOWSEGV=1 BOX64_SHOWBT=1 BOX64_ROLLING_LOG=1 later.

Add some BOX64_DYNAREC_MISSING=1 to the mix...

@ksco
Copy link
Contributor

ksco commented Apr 10, 2024

Maybe add BOX64_DYNAREC_MISSING=1 too, this will print out all the unimplemented opcodes, which might be the slowness came from.

@sehraf
Copy link

sehraf commented Apr 10, 2024

I took the liberty to create the PR 😁 The game actually does not run/start on my system but I did verify that BOX64_DYNAREC_FASTROUND=0 is applied.

It took a lot time to launch. (5 mins to loading start screen. 10 mins to the crew member select screen. so a little patience :))

Just gave it a try again and guess what ... it launches after a few minutes 🤷 (it did crash before)

There was nothing out of the ordinary when using BOX64_SHOWSEGV=1 BOX64_SHOWBT=1 BOX64_ROLLING_LOG=1 BOX64_DYNAREC_MISSING=1, most notable was that there was one single core/thread at 100% load

@ricoazzurro
Copy link
Author

yeah. Had that before. 1st time crashes, 2nd or 3rd time boots.
IIRC, Oxygen Not Included, rimworld, parkitect ...
maybe Dynarec needs more time or try to improve itself :)

Javier97sm pushed a commit to Javier97sm/box64 that referenced this issue Aug 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
box64 Run with Box64 OpenGL 3+ OpenGL 3.x or more Unity Game made with Unity Working Tested on a platform and it was working fine
Projects
None yet
Development

No branches or pull requests

4 participants