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

p3io jubeats - Issues thread #92

Open
icex2 opened this issue Jan 6, 2022 · 20 comments
Open

p3io jubeats - Issues thread #92

icex2 opened this issue Jan 6, 2022 · 20 comments

Comments

@icex2
Copy link
Contributor

icex2 commented Jan 6, 2022

In GitLab by @mon on Jan 6, 2022, 10:54

After releasing the p3io support for Jubeat, a number of issues have been reported. I'll be collating them here so I have a nice list of things to work on.

  • knit, sometimes test menu is entered randomly. Seems identical to Random button presses/misfiring #89? What have you learnt about it so far @icex2?
  • Black plug code for knit/copious seems like it must match exactly. I am getting some reports of security failures. Should be fixable by just using the provided sidcode instead of a hardcoded one
  • knit/copious, some timers run fast (end-of-song timer, attract mode "welcome to jubeat" voice line). Happens in Spice too, so it's not bemanitools specific
  • reported by @hayu "If knit use eamio-icca.dll together, It can use wavepass reader perfectly, but if copious use it, copious will have a problem after reading the card once"
  • Documentation needs to be clearer, I've had someone try to use the knit jbhook2 on copious
  • knit has been reported to crash when saving settings in the test menu (needs triage)
  • It may be better for vertical rendering to be the default as the crash is logless and everyone expects vertical rendering

I will be adding to this list as things are reported, removing from it as I triage and resolve issues, and linking it to other people to submit their own issues as required.

@icex2
Copy link
Contributor Author

icex2 commented Jan 6, 2022

In GitLab by @mon on Jan 6, 2022, 10:55

@hayu I don't quite understand what you mean - does your cabinet have a wavepass reader? Does copious also fail on the second scan when using keyboard?

@icex2
Copy link
Contributor Author

icex2 commented Jan 7, 2022

In GitLab by @hayu on Jan 7, 2022, 08:52

I'm sorry for causing confusion by selecting the wrong word. I tested with P4IO PC and P3IO PC in cab with contactless reader.

  • jbio-p4io + eamio-icca -> (need to recheck) card cannot be used after recognizing it once. and the game stopped when I enter IC CARD CHECK in test mode.
  • jbio-p4io + eamio -> real contactless card reader is not working, and the '+' button on the keyboard number pad is still working. At this time, there is no problem recognizing the card several times.
  • real P3IO -> There's always a security error when the launcher uses the "-p" option. I realized that it's because the round plug is directly connected to P3IO, but I wish it's possible to bypass.

I'm sorry I need to reconfirm the most important part. I'll test it again when I have time and catch the log.

@icex2
Copy link
Contributor Author

icex2 commented Jan 7, 2022

In GitLab by @hayu on Jan 7, 2022, 11:46

I just discovered that logs are not recorded from the time the copious game screen appears. maybe from 5.37.
and card reader error symptoms are irregular, so I'm trying to figure it out again.

(edit) There was a card reader problem with the same symptoms on the knit.

@icex2
Copy link
Contributor Author

icex2 commented Jan 7, 2022

Provided some feedback regarding the misfiring issue in #89. Since this seems to be an issue across games, I suggest we continue with this in the issue #89 and collect any information we have on this there.

@icex2
Copy link
Contributor Author

icex2 commented Jan 9, 2022

In GitLab by @mon on Jan 9, 2022, 15:25

@hayu Thank you very much for your clarification.

  • eamio-icca, this is very curious. Does eamiotest.exe work as expected? Can you scan the IC card twice using it?
  • "jbio-p4io + eamio -> real contactless card reader is not working" - this is expected, since normal eamio uses keyboard input
  • real P3IO: sorry, but this is not supported. It might seem simple but bypassing just the security check would be very difficult. The only true solution is to make a jbio-p3io, but I will not do this because it will take too much time.

About the logs - if knit is anything like jb2008, it doesn't log much, and may also disable logging (jubeat is notoriously inefficient). There might be ways around it, but for now I hope you can try eamiotest.exe and see if it works.

@icex2
Copy link
Contributor Author

icex2 commented Jan 9, 2022

In GitLab by @hayu on Jan 9, 2022, 17:33

  • I've never thought of using eamiotest.exe with eamio-icca. lol thanks
  • Using the '-c' option using jbio-p4io and eamio, the game does not boot properly, but it is difficult to accurately explain the symptoms, so I omitted it. I guess it's because It can't use H44B too.
  • Everyone may think that P3IO support is easy, but after looking at the source, I was convinced that it was not easy. and I give up because I don't have the ability to bypass the plug check by modifying device.dll.
  • Knits continue to update logs even after the game screen is created, but copious stops updating logs.
  • I can't check it because I don't have any data for jb2008. and although outside of discussion, that's too bad that ripples can't boot either. I don't know who can upload the unpacked module in 2022, but I wish someone to do it.

@icex2
Copy link
Contributor Author

icex2 commented Jan 10, 2022

In GitLab by @hayu on Jan 10, 2022, 08:41

There is no problem using contactless reader in eamiotest. It scan well several times.

@icex2
Copy link
Contributor Author

icex2 commented Jan 10, 2022

In GitLab by @mon on Jan 10, 2022, 13:38

Thank you for the extra information - I will see what I can do.

@icex2
Copy link
Contributor Author

icex2 commented Apr 3, 2022

In GitLab by @expandbanana on Apr 3, 2022, 07:13

All 16 buttons go off on Copious with the magic box jbio at seemingly random intervals, but doesn't go into test/service. Can also hang the test menu sometimes when it happens while there.

@icex2
Copy link
Contributor Author

icex2 commented Apr 3, 2022

In GitLab by @mon on Apr 3, 2022, 14:15

Definitely seems like another instance of #89. The most painful bug in all of bemanitools? Quite possibly!

