øAslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;u=14;area=showposts;start=255e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index639c.htmlslickproductions.org/forum/index.php?PHPSESSID=5f0fck550j2m4m2fpbtkj2vkm1&action=profile;area=showposts;u=14e:/My Web Sites/Slick Productions - FFIV Message Board/slickproductions.org/forum/index639c.html.zx˼g^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ0P.nýOKtext/htmlISO-8859-1gzip@øÕnýÿÿÿÿÿÿÿÿTue, 10 Mar 2020 16:30:27 GMT0ó°° ®0®P®€§²ð®˼g^ÿÿÿÿÿÿÿÿT'ný Show Posts - Pinkpuff

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Pinkpuff

256
I retracted my suggestion in favor of the more general branching statement.

But I think if I had to suggest something for this, it would be "Change character graphic to XX even if that actor isn't in your party". That way you can do things like, simulate having the camera follow a different character in a "meanwhile" scene or something. E.g.:

Code: [Select]
Load Tower of Zot Command Center
Change character graphic to (Kain)
You face down
You move down
Show message "Kain: Let me be the one to take out Cecil"
Show message "Golbez: No"
You bow head
You toggle turning
You move up
You toggle turning
Show message "Kain: As you wish"
Load Mount Ordeals 1F
Change character graphic to (DK Cecil)
You face left

I know you can already simulate something like that by making the main character invisible and just moving it around in tandem with the other character, but this way is less clunky and at the very least doesn't irrevokably turn your appearance into a pig or tiny person when you make a mistake. It could also help save NPC placement space. Imagine all the placements you could free up if in the "attack on the giant" sequence you just teleported your main character around, turning him into the various other characters (Yang, Edward, etc). You could even free up entire maps using that technique in combination with activating/deactivating NPCs as you teleport.

