djhackersdev / bemanitools

Runs recent Konami arcade games and emulates various arcade hardware.
The Unlicense
79 stars 15 forks source link

Chinese IIDX styles hang on Initialize Game screen #101

Closed icex2 closed 1 year ago

icex2 commented 1 year ago

In GitLab by @JeffPaine on Oct 17, 2022, 01:22

EDIT: I tried Chinese tricoro as well and that crashes nearly identically. Updated with that info.

Summary

Both Chinese IIDX games hang on the Initialize Game screen. The first game gets as far as "Initialize Game.........." (ten dots) before hanging, tricoro only gets as far as "Initialize Game." (one dot)

Expected behavior

The game should finish initializing and start the game.

Current behavior

The game hangs and never finishes initializing.

Detailed Description

EDIT: This description is for the first Chinese style but mostly applies to tricoro as well, see edit below for more details.

Trying to run the game for the first time. Backup data comes up as BAD (to be expected) but for some reason the game doesn't create good backup data before trying to start, unlike every Japanese release. I'm not sure if that has anything to do with it. I tried copying my settings from Japanese Resort Anthem but backup data still comes up as BAD. It also appears to try to contact a network and throws NETWORK ERROR 5-0000-0000 which is dismissed with the service key before it goes to the Initialize Game screen.

It should also be noted that, since the Chinese IIDX data didn't have a prop folder, I copied an unmodified prop folder from Japanese Resort Anthem. The only modification I made (aside from the stuff listed in the iidxhook4 documentation) is to set the game's datecode to JDZ:C:A:A:2011020800 in ea3-config.xml

Things I've tried that didn't help:

Also just to be clear all the Japanese styles work fine on this same setup.

EDIT: It occurred to me that I don't need the prop folder at all >_> so I deleted it

As for tricoro, it also has bad backup data but doesn't create good backup data before going to Initialize Game. I also tried copying my Lincle backup data to the Chinese tricoro folder, again it came up as bad backup data. tricoro doesn't try to connect to a network so that part doesn't apply. I didn't try any of the "things that didn't help" with tricoro because I assumed they wouldn't work.

Also, with tricoro, I tried running factory.exe just to see if it did anything. It did not.

Steps to reproduce

For the first Chinese game (EDIT: everything regarding the prop folder is unnecessary):

  1. Download the data and the HTPEC unpacked executables
  2. Delete the modules folder from the data
  3. Copy everything in the modules_2011020800 folder to the root folder of the data
  4. Since the data doesn't include a prop folder, copy an unmodified prop folder from Japanese Resort Anthem
  5. Make all the modifications to the prop folder listed in the iidxhook4 documentation
  6. Change the datecode in ea3-config.xml to JDZ:C:A:A:2011020800
  7. Extract the iidxhook4-cn zip into the root folder of the data
  8. Try to run the game

For tricoro:

  1. Download the data
  2. Move everything from the modules folder to the root folder
  3. Delete the modules folder
  4. Extract the iidxhook5-cn zip into the root folder
  5. Try to run the game

Possible solution

Possibly this is caused by nonexistent backup data? That's the only obvious difference in behavior between the Chinese styles and the Japanese styles.

Context (Environment)

Bemanitools version(s) affected

Game(s) and version(s) affected

Log output

First Chinese game: See attachment.inject.log

tricoro: See attachment.inject.log

Configuration files

First Chinese game: See attachment.iidxhook-18-cn.conf

tricoro: See attachment.iidxhook-20-cn.conf

Command line arguments

Used gamestart-18-cn.bat (and gamestart-20-cn.bat), only modified to add "-Y log.txt" for the purposes of creating a log for this bug report.

APIs used

None

OS version

Hardware specs

icex2 commented 1 year ago

In GitLab by @JeffPaine on Oct 17, 2022, 07:57

Tried Chinese tricoro, also doesn't work, updated first post accordingly

icex2 commented 1 year ago

Hey, thanks for the detailed report. I haven't worked on that implementation myself and also, due to lack of time, not had time to test these, yet.

Relevant MRs for reference:

Both were submitted and tested by @garbage. So maybe they can help you out here and triage this issue better.

Have you tried running other versions on the same hardware and OS setup? Especially the japanese/original iidx 18 and 19 might be interesting as the chinese versions are based off these versions. Might be interesting to know if these run or do not run either.

icex2 commented 1 year ago

In GitLab by @JeffPaine on Oct 23, 2022, 19:44

Yeah, all the Japanese styles work fine from 9th to CH (the small exception being DJT with two known bugs detailed elsewhere)

icex2 commented 1 year ago

In GitLab by @JeffPaine on Dec 18, 2022, 12:19

Well, out of boredom and the fact that these still aren't working bugging me, I decided to take another look. A closer look at the log showed that it couldn't mount the dev\nvram and dev\raw folders, which did not exist in the directory, so I manually created a dev\nvram, dev\raw, and dev\raw\proxy folder (copying the folder tree from Japanese Resort Anthem). Voila, it worked! (Only tried on Chinese Resort Anthem for now but I'm betting it's the same problem with Chinese tricoro.)

Suggested fix: modify the gamestart.bat files to create the proper dev folders before launching the game.

icex2 commented 1 year ago

Since you addressed this in https://dev.s-ul.net/djhackers/bemanitools/-/merge_requests/131 which I just merged, I consider this issue resolved. Feel free to open a new issue if there are similar issues to report.