pumpitupdev / pumptools

A collection of tools to run Pump It Up games.
The Unlicense
22 stars 7 forks source link

Frequent freezing when using a USB in NX2 #25

Open voidderef opened 3 years ago

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 23, 2021, 17:39

Summary

When using a USB Drive on NX2, I experience frequent freezes of 10+ seconds.

Expected behavior

Game should be able to read USB Drive and continue to run without issue

Current behavior

Game will freeze up randomly for 10+ seconds when a USB is being used.

Detailed Description

I am using a USB profile setup with the NX2 Profile Maker on VMBox running Ubuntu 20.10. The game will start up as usual with the USB drive connected, and I get past the "Connect your USB drive" screen without any issues. However, beyond this point, I began to experience freezes at random points of gameplay/menus. Video of the issue: https://youtu.be/3VCnJ-SKnhU

Steps to reproduce

  1. Create a USB Profile with the NX2 Profile Maker
  2. Set-up game using Method 1 to install dependencies and the 'lib-local' + 'lib-d' library packages within VMBox running Ubuntu 20.10
  3. Attach USB with profile data through VMBox and boot up NX2 as normal (I was using sudo ./piueb run for this.)
  4. Set-Up the USB Ports in Operator Menu and then attempt regular gameplay with the USB Profile in use.

Further things tested

Possible solution

Might be due to trying to run the USB through VMBox or the Profile Maker itself.

Context (Environment)

Pumptools version(s) affected

Game(s) and version(s) affected

Log output

See attachment. keyboard-conf.log

piueb.log

pumptools.log

Configuration files

See attachment. piuio-keyboard-conf.bin hook.conf

Command line arguments

sudo ./piueb run

APIs used

piuio-keyboard

OS version

Ubuntu 20.10 - "Linux regen-VirtualBox 5.8.0-40-generic #45-Ubuntu SMP Fri Jan 15 11:05:36 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux"

Hardware specs

voidderef commented 3 years ago

In GitLab by @icex2 on Jan 25, 2021, 20:19

Thanks for the detailed bug report. Appreciated you followed the template and included logs and all the stuff.

FYI: I don't have a lot of experience with running these games under any virtual machine, e.g. VirtualBox. I am doing development and testing on native Linux setups, only.

I assume you have done the following, but please confirm this explicitly: Have you tested the game without using USB drives and profile saving? Does it show the same/similar symptoms?

Tbh, I have no idea what's going on there. Unfortunately, the logs aren't helpful. =/

Some more things that you could try hoping that something might reveal further clues helping us to pinpoint the issue somehow:

If any of the tests reveal anything new/unusual, please report and include log files. A brief video showing it off is also useful.

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 26, 2021, 10:19

Running without USB Profiles removes the freezing, and any other issues I've had (i.e sync issues) are apparent with or without a drive connected.

So far:

This was all tested again this morning connected to pumpnet as I got your email with the credentials. (thanks!)

voidderef commented 3 years ago

In GitLab by @icex2 on Jan 26, 2021, 19:58

Running without USB Profiles removes the freezing, and any other issues I've had (i.e sync issues) are apparent with or without a drive connected.

What kind of syncing issues? Could this be related to either https://dev.s-ul.net/hackitup/pumptools/-/issues/14 or https://dev.s-ul.net/hackitup/pumptools/-/issues/24?

So far: ~list~

Well, it was worth a try. Since I haven't heard about or seen that issue myself, I would guess that it is someone VirtualBox related. I remember that we had the games running perfectly fine under VirtualBox but I cannot tell if we ever tested them with USB profiles.

Your hardware specs look more than good enough for something like the pump games. I would guess that everything would run perfectly fine once installed natively.

Could you give alternative virtualization options, e.g. VMWare, a try?

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 27, 2021, 09:56

What kind of syncing issues? Could this be related to either https://dev.s-ul.net/hackitup/pumptools/-/issues/14 or https://dev.s-ul.net/hackitup/pumptools/-/issues/24?

Looks similar to #14 to me? I never experienced skips in the arrows though, but the rest looks pretty similar to my problem.

Could you give alternative virtualization options, e.g. VMWare, a try?

I already have VMWare installed, I'll see if it turns out any better there today.

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 27, 2021, 12:05

Great news! VMWare Workstation 16 Player fixed the freezing issue! Less good news, we still got bad sync, and its running below 60 fps :\

voidderef commented 3 years ago

In GitLab by @icex2 on Jan 27, 2021, 19:54

Cool, thanks for giving this a try. I will add a section about this to the FAQ to have it documented.

Regarding the frame rate issues: Even PIU is rather straight forward if it comes to GPU resources, you still need proper hardware acceleration turned on.

Could you check if you have done that for the VM you are using to run NX2? This also includes installing the propriatary vmware tools in the guest VM.

In VMWare workstation, at least on the Linux version, select your VM, go to Settings -> Harwdare -> Display -> 3D Graphics and check "Accelerated 3D graphics"

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 28, 2021, 09:57

Huh, that's weird. Accelerated 3D Graphics had already been enabled. I'm really wondering what would cause the issue, since I'm allocating well above the required resources to the VM. I have the propriatary vmware tools installed on the guest VM too.

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 28, 2021, 10:15

PS: I tried Zero on both the VMBox and VMWare setups, all it really did was confirm the same issues I had with NX2 on both versions - were both were out of sync, VMBox ran too fast and VMWare ran too slow, so I can guess that no matter what game I run, I will experience these same issues.

voidderef commented 3 years ago

In GitLab by @icex2 on Jan 28, 2021, 11:38

Have you tried both full screen and window mode? For full screen, you might have to run it from non desktop UI environment and spawn a new xserver.

Furthermore, can you be a bit more specific about the off sync symptoms? For example, music drifting or syncing shifted by a fixed offset (though that’s something you have to guess)

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 28, 2021, 19:19

It feels like a mix of those two to me. It always starts off-sync and over time it slowly drifts off more and more, and it just audio in general that desyncs (sometimes in worldmax when scrolling between missions, theres a noticable delay between moving between missions and the sound it should make when you do so, so this is why I guess its all audo.

Unfortunately I haven't tried fullscreen yet, I could never figure out how to get it to run fullscreen, I'll try what you suggested though.

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 29, 2021, 09:04

Update: fullscreen did not fix the issue.

voidderef commented 3 years ago

In GitLab by @icex2 on Jan 29, 2021, 18:31

Then unfortunately I am out of ideas right now, sorry =/

voidderef commented 3 years ago

In GitLab by @icex2 on Jan 29, 2021, 18:34

I checked with a buddy who ran the games on virtual box some time ago already. He had better luck with virtual box than with vmware. Hardware aceleration is a must (did you actually have that enabled + virtual box tools installed on the guest?).

He also mentioned having issues with broken udev back then. USB host drivers messing around with the VM, USB 3.0 causing trouble, ...

Other than trying out different combinations of environments and settings, there is unfortunately no easy way to debug this (to our knowledge).

voidderef commented 3 years ago

In GitLab by @RegenTrop on Jan 29, 2021, 23:20

Definitely had hardware acceleration on on VMBox, I'll tinker around and see what I can do, and if I can't do anything to fix this, then oh well, atleast I tried.