EasyRPG / Player

RPG Maker 2000/2003 and EasyRPG games interpreter
https://easyrpg.org/player/
GNU General Public License v3.0
967 stars 183 forks source link

BetterAEP (Auto Enter Patch) and similiar (PowerMode 2k3) #1182

Open Ghabry opened 7 years ago

Ghabry commented 7 years ago

Probably best through some kind of database which contains a list of games that use thie patch.

This patch allows skipping the Title Scene and controlling Load and End game (for custom menus) depending on the variable 3350.

When "Stop Parallel Events" is invoked and 3350 == 1 -> Load, 3350 == 2-> End. Else: Normal Stop behaviour.

Patch signature in RPG_RT: "\x90\x90\x90\x90\x90\x90\x8b\x43\x14\x8b\x40\x44\x85\xc0\x90\x90\x90\x90\x90\x90"

PowerMode 2k3: "\x70\x6F\x77\x65\x72\x6D\x6F\x64\x65\x20\x32\x6B\x33"

adketuri commented 6 years ago

While exploring the codebase I implemented this for my personal project. This is not an adequate solution for the task but I figure I'd link this here for reference:

https://github.com/EasyRPG/Player/commit/2e5fcfb67edcb5e29d6a60702da755a2030f2fe6

Ghabry commented 6 years ago

Thanks, with an optional opt-in through a RPG_RT.ini setting your patch could be almost used directly.

hellow554 commented 6 years ago

I would recommend a command line argument as well 🙂

CherryDT commented 8 months ago

The title of the issue is wrong - \x70\x6F\x77\x65\x72\x6D\x6F\x64\x65\x20\x32\x6B\x33 is the signature for PowerMode 2k3 and not my Power Patch.

The Power Patch (both in its original v0.3/v0.4 version and in its refactored v0.85 version, including Power Patch Compact) despite its name never actually patched anything, it was always modding the game through memory access from another process, so there is no signature. (One could detect v0.3/v0.4 by existence of RPG_RT.oex. v0.85 in its non-Compact version was never released but in case I did send some pre-release version to someone, it could be detected by existence of RPG_RT.fwd. In both cases these would be the original game engine executables while RPG_RT.exe was replaced with the Power Patch executable itself. Power Patch Compact uses a ppcomp.exe which is called via keypatch or similar methods.)


In fact, the reference to the Auto-Enter-Patch is also not correct - the signature and behavior described here belongs to BetterAEP (by me), while the original AEP (by Miroku - DL here) only patched the title screen for an almost literal "auto-enter", and for executing "load game" or "exit game" you could have to use external programs using Ineluki's keypatch - for loading, it would patch the engine in-memory to start out with the "load" item selected and then send a simulated F12 event to the game window and a second later un-patch it, and for exiting it would just kill the process.