[RM2K3] RPG MAKER MANIACS PATCH (FOR OFFICIAL VERSION)

Posts

Pages: first prev 12345 last
There are some really big changes made in mp210519

  • ACCORD and ULTIMATE_RT_EB are now parts of the game engine.
  • F9 scene is replaced by a debugger window with Switches, Variables, StringVars, MapEventData and PictureData, it pauses the game, press F9 again to unpause (even after closing).
  • F10 (the event processing cancel button) was removed.
  • F12 resets to titlescreen without pressing Alt (like it was before 2003-1.10).
  • Generating dungeon maps while playing was removed.
  • Mouse controls in the show message textbox are disabled by default.
  • Shifting the game window's position doesn't pause the game.
  • FullPackageFlag is not necessary to prevent RTP-not-found-error.
  • You can add RunTimePackageKey to RPG_RT.ini to change the registry key where the engine searches for RTP.
  • The ExFont can now be replaced by adding a file named "exfont" to the windowskins folder (System).
  • Numeric input event command now supports entering by using the keyboard's number keys.
  • You can add WinW and WinH to RPG_RT.ini to specify a game screen size (normal zoom is the reference, so defaults are 320 and 240), stuff like titlescreen gets centered.
  • If you change the game screen size, it will be applied after LOGO was shown if you run without TestPlay mode.
  • New data type, the string variable, read from "Text" folder, can be referenced just like variables in text, but with a "T" instead of "V".
  • Engine supports 32bit pictures that don't use a palette (alpha values are not supported for now, only 0 and 255).
  • More variable pointer options for a wide range of commands (only when you use TPC).

New commands (only for TPC)

Control String Variables:
  • Set by single ID, batch, pointered ID or pointered batch.
  • Operators: Set, Concatenate, Insert, Replace, Substring, Join, Load File, Convert to Number, Get Length, Text Search, Split, Save as File, Pop Text Line
  • Base Operands: Text, From String Var, From Var, From pointered Var, From Switch, From pointered Switch
  • Get name of actor, skill, item, enemy, troop, terrain, terrain, element, state, animation, tileset, switch, variable, textvar, commonevent, jobclass, animationbattler, map, mapevent or partymember.

Get Game Info:
  • Get map size.
  • Collect top or bottom tile IDs from map rectangle.
  • Get game window size.
  • Get game screen pixel color data.

Edit Picture:
  • Set pixel or rectangle to specified color.

Output Image:
  • Save game screen as 32bit graphic file.
  • Save specified picture as 32bit graphic file.

Add Move Route:
  • Add movement command to route of an event, vehicle or the player.

So... holy fork... I guess there's much work to do now to make DestinyScript (originally made by Bananen-Joe for 2000-1.07) compatible with this new update beast, I just started porting it to mp200128 last October.

EDIT:
Also there's some incredible FPS boost going on in pf-version (PerFrame). On my system the benchmark of s2k3mp destroyer reached frames dropping when spawning around 900 chickens, now it starts to happen at 2400.
Is it just me or has RPG_RT.exe been replaced completely with a new file in mp210519? I'm asking because nothing fits anymore, the content and structure of it looks heavily different now. If that's the case, it's insanely incredible to achieve this in such a "short" time while EasyRPG is indev for over ten years now to become an ideal replacement, so I still doubt it. I'm just very confused right now from trying to compare the mp210519 data with mp200128 and raw 2003-1.12.

The changelog says "The engine was fully updated/renewed/improved/renovated/modernized/refurbished (全更新) since hacking little parts over and over again just continues to increase the false-positives-rate.". So is that literally what happened here? It would explain where the new super-duper-increased framerate performance smoothyness comes from.

~炬燵あ
author=KotatsuAkira
Is it just me or has RPG_RT.exe been replaced completely with a new file in mp210519? I'm asking because nothing fits anymore, the content and structure of it looks heavily different now. If that's the case, it's insanely incredible to achieve this in such a "short" time while EasyRPG is indev for over ten years now to become an ideal replacement, so I still doubt it. I'm just very confused right now from trying to compare the mp210519 data with mp200128 and raw 2003-1.12.

The changelog says "The engine was fully updated/renewed/improved/renovated/modernized/refurbished (全更新) since hacking little parts over and over again just continues to increase the false-positives-rate.". So is that literally what happened here? It would explain where the new super-duper-increased framerate performance smoothyness comes from.

~炬燵あ

For what I read today on discord he rebuild it from scratch
BingShan has said that in the past but I was also very confused about it because of the same thing you just said. I'm wondering if maybe he found a way to disassembled it entirely and with enough metadata to meaningfully reassemble it afterwards, so he didn't rewrite it but just "rewired" it. If that's the case I want to know how, because I've been trying something similar a few years ago and came to the conclusion that there are too many things that are not analyzed correctly and would need tremendous amounts of manual work to get fixed before it could be reassembled without breaking.
author=Cherry
BingShan has said that in the past but I was also very confused about it because of the same thing you just said. I'm wondering if maybe he found a way to disassembled it entirely and with enough metadata to meaningfully reassemble it afterwards, so he didn't rewrite it but just "rewired" it. If that's the case I want to know how, because I've been trying something similar a few years ago and came to the conclusion that there are too many things that are not analyzed correctly and would need tremendous amounts of manual work to get fixed before it could be reassembled without breaking.

