Author Topic: [PSX/PC] KERNEL.BIN editor - WallMarket (v1.4.5)  (Read 423431 times)

Kuroda Masahiro

  • Insane poster
  • *
  • Posts: 278
  • Karma: -15
  • Stopped modding FF7.
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #675 on: 2010-03-29 20:00:51 »
How would that be more convenient, though?

Well, for a mod where I'm forcing 'classes' for the player to have, it would save a lot of time, as for the enforced class to work, EVERY weapon and armour needs to have 8 linked materia, and it took me about a hour just to do the armour and Cloud's/Tifa's weapons. >_<

Not to mention if you do one click too many, you'd have to do about 7-8 clicks just to get it back the way it was.

So, i was hoping for that as it could save a lot of time in that regard.

And thanks for taking it into consideration, NFITC1. ^_^

Bosola

  • Fire hazard!
  • No life
  • *
  • Posts: 1770
  • Karma: 15
    • View Profile
    • My YouTube Channel
Wall Market, FFVII KERNEL.BIN editor
« Reply #676 on: 2010-03-29 21:32:09 »
I didn't realize you were talking about changing the slots in equipment. Yes, this would be significantly better. A simpler option, though, might be to keep the current form, and add a right-click shell menu to change to a specific slot type. This would be easier for NFITC1, too.

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #677 on: 2010-03-29 21:44:13 »
Oh, I've got an idea in mind. Give me time to develop it and see if it's feasible.

Terence Fergusson

  • Insane poster
  • *
  • Posts: 262
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #678 on: 2010-03-30 07:04:23 »
Since I've got a bit of time and was poking around stuff, I thought I might as well clear this up.

Code: [Select]
Char Level H MHP L MHP

Cloud: 7 334 323
Cloud: 12 474 441
Cloud: 22 955 892
Cloud: 32 1753 1658
Cloud: 42 2806 2639
Cloud: 52 4069 3826
Cloud: 62 5435 5123
Cloud: 82 7834 7381
Cloud: 99 9554 9007
Code: [Select]
BaseDifference = 40 * CurveBase + (level - 1) * CurveGradient  [CurveBase is between -128 - 127 inclusive]
Difference = (1 .. 8) + (100 * BaseDifference / CurrentMHP) - 100   [capped between 0 and 11; L MHP uses 1 and H MHP uses 8]
NewMHP = CurrentMHP + Floor(RandomBonus(Difference) * CurveGradient)

Your problems are twofold.  First, you were rounding (100 * BaseDifference / CurrentMHP) to the nearest number, not rounding down/truncating.  As such, it's really no wonder your ranges are much higher than they should be.  If you rounded down, you'd get the theoretical base range of 8965-9508 for Cloud at L99.

But that's still not the fulll range of 8960-9511, of course.  Why is that?  Simple:
Quote from: Party Mechanics Guide
But, you should know that achieving max HP requires that you must take lower than max gains at some levels....

At L11, Cloud's HP range is 385-410, which matches the "always take lowest gain" to "always take highest gain" values.  But at L12, the correct range is 435-472, not 439-464 as you might expect.

If you had 410 HP at L11, your difference would be 2% of the baseline of 422, giving you a maximum HP Gain of 1.3 * 42 = 54.  So 410 + 54 = 464.

But if you had 409 HP at L11, your difference would instead be 3% of the baseline of 422, giving you a maximum HP Gain of 1.5 * 42 = 63.  So 409 + 63 = 472.

It's not a huge increase, and the lower HP quickly catches up, and in fact can still get to Cloud's highest max HP from that value... but this example just showcases the mechanic that makes even more of a difference at higher level, where there's less chance to catch up and every point counts.

