djhackersdev / bemanitools

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

Add pop'n music 19 - 24 support #96

Open icex2 opened 2 years ago

icex2 commented 2 years ago

Re-focused follow-up to https://dev.s-ul.net/djhackers/bemanitools/-/issues/28.

icex2 commented 2 years ago

In GitLab by @33c17f40 on Jun 11, 2022, 02:31

Preliminary work required for pop'n 19 and later was added in https://dev.s-ul.net/djhackers/bemanitools/-/merge_requests/118. The most important being the changes to launcher to add the -I early IAT hook feature.

As noted in the PR, you can use the syntax launcher.exe -I ezusb.dll=ezusb2-popn-shim.dll ... to specify that ezusb.dll should be replaced with ezusb2-popn-shim.dll early and perform the steps required to manually resolve imports after that. I did test the feature during development but my focus was on inject.exe so there may still be some bugs lurking in the feature.

You should be able to use popnhook1 to get a good start on popnhook2+. When testing the launcher.exe changes I was able to get pop'n 21 successfully booting using a modified version of popnhook1 (removed some of the filesystem hooks, removed avs hooks, etc).

icex2 commented 2 years ago

In GitLab by @33c17f40 on Jun 11, 2022, 02:43

I pushed the code I was using for testing at that time to a branch in my fork. https://dev.s-ul.net/33c17f40/bemanitools/-/commit/af31640d4aabae974c14e4bd67e8e236ca4b68e3

No guarantees it still works.

icex2 commented 2 years ago

In GitLab by @HAYU on Jun 12, 2022, 18:24

I succeeded in running pop'n 21 with this syntax.

launcher -I ezusb.dll=ezusb2-popn-shim.dll -K popnhook2.dll popn21.dll

However, LAMP CHECK could not be passed on HD cab mode and could not be booted at all from pop'n 22~.