Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add EasyRPG custom LSD chunks to fix RPG_RT save game bugs #295

Open
3 tasks
fmatthew5876 opened this issue Dec 9, 2018 · 5 comments
Open
3 tasks

Add EasyRPG custom LSD chunks to fix RPG_RT save game bugs #295

fmatthew5876 opened this issue Dec 9, 2018 · 5 comments
Labels

Comments

@fmatthew5876
Copy link
Contributor

fmatthew5876 commented Dec 9, 2018

The following behaviors don't load correctly in rm2k3:

They don't work because there not enough state in the LSD data to implement loading them. Fixing these requires creating some custom EasyRPG LSD chunks.

@CherryDT
Copy link

CherryDT commented Feb 22, 2019

Which state is missing? I want to check what's the internal representation of that state in RAM so that we can store it in the same way, meaning I can simply add the chunk to real RM as well. (The chunks mirror fields in RAM, usually without any conversion.)

By the way I see a mistake in the chunks in that respect: Chunk 20 (0x14), "flash_continuous", is listed as boolean, but actually it can have three values: 0 (once), 1 (continuous), 2 (continuous ceasing). It simply gets the value of the corresponding event command parameter in the "flash screen" command when it's executed. Looks like that at least... (although, I'm not sure if the 2 exists long enough to ever be saved... but I can't rule it out right now)

@CherryDT
Copy link

Ah I see now... There is another field that is also initialized with the value of the shake duration, and it is not saved.

We can save it in chunk 26 (0x1A), I'll note it in case I ever come around to fix this in real RM2k3.

@fmatthew5876
Copy link
Contributor Author

fmatthew5876 commented Apr 6, 2019

There is another missing chunk with keyinput proc. It doesn't save the number of frames waiting for keyinputproc to complete.

Setup EV01 parallel

KeyInputProc: To Var1, Shift, Wait, Count time until key pressed into Var2
EraseEvent

Start a new game, wait a while, save, and then immediately press shift. Var2 will be some large value like 70.

Now load that saved game, and immediately press shift. Var2 will be 0. ❗

Also, what are these chunks? They don't appear to be used from my tests?

  • 0x1D keyinput_value_right
  • 0x1E keyinput_value_up

@CherryDT more rm2k3 bugs. If we add chunks to fix this in player we should coordinate with you to match future patches to RPG_RT.

@Ghabry
Copy link
Member

Ghabry commented Apr 6, 2019

Start a new game, wait a while, save, and then immediately press shift. Var2 will be some large value like 70.
Now load that saved game, and immediately press shift. Var2 will be 0. ❗️

Sounds like EasyRPG/Player#1674

@fmatthew5876
Copy link
Contributor Author

fmatthew5876 commented Apr 6, 2019

That's a different issue which works on rm2k and rm2k3e.

This one is because there is no keyinput_wait_frames chunk to store how long you waited for a keypress.

@fmatthew5876 fmatthew5876 changed the title Add EasyRPG custom LSD chunks to fix rm2k/3 save game bugs Add EasyRPG custom LSD chunks to fix RPG_RT save game bugs Apr 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

4 participants