Start talking about it on February 8 2020.
https://twitter.com/BingShan1024/status/1226079062134624258?s=20

From what I understand he did as you said, but not clearly how, apart from a few screenshots of the process on 10 and 20 February of the same year.

https://twitter.com/BingShan1024/status/1226893902021459974?s=20
https://twitter.com/BingShan1024/status/1230496742635798528?s=20

What was achieved in 2-3 years (guess there was some work before to document everything) is really impressive. 3 years is very fast for this.

BingShan should become a security researcher, is really smart in figuring out / patching assembler code it seems.

To answer the question where we wasted time for comparison. By now we could likely write EasyRPG Player again in 5 years, we gained so much knowledge over the last 10 years. I started C++ programming in 2008 so I was still very inexperienced (also C++03 sucks, C++11 made the language so much better).

Our goals are a bit different. BingShan "only" targets RPG Maker 2003 Steam on Windows. One could say the Maniac Patch is now a new game engine. Our goal is to make RPG Maker 2000/2003 games run everywhere.

- No need for RPG Maker 2000 specific support (also no 2000 battle system) or bugs in older engine versions
- Not multiplattform (no platform specific bugs to fix, they are annoying. Also
developing for Android sucks so much, all developers in the team equally hate it. It is zero fun to target this platform, I only have hate against Android).
- No support for additional patches such as Ineluki Key Patch

Especially the Web Player support made our code more complex: You must return every frame to the browser, so something like "Start transition, render the transition for one frame, End transition" in a tight loop doesn't work anymore, you must enable the transition, yield the interpreter, return to the browser, do the transition, resume the interpreter. When you don't do this the web browser will report your tab as stuck and kill it :(.

And by far our biggest time waster in EasyRPG development was that we only relied on "blackbox testing" for figuring out stuff. This just wastes tons of time because you usually do not catch the quirks / edge-cases.

We were stuck in the following cycle for years:

1. You get a bug report with a stuck game submitted
2. You open the game
3. You notice the game event code is a terrible, undocumented mess out of 100 parallel processes, so you try to understand the game code first and why it hangs in Player (this takes hours)
4. After 8 hours of figuring out what the game does you introduce one line of code to the Player that fixes it
5. a Week later you get a report that a game that worked before broke and guess what, it was the fix you just added!

We were kinda stuck in this situation for years, Event and Move Route handling must be frame-perfect, otherwise you break too many games.

Since last year we started to analyze the RPG_RT code and this dramatically improved the compatibility because you suddenly saw the hundreds of edge cases we missed and then suddenly all the game-breaking bugs are gone, the games just worked.

Then we did the same recently for Battle 2000 and 2003 (we had lots of problems with event timings): The 2000 Battle code is quite nice but the 2003 code is a disgusting ugly sphagetti code monster. Whoever wrote this had no idea what they were doing. (I'm imprssed that BingShan got the battle working)

When you analyze RPG_RT for a while you notice quickly, that the RPG 2000 devs were smart developers and RPG 2003 feels like some outsourced garbage pile. Probably tight deadlines, completely new dev team and Enterbrain wanted to make some money. Their added features introduced lots of bugs because they didn't consider all the places where it interacts with old functionalty. The change class event command is just broken and the same applies to equipment that invokes states. The 2003 battle code is also a mess, the algorithms have bugs and the CBA (item animations) code is also ugly.
As far as I'm concerned, what he did is impressive, I never imagined it was possible to achieve something like this in such a short time.
I who have always used 2k3, I can only be happy that someone continues to support it
Finding out about this patch has blown my friends and I's minds open. Bless BingShan and his continued work on this old engine. He is a lifesaver.

Only thing we're trying to parse out right now is how the mouse feature works. I see in the patch notes that the mouse click is automatically turned off. Is there a specific way to have it turned back on? I've tried a combination of some of the mouse based commands, but nothing so far has worked. I'm not super code literate, but I would really like to make use of the mouse if I can. Any advice would be appreciated, thank you! :>
You can reactivate it via TPC, press f3 or right click and select "create with TPC" to create a command and paste this:
@sys.gameOpt .mouse.disableMsgProcession 0

if it doesn't work try replacing 0 with 1
It's my first time posting here, so hello!

The new version of the patch is great, except for the fact that it changed back the "name" "class" and "nickname" in the status menu to their original states. I modified the strings in the RPG_RT to say something different, but he restructured the exe completely so I'm not quite sure how to remedy this. Hopefully Mr.BingShan makes it so that you can modify these in the database at some point, since that'd be a nice feature to have now that we can't modify them through a resource editor.

If anyone here has any clue on how I could possibly fix this I'd be grateful!
I just installed this for the first time. It appears to have worked, I don't get any errors and as far as I can tell the new commands are all there. Are there any game-breaking bugs I should be aware of before I dive into a new project?
Nothing that I'd know about. At least I was able to play through s2k3mp destroyer (with RPG_RT of mp210519-pf inserted) and the program didn't explode. But by looking at the changelog of fixes in mp210530, there is at least a little chance that it still has some bugs in the rewritten engine that was done for mp210519.

(Well... working on something with RPG2003 has always been some kind of bugdisaster-management, so...)

~炬燵あ
Pages: first prev 12345 last