Oh, and you can easily test the 'base' range ingame by simply altering the executable at the HP/MP growth stage and get it to always spit out 1s or 8s, and then just level from 6 to 99 quickly (easy if you also set Cloud's starting XP to a large enough value).  Obviously, this won't get the true range (and you can't without a far more complex and time-consuming routine), but it'll be close enough.

EDIT: I also just found an error in his example:
Quote
The minimum for him in that level bracket would, of course, be 40% of 98, or 58 (remember to round down).
40% of 98 is not 58, it's 39. 58 is ~60% of 98

That was a by-hand example, and yeah, looks like I took 40% of 147 instead.  My apologies on that.  The actual range data was calculated via a program, and have been proven by people after Max Stats (although FF7's crappy RNG meant that a new path had to be found by someone because it's impossible to get both Max HP and Max MP at the same time).



And while I'm taking a quick look at things, I'll note the following about certain things in Wall Market/Proud Clod.

AI Trigger: Ally Death: This trigger is actually run at the End of Battle, not on Ally Death.

AI Trigger: Post-Attack: This is a far worse name than what I've tended to call it (PreTurn).  I never called it PreTurn because I thought it happened as soon as someone's Time Bar finished filling.  I called it PreTurn because it happens before whatever command you enter gets to do things.  You could call it Pre-Command, I guess, but since it's triggered by any queued command (including Poison damage, I believe), it's a really difficult thing to name.  The point is that the changes it makes all occur before the attack is run.  Of course, an enemy can't use it to attack before you hit due to the attack queue, but it can certainly do stuff like alter its invincibility state or evasion before your attack even connects.

Battle-specific Party AI: Proud Clod could use the ability to set/change the Battle specific AI data for party members.  Much like Enemy AI starts at 0xE80 with 3 records (one for each enemy), Party AI starts at 0xC80 with 4 records (one for each enemy formation).  This is used in FF7 to deal with things like removing Waterpolo from a dead party member, but it has the potential to be used for so much more.

Attack Data: Attack Damage: You really need to split this up into the two different pieces of data it really is: the Attack Type and the Attack Formula.  The Attack Type dictates whether the attack is Physical or Magical (and thus whether Att or MAt is used), whether there will be a Critical Hit or not, what type of accuracy is used, and whether any custom formulas must be used.  The Attack Formula dictates how the damage is calculated, and with the exception of Attack Types 6, 7 and A, the formulas work the same no matter what the Attack Type.  Being able to set both Type and Formula individually offers far more customisation.

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #679 on: 2010-03-30 14:10:51 »
Since I've got a bit of time and was poking around stuff, I thought I might as well clear this up.

Code: [Select]
Char Level H MHP L MHP

Cloud: 7 334 323
Cloud: 12 474 441
Cloud: 22 955 892
Cloud: 32 1753 1658
Cloud: 42 2806 2639
Cloud: 52 4069 3826
Cloud: 62 5435 5123
Cloud: 82 7834 7381
Cloud: 99 9554 9007
Code: [Select]
BaseDifference = 40 * CurveBase + (level - 1) * CurveGradient  [CurveBase is between -128 - 127 inclusive]
Difference = (1 .. 8) + (100 * BaseDifference / CurrentMHP) - 100   [capped between 0 and 11; L MHP uses 1 and H MHP uses 8]
NewMHP = CurrentMHP + Floor(RandomBonus(Difference) * CurveGradient)

Your problems are twofold.  First, you were rounding (100 * BaseDifference / CurrentMHP) to the nearest number, not rounding down/truncating.  As such, it's really no wonder your ranges are much higher than they should be.  If you rounded down, you'd get the theoretical base range of 8965-9508 for Cloud at L99.

But that's still not the fulll range of 8960-9511, of course.  Why is that?  Simple:
Quote from: Party Mechanics Guide
But, you should know that achieving max HP requires that you must take lower than max gains at some levels....

At L11, Cloud's HP range is 385-410, which matches the "always take lowest gain" to "always take highest gain" values.  But at L12, the correct range is 435-472, not 439-464 as you might expect.

If you had 410 HP at L11, your difference would be 2% of the baseline of 422, giving you a maximum HP Gain of 1.3 * 42 = 54.  So 410 + 54 = 464.

But if you had 409 HP at L11, your difference would instead be 3% of the baseline of 422, giving you a maximum HP Gain of 1.5 * 42 = 63.  So 409 + 63 = 472.

It's not a huge increase, and the lower HP quickly catches up, and in fact can still get to Cloud's highest max HP from that value... but this example just showcases the mechanic that makes even more of a difference at higher level, where there's less chance to catch up and every point counts.

Oh, and you can easily test the 'base' range ingame by simply altering the executable at the HP/MP growth stage and get it to always spit out 1s or 8s, and then just level from 6 to 99 quickly (easy if you also set Cloud's starting XP to a large enough value).  Obviously, this won't get the true range (and you can't without a far more complex and time-consuming routine), but it'll be close enough.

EDIT: I also just found an error in his example:
Quote
The minimum for him in that level bracket would, of course, be 40% of 98, or 58 (remember to round down).
40% of 98 is not 58, it's 39. 58 is ~60% of 98

That was a by-hand example, and yeah, looks like I took 40% of 147 instead.  My apologies on that.  The actual range data was calculated via a program, and have been proven by people after Max Stats (although FF7's crappy RNG meant that a new path had to be found by someone because it's impossible to get both Max HP and Max MP at the same time).


Someone did point out a while back that my rounding was wrong. I haven't gotten around to fixing it since it was a lower priority. I have done the math since and discovered that your ranges are more accurate if truncated like most computers do. I know the PSX is capable of floating-point precision and I was assuming that the entire operation was handled in that scope.

And while I'm taking a quick look at things, I'll note the following about certain things in Wall Market/Proud Clod.

AI Trigger: Ally Death: This trigger is actually run at the End of Battle, not on Ally Death.

This was always a guess. Cloud is the only one that has it, but it probably does make more sense that his "battle affection" would go down for every battle his companions are down and he doesn't revive them (even if it's not his fault!). I never tested the timing on this script.

Quote
AI Trigger: Post-Attack: This is a far worse name than what I've tended to call it (PreTurn).  I never called it PreTurn because I thought it happened as soon as someone's Time Bar finished filling.  I called it PreTurn because it happens before whatever command you enter gets to do things.  You could call it Pre-Command, I guess, but since it's triggered by any queued command (including Poison damage, I believe), it's a really difficult thing to name.  The point is that the changes it makes all occur before the attack is run.  Of course, an enemy can't use it to attack before you hit due to the attack queue, but it can certainly do stuff like alter its invincibility state or evasion before your attack even connects.

The timing on this always occurred after damage was calculated. That's now things like this can happen (Red XIII is my test subject for most of these). I gave him a simple "Display string: 'Script 07'" script for that section and it showed up at the end of the action being performed. In retrospect that might not be the best way of telling since displaying strings will wait until the end of the currently happening action to display. "Post-Attack" just seemed logical because that's when you'll see the effects.

Quote
Battle-specific Party AI: Proud Clod could use the ability to set/change the Battle specific AI data for party members.  Much like Enemy AI starts at 0xE80 with 3 records (one for each enemy), Party AI starts at 0xC80 with 4 records (one for each enemy formation).  This is used in FF7 to deal with things like removing Waterpolo from a dead party member, but it has the potential to be used for so much more.

Now THAT is some hard data I can use! I didn't look at all the scenes to see if there even was anything there. The ones I looked at were all blank. That scene does have a script for formation 0 in the death counter. That's very nice. It'll definitely have to be added.

Quote
Attack Data: Attack Damage: You really need to split this up into the two different pieces of data it really is: the Attack Type and the Attack Formula.  The Attack Type dictates whether the attack is Physical or Magical (and thus whether Att or MAt is used), whether there will be a Critical Hit or not, what type of accuracy is used, and whether any custom formulas must be used.  The Attack Formula dictates how the damage is calculated, and with the exception of Attack Types 6, 7 and A, the formulas work the same no matter what the Attack Type.  Being able to set both Type and Formula individually offers far more customisation.

I think Akari's been trying to convince me of that for a while. I'd love to add it, but I can't really tell what they all do. The only reason I haven't done so yet is I haven't figured out what the values are. I know that the upper nibble and lower nibble are significant of each other.

Terence Fergusson

  • Insane poster
  • *
  • Posts: 262
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #680 on: 2010-03-30 14:27:54 »
The timing on this always occurred after damage was calculated. That's now things like this can happen (Red XIII is my test subject for most of these). I gave him a simple "Display string: 'Script 07'" script for that section and it showed up at the end of the action being performed. In retrospect that might not be the best way of telling since displaying strings will wait until the end of the currently happening action to display. "Post-Attack" just seemed logical because that's when you'll see the effects.

The problem is that it simply isn't true that it occurs after damage calculation.  If that was the case, Limit Breaks simply *wouldn't work* against Diamond Weapon until he begins his countdown.  Note his PreTurn counter: he specifically checks if the skill being used is Summon, W-Summon or Limit, and if this is the case, he will turn off his Physical Immunity for just that attack.  As a result, this has to occur before damage is calculated, otherwise the limit would just do nothing, and the timing for his invulnerability being turned off would not be as observed.

EDIT: Oh, and yes, strings and attacks would only show up after the current action due to the standard queue system.  There's only so much this counter can do, but at least it can juggle variables fine without relying on queuing.

I think Akari's been trying to convince me of that for a while. I'd love to add it, but I can't really tell what they all do. The only reason I haven't done so yet is I haven't figured out what the values are. I know that the upper nibble and lower nibble are significant of each other.

Akari can probably give you more details, but it's mostly pretty straightforward.  You have the basic Attack Formulas:
Code: [Select]
x0: No damage
x1: Physical Formula (Pwr / 16) * (Stat + [(Lvl + Stat) / 32] * [(Lvl * Stat) / 32])
x2: Magical Formula (Pwr / 16) * ((Lvl + Stat) * 6)
x3: HP% Formula
x4: Max HP% Formula
x5: Cure Formula (Pwr * 22) + ((Lvl + Stat) * 6)
x6: Fixed Formula (20 * Pwr)
x7: Item Formula (16 * Pwr)
x8: Full Recovery
x9: Throw Formula
xA: Coin Formula

And the Attack Types are essentially:
Code: [Select]
0x: Physical, no hit checks
1x: Physical, Phys Accuracy, Crit Hit
2x: Magical, Mag Accuracy
3x: Physical, 100% Hit
4x: Magical, 100% Hit
5x: Magical, 100% Hit
6x: Physical, Phys Accuracy, Crit Hit, uses Special Formulas
7x: Magical, Mag Accuracy, uses Special Formulas
8x: Magical, uses Lv?-Based condition
9x: Magical, uses Manipulate Accuracy
Ax: Physical, Phys Accuracy, Crit Hit, uses Weapon Special Formulas
Bx: Physical, Phys Accuracy, no Criticals

I'm not sure what the difference is between 4x and 5x, if any exist.  And you have most of the Special Formulas already, and the Weapon Special Formulas can all be found by matching from the Weapon Data.
« Last Edit: 2010-03-30 14:49:08 by Terence Fergusson »

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #681 on: 2010-03-30 15:37:48 »
The timing on this always occurred after damage was calculated. That's now things like this can happen (Red XIII is my test subject for most of these). I gave him a simple "Display string: 'Script 07'" script for that section and it showed up at the end of the action being performed. In retrospect that might not be the best way of telling since displaying strings will wait until the end of the currently happening action to display. "Post-Attack" just seemed logical because that's when you'll see the effects.

The problem is that it simply isn't true that it occurs after damage calculation.  If that was the case, Limit Breaks simply *wouldn't work* against Diamond Weapon until he begins his countdown.  Note his PreTurn counter: he specifically checks if the skill being used is Summon, W-Summon or Limit, and if this is the case, he will turn off his Physical Immunity for just that attack.  As a result, this has to occur before damage is calculated, otherwise the limit would just do nothing, and the timing for his invulnerability being turned off would not be as observed.

EDIT: Oh, and yes, strings and attacks would only show up after the current action due to the standard queue system.  There's only so much this counter can do, but at least it can juggle variables fine without relying on queuing.

I see what you're saying now. Any visible effects would only occur after the animation was complete. Just the limitation of the world renderer I suppose. Diamond weapon is immune to physical damage except during his countdown which occurs every other summon/Limit attack. I see where this would pose a problem for every physical limit. Perhaps "Pre-Attack Setup" would be a better name.
While on the subject of Diamond weapon, maybe you can clarify something for me. At the end of his Death-Counter Script he's got a 60 22 60 0F 92 command that Akari told me that means execute script section 0F. He doesn't have anything in his Post-Battle section. It's possible that this interpretation of the 22 command is wrong and it doesn't execute scripts. Do you have any idea what this does?

I think Akari's been trying to convince me of that for a while. I'd love to add it, but I can't really tell what they all do. The only reason I haven't done so yet is I haven't figured out what the values are. I know that the upper nibble and lower nibble are significant of each other.

Akari can probably give you more details, but it's mostly pretty straightforward.  You have the basic Attack Formulas:
Code: [Select]
x0: No damage
x1: Physical Formula (Pwr / 16) * (Stat + [(Lvl + Stat) / 32] * [(Lvl * Stat) / 32])
x2: Magical Formula (Pwr / 16) * ((Lvl + Stat) * 6)
x3: HP% Formula
x4: Max HP% Formula
x5: Cure Formula (Pwr * 22) + ((Lvl + Stat) * 6)
x6: Fixed Formula (20 * Pwr)
x7: Item Formula (16 * Pwr)
x8: Full Recovery
x9: Throw Formula
xA: Coin Formula

And the Attack Types are essentially:
Code: [Select]
0x: Physical, no hit checks
1x: Physical, Phys Accuracy, Crit Hit
2x: Magical, Mag Accuracy
3x: Physical, 100% Hit
4x: Magical, 100% Hit
5x: Magical, 100% Hit
6x: Physical, Phys Accuracy, Crit Hit, uses Special Formulas
7x: Magical, Mag Accuracy, uses Special Formulas
8x: Magical, uses Lv?-Based condition
9x: Magical, uses Manipulate Accuracy
Ax: Physical, Phys Accuracy, Crit Hit, uses Weapon Special Formulas
Bx: Physical, Phys Accuracy, no Criticals

I'm not sure what the difference is between 4x and 5x, if any exist.  And you have most of the Special Formulas already, and the Weapon Special Formulas can all be found by matching from the Weapon Data.

This is also very interesting. I didn't know that White Wind and "? ? ? ?" are considered physical attacks. That would explain why White Wind sometimes flashes the screen as if it were a critical attack. This would be a real simple change to make too.

Terence Fergusson

  • Insane poster
  • *
  • Posts: 262
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #682 on: 2010-03-30 16:12:14 »
While on the subject of Diamond weapon, maybe you can clarify something for me. At the end of his Death-Counter Script he's got a 60 22 60 0F 92 command that Akari told me that means execute script section 0F. He doesn't have anything in his Post-Battle section. It's possible that this interpretation of the 22 command is wrong and it doesn't execute scripts. Do you have any idea what this does?

All I know about 0x92 is that it shoves the command, ability and targetting data onto the ability queue (stored at 009A988C, which can hold up to 64 queued abilities), and the priority usually depends on either what part of the AI script is running or what type of player ability is used (although there are also possibly exceptions to that).  I'm fairly sure Akari's done more work than me on the scripting engine, so I cannot confirm or contradict his findings.  I know that during a simple test I did I was unable to use 0x22 to run arbitrary script IDs, but I still don't know any firm details about what it does.

This is also very interesting. I didn't know that White Wind and "? ? ? ?" are considered physical attacks. That would explain why White Wind sometimes flashes the screen as if it were a critical attack. This would be a real simple change to make too.

Be aware that although the chance of a critical hit will be calculated, not all attacks will use the Critical Hit modifier.  In fact, I think only the Physical Formula uses it, and since Critical Hit chance is only used with the Physical Attack Types, it doesn't seem possible to get a Magical Critical Hit without editing the executable, even if you used a Magical attack using the Physical Formula.

The Weapon Special Formulas will all use the standard Physical Formula as a base though, rather than replacing it entirely, so they can work with Critical Hits when given the opportunity.

You might also want to test out the various Attack Types and Formulas yourself so you can think of better ways to describe them from the point of view of a modder: the way I've described them is somewhat concise, but not always as clear as it could be.

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #683 on: 2010-03-30 18:12:02 »
AI Trigger: Ally Death: This trigger is actually run at the End of Battle, not on Ally Death.

Going back to this, could it be accurate to call this section "Battle Victory" and sections 8-15 be "Custom Event"? I can't get any scripts 8-14 to fire (The Midgar Zolom is acting really weird. Executing script that I erased and confirmed isn't in the scene anymore. Spooky...), but that's likely what they would do.

Akari

  • Freak
  • *
  • Posts: 764
  • Karma: 29
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #684 on: 2010-03-30 18:30:14 »
Quote
3x: Physical, 100% Hit
4x: Magical, 100% Hit
5x: Magical, 100% Hit

Acording to my notes they all the same. And they do nothing (not calculate miss chance and not calculate critical chance). So it's simple "100% hit, no critical".

Terence Fergusson

  • Insane poster
  • *
  • Posts: 262
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #685 on: 2010-03-30 18:31:57 »
Going back to this, could it be accurate to call this section "Battle Victory" and sections 8-15 be "Custom Event"? I can't get any scripts 8-14 to fire (The Midgar Zolom is acting really weird. Executing script that I erased and confirmed isn't in the scene anymore. Spooky...), but that's likely what they would do.

I'd pretty much agree with that naming scheme, yes.  If any further information about how they can be used turns up, it can always be changed again.

Akari

  • Freak
  • *
  • Posts: 764
  • Karma: 29
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #686 on: 2010-03-30 18:36:38 »
Going back to this, could it be accurate to call this section "Battle Victory" and sections 8-15 be "Custom Event"? I can't get any scripts 8-14 to fire (The Midgar Zolom is acting really weird. Executing script that I erased and confirmed isn't in the scene anymore. Spooky...), but that's likely what they would do.

