1
0
mirror of https://github.com/djhackersdev/bemanitools.git synced 2024-11-24 06:40:11 +01:00
bemanitools/doc/popnhook
QCDLZCLW3K f8a09580ea Support pop'n music 15-18
* popnhook1 for pop'n 15 - 18 has been added
* popnio has been added
* inject.exe has new syntax for loading hook DLLs, `real.dll=hook.dll`. This will trigger an early IAT hook where it will load the EXE suspended without resolving imports, replace the reference to real.dll in the import table with hook.dll, and then resolve everything before launching. This allows for ezusb.dll to be hooked properly.
* launcher.exe also has a new early IAT hook feature now. Use `-I real.dll=hook.dll`. The idea is the same as described above for inject.exe.
* Updated ezusb constant namings based on what is visible in ezusb.dll's debug statements.

The launcher.exe implementation of early IAT hooking means that someone can implement popnhook2.dll for 19 and above. I have tried pop'n music Sunny Park using a modified version of popnhook1 and it seems to work to some degree: the I/O check and security check returns OK which means the ezusb hooking used in popnhook1 is also working for the later games using `launcher.exe -I ezusb.dll=ezusb2-popn-shim.dll ...`. The process is rather invasive (manually resolving all imports means more chances to fail) so it has been implemented in such a way that the launcher will work the same as it has before as long as `-I` isn't specified.

One questionable thing I am not confident about is the `texture_usage_fix` hack flag I added in the conf. As the comment says, pop'n music 16 will work in Windows XP without the flag being set, but the game will immediately crash on later OSes without the flag being set in my experience. No other games had this issue in my experience. Enabling it in other games doesn't seem to have any negative effects.
2022-06-10 22:46:59 +00:00
..
popnhook1.md Support pop'n music 15-18 2022-06-10 22:46:59 +00:00
README.md Support pop'n music 15-18 2022-06-10 22:46:59 +00:00

popnhook

popnhook is a collection of hook libraries for jubeat providing emulation and various patches to run these games on non BemaniPC hardware and newer Windows versions.

The hook libraries must be bootstrapped either using inject or launcher depending on the version you want to run. Further instructions are given in dedicated readme files for each popnhook version (see below).

Versions

popnhook comes in a few different flavors. The game and its engine changed over the years. Some game versions might require patches/parameters enabled which others don't need or have different AVS versions. Here is the list of supported games:

  • popnhook1: 15 ADVENTURE, 16 PARTY♪, 17 THE MOVIE, 18 せんごく列伝

When building bemanitools, independent packages are created for each set of games which are ready to be dropped on top of vanilla AC data dumps. We recommend using pristine dumps to avoid any conflicts with other hardcoded hacks or binary patches.

How to run

To run your game with popnhook, you have to use the inject tool to inject the DLL to the game process. dist/popn contains bat scripts with all the important parameters configured. Further parameters can be added but might not be required to run the game with default settings. Further information on how to setup the data for each specific version are elaborated in their dedicated readme files.

Eamuse network setup

Running pop'n music 15 through 18? Modify the appropriate popnhook-15.conf, popnhook-16.conf, popnhook-17.conf, or popnhook-18.conf.

Running anything newer?

  • Open the prop/ea3-config.xml
  • Replace the ea3/network/services URL with network service URL of your choice (for example http://my.eamuse.com)
  • Edit the ea3/id/pcbid

Command line options

Add the argument -h when running inject with popnhook to print help/usage information with a list of parameters you can apply to tweak various things.