257
As for other functionality... Not that I can think of, maybe If they choose "00"(Which in the editor would be  for the flag number of "Opening Complete" (since it's not actually used for that section of the routine) maybe change the name of the Instruction to reflect "If Party is Dead/Petrified jump to next Event". That's all I can think of.

Ah ok so it's the same "Crash Game / Load Graphic / If" instruction, but if the XX = 00 and the party is dead, it skips to the next event? In which case, what would have been the pseudo YY parameter becomes a real instruction? And does it do this on XX = 80 as well?

Well today, (mainly after work) I will try to look into the "Change Character Graphic" to give it more universal use (rather than that Awful, awful system of "If character isn't in the party, than freak out."

Awesome, I look forward to it!

258
It is great to see that has finally been fixed! I started to lose track of "what-is-what" for the Underground events because of the Overworld labels on the NPC's.

I'll download this and give my full thoughts... (incidentally you must have posted this just before I headed off to work.)

Oh man! This new setup for events is wonderful! Having a drop down menu where you can See beyond the initial choice is Glorious!

Being able to see what is in each available formation of enemies before choosing is wonderful, all in all this has been the best update in a very long time due to the ease in event editing that you've implemented.

A lot of these improvements come from my own experience of now actually using the editor for a large scale hack rather than just poking around with basic functionality testing.  :wink:

There are still a few issues however...

1. Subtract x100 Gil is still labeled as "Gain x50 Gil"

This will be fixed in the next update.

2. Moon Bosses are still not using their correct scripts, but that's been around for a long time.

It has, and it will probably get fixed once I get to the moon portion of my hack ^_^

3. While you can choose NPC's (and battle formations) above 255, the editor's readout will still display the Overworld equivalent (choosing NPC 511 will show "Fallen Soldier"...
Oh! I see what you did there, you index based it with the Underworld Maps! That is an elegant solution!

It even knows if you've changed maps within an event!  :childish:

Looks like you also made the Command Editor even more in-depth with Chillyfeez's recent findings and a new "Or" for the Statuses to go beyond the 3 Status Limit of unusable.

Actually the "Disable if:" looks at permanent statuses (blind, mute, pig, etc) while the "Or:" looks at temporary statuses (calcify, stun, float, etc). I was not aware there was a 3 status limit. Currently the editor lets you put all 16 on if you like. Mind you I haven't tried seeing what behaviour that results in when applied to an actual rom but it seemed possible at the time so I did it ^_^

Keep up the fantastic work PinkPuff!

Thanks so much! And thanks for making that if patch (and going through the excruciating trouble of trying to explain how it works  :blush:) Is there any functionality to the other part of that patch (the "continue if party dead" part) that needs reflecting in the editor?

259
Alright, folks! FF4kster updated once again! This time the event editor has been modified to detect and include the new "IF" instruction. As well, it's been cleaned up in general, including correct previews for underground NPCs and Formations, as well as expanding menus when editing them. The "Preview Map" has also been moved to the top and no longer disappears when you start editing the event.

260
SUCCESS!!

Alright now to get it coded into the editor. What bytes are changed by the patch? You don't have to list all of them necessarily, just enough to be sure it's your patch and not some other one someone might do up. This is strictly for the purposes of the editor determining whether the patch has been applied to the rom it's loading.

261
Now it crashes the game...

I tried patching it to a fresh rom and to a rom already patched with the previous patch, in both cases inserting a "Load Graphic" instruction crashed the game. Unheadered in both cases.

262
ALRIGHT! I get it now!  :childish:

Thanks, sorry that took so long to sort out.

Also, in case you missed my edit a few posts ago, the patch seems to be executing the instruction that should be the pseudo YY parameter. So like if I say something like:

Visual Effect 05
Placement 1 Moves down
Change character graphic to 1
You face down

Then if it skips, it skips correctly, but if it executes, it will move Placement 1 down (seems like it shouldn't, since that's just the parameter byte and I don't actually want Placement 1 to move down).

263
So wait... if XX = 05, then it will DO the next YY instructions, regardless of whether flag 05 is ON or OFF??

264
Final Fantasy IV Research & Development / Re: Command Stances
« on: March 21, 2015, 09:48:09 AM »
Got it, thanks!

265
Not even remotely I'm afraid  :isuck:

How can we be considering event flags in the "negative range" (I assume you mean flags greater than 127) for a parameter to begin with? (a) There are none relevant besides the dark elf attack, (b) there's no way to tell such a flag from it's "positive" counterpart with 0x80 added, and (c) you can't exactly add 0x80 to it...

How about you just fill out this form for me:

Event FlagCurrent ValueXX ParameterSKIP or DO next YY instructions?
05ON0x05____
05ON0x85____
05OFF0x05____
05OFF0x85____

266
IF you want the event instructions to Skip when a Flag is ON you would use 0x00. (This looks for a mismatch which implies the Flag to Check is Off and to Skip instructions if So)
IF you want the event instructions to skip when a Flag is OFF you would use 0x80. (This looks for a match which implies the Flag to Check is On and to Skip Instructions if So)

A given event flag is "OFF" when it has a value of 0 correct? So when the high bit of the XX parameter is 0 (i.e. we added 0x00 / didn't add anything / just the raw flag number), then the high bit matches when the flag also has a value of 0, meaning it is OFF... right? In the above, you seem to be saying that an OFF flag (0) mismatches a high bit of 0...

Something like that was listed in my example.

"Crash Game 2XX" (2)(Is Event Flag (unused) OFF?)
NPC 1 Face Right (1) (If Not 5  (+1) Skips)
Show Message: (2)"King: You've returned not a moment too soon, Yang. A Dragon in Mt. Hobbs is disrupting our daily training. As our High Monk I ask you to vanquish it."
Show Message: "(2) Yang: You have my word."
Activate Event Flag XX (2) (Unused one from above)
END

What is "2XX" in this example? double XX? can't be.. 0x200 + XX? Also seems like it can't be that either....

Sorry if I'm being bothersome about this, but I need to make sure I fully and correctly understand what's going on before I can code it into the editor...

Alright, now  this patch was made from two fresh ROMs (with the headers removed with the only differences being the new event instruction and a location in the pointer table to the new event instruction.

(1 KB so that seems like it should be the ticket)

The events are no longer messed up. Looks like a success so far! Time to start toying with the new instruction  :childish:

 :edit: After some initial experimentation, this is how I would describe what this instruction appears to be doing:

If the flag value matches the high bit of the XX parameter, skip a number of bytes worth of instructions specified by the next byte. This includes skipping that byte (perfect).
If the flag value does not match the high bit of the XX parameter, execute all the next instructions... including the "dummy parameter" byte. In other words, if the byte following the "Crash Game XX" instruction said "Placement 1 moves up", then placement 1 will indeed move up (not ideal).

267
Final Fantasy IV Research & Development / Re: Command Stances
« on: March 21, 2015, 08:33:47 AM »
The action stance table offsets don't match what I have in my rom...

2C7B3 has BB not 0C
2C6D4 has CD not 0C
etc.

268
Ok so if the high bit of XX is 1, it will play on a match (ON) and skip on a mismatch (OFF), but if the high bit of XX is 0, it will skip on a match (OFF) and play on a mismatch (ON)?

Yes, you have it right now.

So suppose I want some event instructions to play when a certain flag is OFF and skip when it's ON. How do I express that using this?

Because the way I understand it, if I send it the flag + 0x00 then it will play the event on a mismatch (i.e. if the flag is ON). But if I send it the flag + 0x80 then it will play the event on a match (i.e. if the flag is... ON). So regardless of whether I add 0x80 or not, it will play when the flag is ON, and skip when it's OFF, making the high bit toggle completely redundant as far as I can tell...

Hmm, I was worried that might be the case, what events are messed up out of curiosity?

Tons of them...
  • "Receiving the pan" contains a YES/NO box
  • "Do you have the clerics permission" is empty
  • "Open a door" contains a battle with Rubicant
  • So does "Locked"
  • So does "Namingway"
  • "Opening Events" adds and then immediately removes a bunch of actors
Among a bunch more... I can make an exhaustive list if needed.

269
Ok so if it matches it will skip, and if it does not match, it will execute them...

That is purely if it is a Positive.

If the bit reads Negative it will look to Not Match the Event Flag to Skip Instructions, it the correct Event Flag is ON then the instructions will play. If the bit reads Positive it will be the opposite. It will look to see if a certain Event Flag is OFF otherwise it will skip the instructions.

What in the world?...

Ok so if the high bit of XX is 1, it will play on a match (ON) and skip on a mismatch (OFF), but if the high bit of XX is 0, it will skip on a match (OFF) and play on a mismatch (ON)?

 :edit: I tried downloading and applying the patch but it looks like it messed with many of my events... (yes I used an unheadered rom)... are you sure the patch changes nothing else besides those instructions?

270
Ok so if it matches it will skip, and if it does not match, it will execute them...