Repository navigation
Support for ppcomp, LS.dat & BetterAEP - #3363
florianessl wants to merge 18 commits into
Conversation
… one call in FileFinder; Moved constant for save file count to "Player::Constants::MaxSaveFiles" (Many instances did not check the overridden count)
… Maniac commands into "Game_Interpreter_Shared" (Many other patches implemented something similar before MP)
c71cfc4 to
80d1f95
Compare
…mulation support for some external programs can be properly handled.
…n game "Earthcraft")
…euristic check for the "full" version of PowerPatch (unsupported)
…l tools is found in the game directory
…avior. (Could maybe also be used for improving compatibility the Maniac Load command)
…s that also make use of "ppcomp")
…ript handling (Re-enabling it by default, for easier testing)
- Make options code more dynamic, similar to Scene_Menu, so the option positions could theoretically be swapped or removed entirely - Added static field "force_cursor_index" to allow overriding the default cursor position
…ameMenu" & "CallTitleScreen"
80d1f95 to
fa01f3a
Compare
|
The keystate stuff is already in maniac patch https://github.com/EasyRPG/Player/blob/master/src/maniac_patch.cpp#L674 So this could be unified in the file you proposed |
Yeah, I already moved that mapping code as part of another branch that's still WIP: |
There was a problem hiding this comment.
Needs some explanation:
While testing around with the ppcomp debug utility, I first came to the conclusion, that this command is meant to always force the Title Scene, even if something like BetterAEP (also made by Cherry) is used.
At least, I had managed this once in RPG_RT & then promptly added this new force flag to the Player, to ignore the "new-game" option set by other patches/configurations.
But then I couldn't reproduce this at all later. Using this command in a BetterAEP-patched RPG_RT seems to always skip the title screen.
Didn't mean to commit this line at first, but the flag could still be a useful feature.
|
hm that the Ineluki script ran async is another bug. Makes no sense to execute a script this way. Though there are almost no games using Ineluki in the web player so was never noticed 🤔 |
KeyPatch scripts actually do have a setting for "Wait" that is ignored by EasyRPG but I never checked the details of that one out for myself. So this could maybe lead to behavior changes in some instances :/ |
|
In case a real user of BetterAEP is useful while this is in progress: Final Fantasy VII Origin (French RPG Maker 2003 fan game, RPG_RT 1.0.8.0) depends on it for two things, and both fail silently today. It drives the patch entirely through the variable, never through Cherry's event commands — codes 5001–5005 appear nowhere in the project. Three writes to variable 3350, each followed by
The third is the useful one for testing: it is the same event and the same code path, and it behaves correctly, so a fix can be checked against a control that already passes. Screenshots of the title screen under the current continuous build are attached, with the cursor on each of the two entries. Everything drawn works — the cursor moves, the artwork responds — so the gap is purely the action behind the entry, which is what makes it a clean test for this branch. Happy to test a build against it — the game is not redistributable, but I can reach either behaviour in seconds and report back. (Unrelated to this patch, I opened #3687 about the same game; mentioning it only so the two are not taken for the same report.)
|



Support for the "Compact" version of Cherry's PowerPatch features. This version wasn't really a patch but just an external utility program named "ppcomp.exe" (sometimes renamed to ppcomp.dat or ppcomp.dll) which provided access to some new functions by accessing the memory of the running game process.
Detecting the original PowerPatch to give info about compatibility
This is not the full version of the original "Power Patch", which goes way deeper (including early Lua support) & barely found use in any games. But I also added a small heuristic check to detect the "Full" version & log a warning about limited compatibility:
Supported PPCOMP functions
NOT PLANNED:
SetGlobalBrightness(Apparently this was only implemented to address a blackscreen issue caused by the original patch)ChangeScene(Sounds a bit too dangerous)For the remaining features, I only found instances of "DELETESAVE" & "SIMULATEKEYPRESS" actually being used in some archived games.
-> These are still TODO
Adjustments to Ineluki KeyPatch implementation
BetterAEP patch support
While testing this implementation, it quickly became obvious, that many games that were using ppcomp, also relied on BetterAEP, and some used this patches' special functionality to access the Load Scene or even exiting the game via command. (Even though ppcomp also had these options).
So I added support for this patch as well:
Player.exe --patch-better-aep 3350So far I've only seen games that use the default var-id of '3350' for this.-> Issue #1182
Some games using ppcomp
Info