1
0
mirror of https://github.com/djhackersdev/bemanitools.git synced 2024-11-24 06:40:11 +01:00
bemanitools/doc/popnhook/popnhook1.md
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

1.7 KiB

Game list

The following games are compatible with this version of popnhook:

  • pop'n music 15 ADVENTURE
  • pop'n music 16 PARTY♪
  • pop'n music 17 THE MOVIE
  • pop'n music 18 せんごく列伝

The games must be bootstrapped using inject.

Data setup and running the game

Unpack the package containing popnhook1 into the revision folder of your choice. Most likely, you want to target the latest revision you have to run the latest binary of the game with any bugfixes by developers.

The DLLs in this package should be in the same location as the game DLLs and executable - i.e. all these files should be in the same folder:

  • inject.exe
  • popn15.exe or popn16.exe or popn17.exe or popn18.exe
  • popnhook-15.conf or popnhook-16.conf or popnhook-17.conf or popnhook-18.conf
  • eamio.dll
  • popnio.dll
  • libavs-win32.dll
  • etc

Run the gamestart-15.bat or gamestart-16.bat or gamestart-17.bat or gamestart-18.bat file as admin.

Eamuse network setup

If you want to run the games online, you have to set a valid PCBID in the configuration file. You also have to set the url of the eamuse server you want to connect to.

Eamuse network setup

If you want to run the games online, you have to set a valid PCBID and EAMID (use the PCBID as the EAMID) in the configuration file or as a command line argument. You also have to set the url of the eamuse server you want to connect to.

Additional note regarding EAMID: This is provided as the identifier of the "eamuse license" to the server. Depending on the implementation of the server, this can lead to authentication failure resulting in a network error on boot or warning during gameplay.