@icex2
Copy link
Contributor Author

icex2 commented Apr 3, 2022

In GitLab by @mon on Apr 3, 2022, 14:29

Ok, some updates. Any code changes are in my jb-fixes branch, which is an upcoming MR.

  • button misfires: still no idea. IO is crazy yo.
  • Security errors: sec code is now taken from ea3-config. Mismatching code (due to append.txt being present) will abort boot with a user message.
  • fast timers: the game uses some utterly terrible frame timing code that assumes the fps is 30, which totally falls apart in windowed mode on modern 60Hz systems. All timing is correct when the display is set to 30Hz. Fixing it is going to be far more effort than it's worth, just run fullscreen or windowed with a desktop FPS of 30.
  • wavepass errors: @hayu, a thought. If it's not too difficult, can you try running SDVX with the wavepass reader? I wonder if there is an edge case in eamio-icca that is hit with wavepass only?
  • docs: eh, whatever. I know it's a thing, if anyone has the same issue I can triage easily
  • crash in test menu: really cannot replicate at all. Not much else to do...
  • vertical as default: too annoying to change the defaults as I can't think of a good letter. Have just modified everything in dist/ to render vertical by default.

@icex2
Copy link
Contributor Author

icex2 commented Apr 3, 2022

In GitLab by @hayu on Apr 3, 2022, 14:48

@mon You want me to run SDVX using eamio-icca?

@icex2
Copy link
Contributor Author

icex2 commented Apr 3, 2022

In GitLab by @mon on Apr 3, 2022, 14:53

Yes - I wonder if eamio-icca itself has problems, instead of jbhook.

@icex2
Copy link
Contributor Author

icex2 commented Apr 3, 2022

In GitLab by @hayu on Apr 3, 2022, 15:11

Ok I'll try it soon.

@icex2
Copy link
Contributor Author

icex2 commented Apr 3, 2022

The symptoms I have observed with this issue so far in #89 point to an issue in the hooking backend, probably capnhook. The following does not back it up further, rather adds more mystery: pumptools's hook backend is based on capnhook and experiences the same issues. I do not know if these issues are connected. Considering that pumptools runs on Linux while bemanitools runs on Windows, it may be unlikely. However, the code on pumptools is based of capnhook and uses the same design and shares serveral platform independent data structures, e.g. list implementation.
This might be a clue reducing the scope of the issue, but could also be misleading.

Maybe it helps to get an investigation started.

I remember trying to debug this issue several times but have failed due to not being able to reproduce the issue locally and reliably.

@icex2
Copy link
Contributor Author

icex2 commented May 5, 2022

In GitLab by @hayu on May 5, 2022, 09:48

Sorry I'm late. I tested eamiotest, jubeat knit, copious, festo, SDVX IV, and V on Windows 10 x64 PC using eamio-icca.

The wavepass reader works fine with eamiotest, festo, SDVX IV, and V. but knit and copious stop I:aciodrv-device: Resetting device without further progress.

test version is 5.38. Recently, the cab was not available, so there was no real IO because it was tested on a PC. Please let me know if you need any more results.

+) Who should I ask for permission to Merge requests? I want to add windowed mode support to jbhook3.

@icex2
Copy link
Contributor Author

icex2 commented May 6, 2022

Actually, I noticed just now that @mon has not merged his approved MR https://dev.s-ul.net/djhackers/bemanitools/-/merge_requests/109 yet. I can look into that later and push out another minor release.

The wavepass reader works fine with eamiotest, festo, SDVX IV, and V. but knit and copious stop I:aciodrv-device: Resetting device without further progress.

Not having more data points on that, but that does sound like interaction with the aciodrv is slightly different on some games for different card types. You sound like you have some dev experience. Considering you have a setup to test and reproduce this, you could look into adding some simple debug prints/printf calls to several spots in the eamio-icca library. Build it, set logging to file, run the game and reproduce the issue. Get output for a working case, e.g. from festo, and a non working case, e.g. knit, and compare the two. Try to understand what's different in the output and where it gets stuck. With the good debug output, you might be able to understand what might be to expect next on the test where the game gets stuck. That insight might already give us some pointers what we need to further look into next.

I hope this helps somewhat as I don't have a lot of time to spare for bemanitools right now. Otherwise, an actual live debug session might be a valuable thing to do.

Let me know if you have any questions or ideas how I might support you.

+) Who should I ask for permission to Merge requests? I want to add windowed mode support to jbhook3.

Just open a MR once you got something you would like to get reviewed. There is @XYen and myself who can review less game specific things, which includes window mode support. For very game specific stuff for games we haven't worked on, it's usually good to also get @mon's perspective. Depending on our confidence we will make sure to loop in the right people.

@icex2
Copy link
Contributor Author

icex2 commented May 6, 2022

In GitLab by @hayu on May 6, 2022, 22:54

I also thought it strange that the MR of Mon would not be merged for a long time lol

Shamefully, I have no previous dev experience, but I tried out as a wild man because of BEMANI. I will try the part you mentioned by myself and ask for help if there is a problem. and now I have confirmed that I have a new merge request button. Thanks!

@icex2
Copy link
Contributor Author

icex2 commented May 23, 2022

In GitLab by @hayu on May 23, 2022, 17:10

Is there anyone else who turns off before the game window pops up? All other versions are fine, but only Copious has this problem. This symptom appears approximately once every 5~10 times. I've had problems before, but I forgot the report. When the game is turned off, no unusual logs occur, and they just turn off at the end of the attached log.txt.

from Windows 10 x64 PC

log.txt

@icex2
Copy link
Contributor Author

icex2 commented Apr 6, 2023

FYI that the PR #236 includes potential fixes. The fixes are also included in the tagged release 5.44. Any testing feedback is welcome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant