Author Topic: Halkun, regarding Safer*Sephiroth...  (Read 9268 times)

Terence Fergusson

  • *
  • Posts: 262
    • View Profile
Halkun, regarding Safer*Sephiroth...
« on: 2004-07-27 15:53:16 »
Little argument on the GameFAQs boards, and I don't have the tools to properly do this.  I need to know if there's any difference between Super Nova on the PC and PSX versions.  I have the PC data:
Code: [Select]
FF FF 02 FF 00 00 FF FF FF FF FF FF 05 8F 23 1E FF 08 FF FF C0 02 00 00 00 00 FF FF

You'll recognise Super Nova in the data by that '23 1E' part there.  Don't confuse it with the '23 1F' that follows a couple of lines down; that's for final Sephiroth's standard attack.  All this should be found after the standard enemy data for Safer*Sephiroth and final Sephiroth.

If you or someone else with the data could answer this, I'd be grateful.

Thanks.

 ===

Edit: Actually, that might be a job for someone: collect all the possible Scene.bins for all versions of FF7, and see which (if any) enemies have differences.  Most differences would be expected: names of attacks and enemies.  For the most part, these are in predefined locations that we can trap and ignore.  The only major problems would be the Japanese version differences and messages stored in AI scripts.

But if anyone wants to get on that, it'd be useful.  I hate having to say "This is how it works in this version, but I've no idea if it's the same in this other version".

halkun

  • Global moderator
  • *
  • Posts: 2097
  • NicoNico :)
    • View Profile
    • Q-Gears Homepage
Halkun, regarding Safer*Sephiroth...
« Reply #1 on: 2004-07-27 17:19:58 »
I can verify that the scene.bin in both the PC and PSX version are exactly the same. I did a compare on them once upon a time just jo I could see what was exactly the same and what differed data-wise in both systems.

Terence Fergusson

  • *
  • Posts: 262
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #2 on: 2004-07-27 17:26:11 »
'kay.  In that case, open to anyone.

A couple of people are swearing that Super Nova inflicted Frog on them.  Scene.bin (and there's nothing changing it in the AI script, in case you're asking) says that Super Nova can only inflict Confusion, Silence and Slow on a character, but with a low rate of success.  Pale Horse, on the other hand, appears to be the one that inflicts Sadness, Frog and Small on a character (with an almost 100% rate of success).

If *ANYONE* has experienced Frog being inflicted on them *BY* Super Nova (and not Pale Horse, which is a single attack anyhow), then please post.  These are respected people who are claiming this, by the way, not trolls, which is the reason why I'm having so much trouble.

And thanks for the compare, Halkun.  Appreciate it.

EmperorSteele

  • *
  • Posts: 933
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #3 on: 2004-07-27 19:47:35 »
Not only does it cast frog, but it seems to circumvent the ribbon...

If i didn't have to go to work in a few minutes, i'd play through and get you a screen shot.  However, this wouldnt solve any programming issues... perhaps it's a fluke?

Terence Fergusson

  • *
  • Posts: 262
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #4 on: 2004-07-27 20:03:38 »
Circumventing Ribbon is easy; there's a flag to bypass Immunity checks.  But Super Nova doesn't have it... just like it doesn't have Frog.  And that's the problem.  If you're sure that it's inflicting Frog on you, perhaps you should talk about which version you're playing, and whether any scene.bin comparisons should be done between the two.

Threesixty

  • *
  • Posts: 1171
    • View Profile
    • http://www.geocities.com/threesixtyci/
Halkun, regarding Safer*Sephiroth...
« Reply #5 on: 2004-07-27 21:41:08 »
I don't remember turning into any frog, during the final battle.

Messiah99

  • *
  • Posts: 235
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #6 on: 2004-07-29 05:51:53 »
Super Nova did frog me the first time I had it used on me. The last time I played through though I had everyone with Ribbons and suffered no status change from Super Nova or Pale Horse, so I cant vouch for what Steele had to say. Maybe I was just lucky, haha.

Terence Fergusson

  • *
  • Posts: 262
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #7 on: 2004-08-10 09:06:40 »
While we're on the subject of things where the code says one thing, and user feedback says something else, I'm requesting information now about Dragon Zombie's Pandora's Box.

There is a global variable: (1)[5E].  When 0x1 is set in that variable, Pandora's Box has been cast and will never be cast again... or at least, that's what the code says.  The only place Pandora's Box appears in any enemy's AI is in Dragon Zombie's Death script.  In addition, I've watched that variable during a descent into the crater, and the only time it was reset was after defeating Jenova*SYNTHESIS, and she only clears it so that she can make room for more values for the Bizarro*Sephiroth battle (it's far too late to see Pandora's Box by then).

And yet... once again, respected people are reporting they've seen Pandora's Box far more than once in a game, getting hit by it consecutive times.

If there's glitches or version differences at work here, I'd like to know about it, please.  Something definitive needs to be figured out about all this.

Messiah99

  • *
  • Posts: 235
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #8 on: 2004-08-10 09:14:01 »
If I remember correctly, it can be cast any time you fight the Dragon Zombie, more than just once, but only once in a fight, because the monster is dead and you'll never fight two of them in one battle.

Though I only fought a Dragon Zombie cuz I went looking for it just to get that Enemy Skill, haha. But I think it can be cast on you more than once in the course of the game, could be wrong though.

Cyberman

  • *
  • Posts: 1572
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #9 on: 2004-08-10 16:59:40 »
If it's modifying a global variable like that, it must be used somewhere.
If you never have pandora's box opened, ... hmmm perhaps in the crater in one of the rooms it checks this before you get to Jenova Synthesis?  It really depends on when the AI checks if pandora's box was used doesn't it?

Cyb

Lord_Skylark

  • *
  • Posts: 115
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #10 on: 2004-08-18 10:33:50 »
Is the variable reset when the game is turned off or when you load up a saved game? So that it only uses Pandora's Box once per time that your load your saved game or something? Probably not, but just a thought.

~Sky

Lord_Skylark

  • *
  • Posts: 115
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #11 on: 2004-08-18 10:35:49 »
Another way they could have seen it more than once...

Let's say they save at the top of the crater...then they go to the bottom and get attacked by a Dragon Zombie and it uses it, then they die or reset their game and load it again. If that variable is a variable that is saved, then reloading their game will cause it to go off again and when they get attacked by another Dragon Zombie it may use it again, thus people think that they've seen it more than once, not realizing that it's a one time attack?

~Sky

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Halkun, regarding Safer*Sephiroth...
« Reply #12 on: 2004-09-23 18:34:48 »
Terence Fergusson, that 08 FF is a script call or something close to it.

Usually the actual scripts for where the FF is, and FF means no script, but numerous attack with a different value aside from FF in tha 08 spot also have special calls/cases of exception.

For instance, Frog Jab, attack 511.
Code: [Select]
           CC                Ty AT--| ID RA St RT       Tm Statuses--| Elm-|
55 24 00 FF 00 00 23 00 FF FF FF FF 03 FF 11 02 FF BF FF FF 00 08 00 00 00 08 FF FF


It’s the only attack in the game with BF in that byte, just as Super Nova is the only attack with 08.

Try messing with that/those values and see what happens when you get jabbed by a frog (repeatedly).

Or change the BF FF to BF 07 and watch your gil go down.


L. Spiro

Terence Fergusson

  • *
  • Posts: 262
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #13 on: 2004-09-27 05:53:44 »
...uh... no.

That 08 is the Status Infliction Chance.  You're thinking of the next two bytes *after* that, which includes what you've got listed as Tm there (for the record, your headings seem all over the place; I have no idea what you mean by AT--|, but the first byte of that is related to the byte before it (it's a word), and the second byte is unique and related to targetting).

And Super Nova is not the only attack with 08 FF FF in that section; Break and Tornado also have it.  And Frog Song shares Frog Jab's BF FF FF; the BF just means Chance 63, Toggle (instead of Inflict or Cure).

Yes, putting 06 FF in the word after that would cause Gil to go down (not 07 FF, that's Steal Item).  So, no, this changes nothing; there's still no sign about anything special about Super Nova that would cause it to inflict Frog or ignore immunities.

James Pond

  • *
  • Posts: 880
  • Forums Grumpy Bastard....At The Best Of Times.
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #14 on: 2004-09-27 09:23:25 »
It may have been pale horse that did it, But im pretty sure ive been turned into a frog by Supernova....As for ignoring status immunities, I had a ribbons on cloud, and he got FROG'D.   But I may be wrong.

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Halkun, regarding Safer*Sephiroth...
« Reply #15 on: 2004-09-27 11:52:21 »
Sigh; that’s what I get for opening my mouth (and typing a message).

I lost my notes since I moved to Thailand and I had to dig that up, but it is old.
The labels weren’t off.  I was reading them wrong.


08 is the chance infliction.

Looking at my other notes.
06 is the script for Steal and Hold-up, 07 is Mug.
I have even forgotten what attacks do what since I haven’t even looked at the game in over a year.  Pathetic.

Obviously I meant to say 06 is the right script for Gil going down.


Tm doesn’t seem to be marked in my other file but if it is in the same spot, it is the number if times the attack is cast.  Does not apply to enemy attacks though.

You need to be poking around his AI routine.
The answer is there.

But then again I’ve never been turned into a frog from that attack.
I can play through and force my HP to stay at maximum and let him Super Nova me all day long, and modify his AI so he only uses Super Nova.  If that would help.


L. Spiro



P. S.:  You can do this too!  Mod his AI so that he only uses “x”.  Most likely, eventually one of the times he casts “x” will also turn you into a frog.

Terence Fergusson

  • *
  • Posts: 262
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #16 on: 2004-09-27 20:06:02 »
Figured it was old notes.

'Tm' isn't actually 'Number of Times Attack Hits'.  That's just a side effect.  It's actually the Argument for the Script Effect Byte (which comes immediately before it).  00 xx would cause the specified attack to attack x amount of times.  If, however, the script was 04 xx, then the xx would determine whether the attack did more damage to those facing forward or those facing backwards (see Sewer Tsunami for this).  Or if the script was 02 xx, then xx is the chance out of 256 that Fat Chocobo is used instead (this is the script that Choco-Mog uses, with an x of 15).

And there's nothing really that stops an enemy using a multi-hitting attack; it's just that no enemy attack uses it, and to use it *properly*, the animation needs to be set up to use it.  (Certain frames in the animation will be flagged to display damage on the target when they're run; no, I don't know how this is stored, but some animations are pre-programmed to print up multiple damage numbers... in fact, there's a bug related to that where one enemy has a multi-damage animation but only uses a single-hit formula with it, causing the same number to print up twice...)

His AI routine does not contain the solution.  I've fully deciphered almost all of the AI, and can vouch that there's nothing funny going on in Safer's AI.  The only thing that really remains is a hardcoded exception for Super Nova.  That's assuming it's in the PC version to start with... but I really don't have the patience to test that in-game at the moment.

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Halkun, regarding Safer*Sephiroth...
« Reply #17 on: 2004-09-28 08:12:18 »
You probably already knew I am decyphering the battle animations.
And now that you mention the fact that damage prints are part of the animation it helps.

I might have a few more ideas for things I have seen in RAM and there are probably other things stored as part of the animation as well.

I’m assuming now just as I have always assumed (and will be making my game based upon this assumption) that the entire battle attack is calculated at the start of the attack, then the animations are run accordingly and the sequence is played.
I have found some data around the battle animations in RAM that seem awkward.  In my templates I just put them into pads.
What other data should be in an animation?  The target of a multi-hit attack will generally perform an animation for each hit.  But this is probably stored with the damage print.

There is probably just a flag that says, “Target takes damage right now” and the engine knows to automatically load an animation for taking damage, as well as moving the pointer to the damage table up one after displaying the damage.

I haven’t looked into the game in ASM at all but I need to start.

I wish I could confirm all these theories myself.


I think you could also help both of us by creating templates to showcase your finds.  Then if you find something new you can send the template out and everybody will automatically be updated.
That would help a lot.
I don’t have so much time anymore so hacking has to come mostly on weekends.


I’ll test with Cloud’s animation on the results of changing some of those flags I have seen and see how they may affect multiple-hit attacks.
But first I’ll need to export them and load them so I know exactly what animations are what.

Damn it.  I have a hot Asian date tonight but I would rather stay at the computer and hack.


L. Spiro

Terence Fergusson

  • *
  • Posts: 262
    • View Profile
Halkun, regarding Safer*Sephiroth...
« Reply #18 on: 2004-09-28 11:15:25 »
An animation 'ID' carries the following basic information (note, not all of this may be stored in the same place, but this is what's attached to a single *ID*):

The animation itself, frame by frame.
Whether the animation loops or not.
What extra animations should be triggered on the caster or target (example: Animation ID 17 for Barret is the Cast Spell animation, but the calling object will also get the Spell Aura effect; if you set Barret's Evade Animation to 17, when he is attacked he will act as if he's casting a spell, but the attacking object is what gets the Spell Aura).  Triggered stuff includes things like damage counters popping up.

In addition, the animation would require the following extra information or IDs:
Source and target - an attack animation might require that the attacker run towards the target, so this requires a linear transition between the starting point and the ending point, both of which are variable.
Ending position offset for the animation; some animations have the character ending in a different position than they started in, and any subsequent animations are run from there.
Key positions for things like area attacks might be necessary as well, though unsure.  It might take the average position of all targets to center around instead.

That's pretty much all I can think of right now.  By the way, you should know that the AI is allowed and able to dynamically change an enemy's Idle, Flinch and Evasion animations, each of which can be assigned a single numerical ID associated with which animation.  I've got the first few of Barret's animation IDs, if it helps, so I'll give you those:

Barret's Animation IDs:
0 - Default (Standard Idle Animation, Looping)
1 - Kneeling (Looping)
2 - KOed
3 - Jump Forward (Ending position is forward of normal)
4 - Step Back (Ending position is backwards of normal)
5 - Flinch (Standard Hurt Animation)
6 - Spasms, as if electrified
7 - Thrown into air, falls face down
8 - Dodge (Standard Evade Animation)
9 - Cover Target (Calling Object will be covered)
10 - Spin, Learned Enemy Skill
11 - Block with Gun Arm (unsure what uses this)
12 - Win Pose (Looping)
13 - Fleeing (Looping)
14 - Successful Flee (Ending position is backwards of normal, Looping)
15 - Turn Invisible
16 - Step Back
17 - Cast Spell (Calling Object will get Spell Aura)
18 - Thrown into air backwards, fall face down, turn invisible (Ending position is backwards of normal)
19 - Spasms, facing Calling Object
20 - Single Target Gunfire (Ending position is backwards of normal, Looping, calls Damage Counter)
21 - Slash-All Gunfire (Ending position is backwards of normal, Looping, calls Damage Counter)

 ---

Oh, and as for 'creating templates'... I'm not using MemHack, due to the simple reason that I still do all my work on Windows 98; MemHack is, by its own nature, incompatible with Win98.  Not to mention that most of my work thus far is on the Plot and AI side of things, which, while useful, hasn't tied massively into animation yet.

I should probably get back to ASM work and finish off that final guide of mine before rewriting the Battle Mechanics... meh.  Maybe later.

ShinRa Inc

  • *
  • Posts: 416
  • The Ascension of the Ordinary Man
    • View Profile
    • http://shinrainc.org
Halkun, regarding Safer*Sephiroth...
« Reply #19 on: 2004-11-04 17:29:22 »
This might be too old a topic to contribute, but anyway.

As I recall, Pale Horse inflicted status effects.  Is it possible your characters were Frog'd by that attack instead of Supernova?

L. Spiro

  • *
  • Posts: 797
    • View Profile
    • http://www.memoryhacking.com/index.php
Halkun, regarding Safer*Sephiroth...
« Reply #20 on: 2004-11-05 02:03:54 »
We already discussed that possibility.
It is Super Nova inflicting these mysterious changes.


L. Spiro


P. S.: Now I wonder if it's possible that some buffers are being overrun and changing your character statuses purely on accident.  It loads a huge “cinema” with a lot of scripting action.  Plenty of room for unchecked buffers.
And (going from memory on this one) the status changes for a character in battle are the first four bytes of his or her chunk.  I might be confusing that data block with another, since characters and monsters are loaded twice (one for the base and one for the battle).
So it should be possible for the first few bytes to be overwritten and nothing else.
I think it is fairly farfetched since it would have overwrite in a way that doesn’t remove your existing statuses AND stop overwriting before it overwrites something more important to the internal battle engine, such as character ID.

But it’s my last idea for now.

ShinRa Inc

  • *
  • Posts: 416
  • The Ascension of the Ordinary Man
    • View Profile
    • http://shinrainc.org
Halkun, regarding Safer*Sephiroth...
« Reply #21 on: 2004-11-05 05:49:34 »
Also, for the record, I've never encountered a status effect side-effect of Supernova on the Playstation version