I'd pretty much agree with that naming scheme, yes.  If any further information about how they can be used turns up, it can always be changed again.

Battle Victory - What is the id of this script?

Terence Fergusson

  • Insane poster
  • *
  • Posts: 262
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #687 on: 2010-03-30 19:13:50 »
Battle Victory - What is the id of this script?

0x6.  So immediately after Magic Counter and immediately before PreTurn.  Though looking at the proposed name for it again, I'm no longer as sure about that name... battles can end in other states than simply Victory, and I'm not sure of all the conditions that 0x6 fires on (I just know that it doesn't fire on Ally Death and definitely waits until the end of battle to apply its affects).

Doesn't matter though: I'm sure Akari knows where all the hooks are better than I -- I'm working on information I dug out years ago.

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #688 on: 2010-03-30 20:54:28 »
Though looking at the proposed name for it again, I'm no longer as sure about that name... battles can end in other states than simply Victory, and I'm not sure of all the conditions that 0x6 fires on (I just know that it doesn't fire on Ally Death and definitely waits until the end of battle to apply its affects).

I'm using "victory" in a generic sense of the word. Whatever ends the battle to move the plot along. Technically the Ultimate Weapon fights don't end in a "victory" until the one where he's over Cosmo Canyon. As I understand it, a battle ends when either all enemies or all allies are flagged either dead, inactive, or escaped. Some battles are forcibly ended (Mystery Ninja) at certain points just by flagging the main script as inactive. These are not "victories" in the specific definition of the word (enemy not flagged as "dead"), but it's a victory in the fact that it wasn't a defeat. It's just easier to say than "Non-failed Battle" or something to that effect.

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #689 on: 2010-04-02 17:08:30 »
Some updates on progress, despite double-post (forgive?).

Great job as usual NFIT.

Is it possible to make the next version (if you make it) give more options for customizing materia?

i'd like to see a tab that let's you edit the values for what peice of materia holds what abilities.

If the current version can already do that, then i guess i'm just to dumb to figure out how.

That's what the materia tab is for.....read the manual

Not to sound ungrateful or anything, but is it at all possible to have a drop down list for the materia slot instead of having to click until you find the one you want?

How does this look? (look at the third materia slot)

When you click on any materia slot that menu will show up with the current materia aligned on the menu. Click on the desired materia to add or click on another object (or the aligned materia) to cancel.

Kuroda Masahiro

  • Insane poster
  • *
  • Posts: 278
  • Karma: -15
  • Stopped modding FF7.
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #690 on: 2010-04-02 18:33:14 »
That looks fine. ^_^

any idea when it'll be included in the next version?

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #691 on: 2010-04-03 14:53:00 »
That and a few other changes have already been implemented. I believe WM is ready to go, but I'm making some last-minute PrC changes and updating the documentation. Thanks to Terence Fergusson, I've completely redone the way the attack damage byte is changed. I've also considered a more versatile search for attacks in PrC, but I'll probably wait on that one. What I'm really going to do next is allowing the formation AI to be edited like TFergusson pointed out in a previous post. I won't likely be able to start on it until late next week.

sithlord48

  • No life
  • *
  • Posts: 1531
  • Karma: 33
  • Dark Lord of the Savegame
    • View Profile
    • Blackchocobo
Wall Market, FFVII KERNEL.BIN editor
« Reply #692 on: 2010-04-03 15:15:33 »
this looks so nice , just a shame i can't use it in wine. (stupid .net...) any chance for a Qt port? i would be more then happy to help you with it....

gjoerulv

  • No life
  • *
  • Posts: 1159
  • Karma: 35
  • me
    • View Profile
    • My Youtube
Wall Market, FFVII KERNEL.BIN editor
« Reply #693 on: 2010-04-03 15:56:53 »
...
Battle-specific Party AI: Proud Clod could use the ability to set/change the Battle specific AI data for party members.  Much like Enemy AI starts at 0xE80 with 3 records (one for each enemy), Party AI starts at 0xC80 with 4 records (one for each enemy formation).  This is used in FF7 to deal with things like removing Waterpolo from a dead party member, but it has the potential to be used for so much more.

Attack Data: Attack Damage: You really need to split this up into the two different pieces of data it really is: the Attack Type and the Attack Formula.  The Attack Type dictates whether the attack is Physical or Magical (and thus whether Att or MAt is used), whether there will be a Critical Hit or not, what type of accuracy is used, and whether any custom formulas must be used.  The Attack Formula dictates how the damage is calculated, and with the exception of Attack Types 6, 7 and A, the formulas work the same no matter what the Attack Type.  Being able to set both Type and Formula individually offers far more customisation.
...

I was going to ask I you (NFITC1) if you've planned to do anything with this. I haven't made any editor for the party AI so I kinda hoped you would make one.  :P

Colonel Ramsay

  • Crazy poster
  • *
  • Posts: 114
  • Karma: 0
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #694 on: 2010-04-03 16:19:06 »
Quick question, why does Hades inflict Stop to Ruby Weapon when he has protection?  And Hades doesn't even seem to have Stop as a status?
« Last Edit: 2010-04-03 16:25:51 by Colonel Ramsay »

Bosola

  • Fire hazard!
  • No life
  • *
  • Posts: 1770
  • Karma: 15
    • View Profile
    • My YouTube Channel
Wall Market, FFVII KERNEL.BIN editor
« Reply #695 on: 2010-04-03 18:28:09 »
You are confusing [Stop] with [Paralysis], which prevents attacks for approximately two turns (it's some number of V-Timer units). Hades inflicts paralysis, and Ruby is vulnerable. Paralysis is inflicted also by the item 'Dazers' and the Limit Break, 'Cross slash'.

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #696 on: 2010-04-03 22:36:02 »
...
Battle-specific Party AI: Proud Clod could use the ability to set/change the Battle specific AI data for party members.  Much like Enemy AI starts at 0xE80 with 3 records (one for each enemy), Party AI starts at 0xC80 with 4 records (one for each enemy formation).  This is used in FF7 to deal with things like removing Waterpolo from a dead party member, but it has the potential to be used for so much more.

Attack Data: Attack Damage: You really need to split this up into the two different pieces of data it really is: the Attack Type and the Attack Formula.  The Attack Type dictates whether the attack is Physical or Magical (and thus whether Att or MAt is used), whether there will be a Critical Hit or not, what type of accuracy is used, and whether any custom formulas must be used.  The Attack Formula dictates how the damage is calculated, and with the exception of Attack Types 6, 7 and A, the formulas work the same no matter what the Attack Type.  Being able to set both Type and Formula individually offers far more customisation.
...

I was going to ask I you (NFITC1) if you've planned to do anything with this. I haven't made any editor for the party AI so I kinda hoped you would make one.  :P

That and a few other changes have already been implemented. I believe WM is ready to go, but I'm making some last-minute PrC changes and updating the documentation. Thanks to Terence Fergusson, I've completely redone the way the attack damage byte is changed. I've also considered a more versatile search for attacks in PrC, but I'll probably wait on that one. What I'm really going to do next is allowing the formation AI to be edited like TFergusson pointed out in a previous post. I won't likely be able to start on it until late next week.

That's what I meant by those statements. PrC only seems to lack the formation AI. I just did a quick loop through and I found scripts on these formations: Turks:Reno, Bottomswell, Carry Armor (all three of these are likely the same thing. If the "captured" character dies while captured then they need to be released from captivity), Bizarro Sephiroth (All formations. They might contain loads of battle addresses I've never seen), Safer Sephiroth, & final Sephiroth. I haven't looked at any of these scripts so I'm not sure what they all do. I just know there are scripts there.

Editing Formation AI is all well and good, but you have so little room to do it in. It's only 512 bytes in size and only 472 bytes of those are usable for a script; Fewer if you want multiple formations' worth.

Colonel Ramsay

  • Crazy poster
  • *
  • Posts: 114
  • Karma: 0
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #697 on: 2010-04-08 13:40:24 »
You are confusing [Stop] with [Paralysis], which prevents attacks for approximately two turns (it's some number of V-Timer units). Hades inflicts paralysis, and Ruby is vulnerable. Paralysis is inflicted also by the item 'Dazers' and the Limit Break, 'Cross slash'.

Ahhh of course!  Silly me.

Anyway bug report, and this has been a bug for quite some time.  Every so often I will load up my kernel to discover text has been corrupted or deleted.  usually the deletion is 1 letter (in the actual name and not description), but today I spotted this in a few places >



It has added "cures darkness" to the end of the string.  It has done the same for the item directly above it too.
« Last Edit: 2010-04-08 13:48:02 by Colonel Ramsay »

NFITC1

  • No life
  • *
  • Posts: 2917
  • Karma: 73
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #698 on: 2010-04-08 18:27:26 »
Anyway bug report, and this has been a bug for quite some time.  Every so often I will load up my kernel to discover text has been corrupted or deleted.  usually the deletion is 1 letter (in the actual name and not description), but today I spotted this in a few places >



It has added "cures darkness" to the end of the string.  It has done the same for the item directly above it too.

Is that on the PC text or the PSX text? The PSX text might have issues since I haven't even touched it since I wrote it.

Colonel Ramsay

  • Crazy poster
  • *
  • Posts: 114
  • Karma: 0
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #699 on: 2010-04-08 19:03:07 »
PC and it has happened to differing degrees since the first wallmarket I used (prob around 4 releases ago)