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

Armorvil

  • Freak
  • *
  • Posts: 621
  • Karma: 0
  • Working on : FFVII Total Grudge
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #275 on: 2008-12-20 19:47:19 »
I'm doing something similar; my edits won't be quite as dramatic, but I plan to make the characters much more individual and to make the exp. curve much steeper as the levels increase.

Good idea. I thought about that, too. So it looks my mod will be a "no stat growth" (with the player deciding how to use the many sources), while yours will be a "special stat growth" - with Aeris having the stat growth of a mage while Cloud would have the stat growth of a knight, for example ?

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #276 on: 2008-12-20 19:52:22 »
More or less. I'm going to exaggerate the differences between the characters in the normal game; Cloud is going to be strong in all areas, Aeris is going to be a mage, Barret will be a even stronger physically (and have the most HP), Yuffie and Tifa will be very quick, and so on. I'm also going to add some more special effects to their weapons: Barret's machine guns will be able to hit all enemies (by ticking both "start as multiple" and "toggle multiple" in wallmarket), Yuffie's weapons will be able to cause status effects (since she always has something up her sleeve). I'm trying to make every character and every weapon unique, so that the player has to choose who and what will be best to use in battle, and the decision will really matter.
« Last Edit: 2008-12-20 20:00:14 by Leighos Kudistos Megistos »

Armorvil

  • Freak
  • *
  • Posts: 621
  • Karma: 0
  • Working on : FFVII Total Grudge
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #277 on: 2008-12-20 20:14:24 »
More or less. I'm going to exaggerate the differences between the characters in the normal game; Cloud is going to be strong in all areas, Aeris is going to be a mage, Barret will be a even stronger physically (and have the most HP), Yuffie and Tifa will be very quick, and so on.

This looks like what I did in my own patch, with the starting stats.
Here is the character order I chose for each stat :

HP : Barret > Cid > Cloud > Cait > RedXIII > Tifa > Vincent > Yuffie > Aeris
MP : Aeris > Vincent > Cait > Yuffie > Tifa > Red > Cloud > Cid > Barret
STR : Barret > Cid > Cloud > Tifa > RedXIII > Yuffie > Cait > Vincent > Aeris
MAG : Aeris > Cait > Vincent > Yuffie > Tifa > RedXIII > Cloud > Cid > Barret
VIT : Barret > Cid > Cloud > Red > Cait > Vincent > Tifa > Yuffie > Aeris
SPR : Aeris > Yuffie > Vincent > Cait > Red > Tifa > Cloud > Cid > Barret
DEX : Yuffie > Red > Tifa > Vincent > Aeris > Cait > Cloud > Cid > Barret
LCK : Barret > Cid > Cloud > Tifa > Yuffie > Aeris > Red > Vincent > Cait

It's weird that Cait Sith has the worst luck stat, being a fortune-teller, but this choice allowed some kind of balance.

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #278 on: 2008-12-20 20:27:35 »
Cait Sith is the only one with whom I don't know what to do. I never use him, but still...I think that I might give him high HP (that giant stuffed mog must offer some protection), high magic power, low speed and low strength (surely a little cat can't hit very hard). I'm might give him weak weapons and make up for it by letting him use limit breaks more often. Actually, that might be a good way to balance things out; characters with higher overall stats and powerful limit breaks and weapons can get limit breaks less often.
« Last Edit: 2008-12-20 20:29:20 by Leighos Kudistos Megistos »

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #279 on: 2008-12-22 16:11:55 »
I'm still a bit off in generating the HP values for each level. This is what T. Fergusson says they are:

Code: [Select]
  Cloud  8960-9511
 Barret  9435-9999
   Tifa  8513-9037
  Aeris  8304-8816
    Red  8980-9556
 Yuffie  8471-8993
   Cait  8608-9135
Vincent  8211-8779
    Cid  8682-9284

This is what my test stat prog says:
Code: [Select]
  Cloud  9007-9554
 Barret  9481-9999
   Tifa  8561-9075
  Aeris  8348-8854
    Red  9024-9585
 Yuffie  8516-9037
   Cait  8650-9177
Vincent  8253-8801
    Cid  8727-9318

They're all a little bit high as if they're going half-a-level beyond max (like lvl 99.5). Anyone have any insights on calculating these?

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #280 on: 2008-12-22 19:12:25 »
What are the min/max HP values for each ten levels? It might help if we could see whether there is a sudden jump or a steady progression in extra HP. And does your program round down (sorry if the answer to that is obvious)?

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #281 on: 2008-12-22 20:07:32 »
What are the min/max HP values for each ten levels? It might help if we could see whether there is a sudden jump or a steady progression in extra HP. And does your program round down (sorry if the answer to that is obvious)?

Heh you may regret that ;)

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

Barret: 2 246 233
Barret: 12 513 486
Barret: 22 1051 988
Barret: 32 1938 1831
Barret: 42 3179 2988
Barret: 52 4623 4358
Barret: 62 6039 5673
Barret: 82 8338 7830
Barret: 99 9999 9481

Tifa: 2 239 228
Tifa: 12 460 432
Tifa: 22 898 841
Tifa: 32 1570 1475
Tifa: 42 2567 2422
Tifa: 52 3824 3590
Tifa: 62 5133 4832
Tifa: 82 7457 7027
Tifa: 99 9075 8561

Aeris: 2 195 185
Aeris: 12 403 382
Aeris: 22 858 812
Aeris: 32 1573 1484
Aeris: 42 2553 2405
Aeris: 52 3714 3496
Aeris: 62 4961 4665
Aeris: 82 7210 6797
Aeris: 99 8854 8348

Red XIII: 2 244 231
Red XIII: 12 502 475
Red XIII: 22 1023 957
Red XIII: 32 1834 1726
Red XIII: 42 2937 2763
Red XIII: 52 4229 3992
Red XIII: 62 5567 5247
Red XIII: 82 7936 7475
Red XIII: 99 9585 9024

Yuffie: 2 127 127
Yuffie: 12 425 425
Yuffie: 22 852 802
Yuffie: 32 1531 1447
Yuffie: 42 2492 2345
Yuffie: 52 3663 3446
Yuffie: 62 4938 4645
Yuffie: 82 7333 6886
Yuffie: 99 9037 8516

Cait Sith: 2 250 236
Cait Sith: 12 544 506
Cait Sith: 22 1117 1061
Cait Sith: 32 1997 1874
Cait Sith: 42 3162 2978
Cait Sith: 52 4610 4340
Cait Sith: 62 5951 5601
Cait Sith: 82 7911 7444
Cait Sith: 99 9177 8652

Vincent: 2 197 187
Vincent: 12 421 392
Vincent: 22 885 828
Vincent: 32 1591 1497
Vincent: 42 2502 2365
Vincent: 52 3637 3421
Vincent: 62 4864 4571
Vincent: 82 7236 6789
Vincent: 99 8800 8253

Cid: 2 248 234
Cid: 12 492 459
Cid: 22 972 913
Cid: 32 1796 1677
Cid: 42 2906 2732
Cid: 52 4172 3934
Cid: 62 5460 5133
Cid: 82 7738 7281
Cid: 99 9319 8722

That's my calculated upper and lower MHP for each of the 8 brackets and the final level. Yes, it is rounding down and here is the basic way I'm calculating it:

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)

The actual code is significantly different from that, but that's the functional equlivalent. :)

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
« Last Edit: 2008-12-22 20:12:04 by NFITC1 »

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #282 on: 2008-12-22 21:42:50 »
Quote from: NFITC1
EDIT: I also just found an error in his example:
Quote from: T Fergusson
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

T Fergusson was WRONG!? :-o Hmmm, he calculated 40% of the maximum gain rather than 40% of the gradient.

I was hoping that it would turn out that your program was starting off a level early (giving you level 3 stats at level 2, and so on), but it doesn't look like that is happening and since I haven't done maths in any serious way since I was 16 I probably won't be of much help in a project like this. If your program is doing exactly what the FAQ says it should do (let me check: it is calculating the base and gradient of the level the character is about to gain, isn't it?), then I really don't know what to suggest. Maybe there are some miscalculations in the FAQ?

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #283 on: 2008-12-23 04:27:51 »
T Fergusson was WRONG!? :-o Hmmm, he calculated 40% of the maximum gain rather than 40% of the gradient.

If this is true.... I honestly dare not claim myself more accurate than T Fergusson. If his equations are right then his math is wrong. THAT I could live with (I am a Computer Engineer AND Math major after all ;) ). What I need now is some hard data. I'm going to start a new game and see if I can get Cloud/Barret to have a higher MHP than T Fergusson's Highest MHP or have a lower MHP than my calculated lowest MHP. Unfortunately, I won't be able to do this until next week (this week containing Christmas and all). If anyone would like to help I'd be happy to see the results.

What to do:
1. Start a game where you aren't cheating or use a un-cheated save game (or at least one where the kernel.bin and the save game's MHPs are unaltered)
2. Get Hojo to increase the EXP a nearby enemy (all nearby enemies) to give, like, 3,000,000 Exp. (they'll have to level up naturally for this to work)
3. Load game with save and get players up to level 99.
4. Record MHPs and do step 3 again IF it falls within both mine and T Fergusson's ranges
5. If one is higher than T Fergusson's Highest MHP then mine are probably right; If one is lower than my lowest MHP, then he's probably right and I have to re-think my calculations

If you get a result please email me the save game. The address is beneath my avatar. Development on WallMarket v1.2.0 is on hold until this is resolved (it would be pointless to release without accurate results).

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #284 on: 2008-12-23 04:32:31 »
I'll try that tomorrow.

EDIT: I'm trying this now; if Cloud gets more than 9130HP (of course, he has -4% MHP at the start because of his two materia), I'll report. This could take a while, however, so if anyone else wants to have a go...
« Last Edit: 2008-12-23 19:10:05 by Leighos Kudistos Megistos »

Armorvil

  • Freak
  • *
  • Posts: 621
  • Karma: 0
  • Working on : FFVII Total Grudge
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #285 on: 2008-12-23 19:58:13 »
I'd like to help, but since I don't have the PC version, I wouldn't be able to email the save game...

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #286 on: 2008-12-23 21:28:28 »
No luck so far. So, has anyone else given this a go yet?

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #287 on: 2009-01-03 19:46:03 »
It's been less than two weeks and I don't see that anyone has gotten anything conclusive. I haven't been able to touch WM since my last post so there's nothing new yet. Has anyone played with MHP lately? I'm not really sure what to do at this point. I'm going to take an old save and set Cloud back to his original initial stats and see what happens. There's just so many things I'm thinking about doing with this last section I can't remember them all...

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #288 on: 2009-01-03 20:21:01 »
I still haven't had any luck. I've been using a party of Cloud, Tifa and Aeris, and none of the have had MHPs at level 99 outside of either T Fergusson's or your program's ranges, or have even come close; Cloud, for example, has got an MHP between 9200 and 9450 every time. I'll try a few more times tonight.

Has anyone else been playing with it?

gjoerulv

  • No life
  • *
  • Posts: 1150
  • Karma: 34
  • me
    • View Profile
    • My Youtube
Wall Market, FFVII KERNEL.BIN editor
« Reply #289 on: 2009-01-03 22:23:16 »
In my patch I made the curves based on TF's work. Then I tested my altering, and after a few tests (lvl 1 - 99) I was satisfied with all curves. The HP growth went precisely as I wanted. They never want outside the range (at each lvl 10 mark that is).

How are you planning the interface for the curve making?

One note to stat tweakers: Unless you make the base stats extremely high (100+) it's useless to alter 'em, 'cause The curve will eventually even the stats out normally. If you want starting stats 100+ the stats will not grow by level.

EDIT: oh I forgot the reason I posted. :P I see you find TF's numbers to be inaccurate. I just wanted to say that by my calculations and testing the formulas seem pretty accurate. It might be hard to find the exact formula though. As a final solution (as Hitler lol) you could just make the user type in the gradients and the bases for the curves. At least then they'll get a way to alter 'em.
I made a proggy to calculate each level HP and MP increase, and randomized the growth (if possible). This is, of course, based on TF's formulas.
« Last Edit: 2009-01-04 03:29:39 by gjoerulv »

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #290 on: 2009-01-04 06:05:46 »
How are you planning the interface for the curve making?

There are five steps to curve generation with WM:

1. Get the initial Stat
2. Get the curve that stat is linked to
3. Use the bases and gradients in that curve for each level
4. The curve will be generated based on TFergusson's equations mentioned in my previous post
   4a. The Max MHP will be given the +8 as a random modifier
   4b. The Min MHP will be given the +1 as a random modifier
5. Based on the resultant number in that equation will determine the bonus given to the additional MHP.

EVERY value in this process (except the constants in 4) will be alterable. All initial stats can already be modified. The stat curves will be alterable as will the bases and gradients of each curve and how much bonus is given.

The interface will look something like this, but that picture is pretty outdated now. It will now only display min and max for a certain level rather than having that entire rectangle (which I always thought looked weird).

It might be hard to find the exact formula though.

This might be my problem. I'm assuming TFergusson's formulas are 100% correct. While all my stats' mins and maxes are lining up perfectly, it's only the MHP and MMP that are different... Those have a lot of variance in them and they may not be getting calculated correctly. And let's face it, the odds of actually getting the Max or Min MHP is so low we might never really see it in the game.

Cheyck

  • Fast newbie
  • *
  • Posts: 6
  • Karma: 0
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #291 on: 2009-01-04 08:53:09 »
Hi !

Sorry but I have a big problem with the last Wallmarket version ... T___T

I used the 0.9.0.2 version of the program before and it functioned very well. When I test to use the program, the error message according to post:

" the application; did not succeed with s' to correctly initialize (0xc0000135)… "

Help me please T___T

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #292 on: 2009-01-05 14:53:13 »
Hi !

Sorry but I have a big problem with the last Wallmarket version ... T___T

I used the 0.9.0.2 version of the program before and it functioned very well. When I test to use the program, the error message according to post:

" the application; did not succeed with s' to correctly initialize (0xc0000135)… "

Help me please T___T

Your email address leads me to believe that you speak French so I will try to word this in a way that Babelfish might understand. ;)

I can not and will not support older versions of WallMarket. Many of them do not work properly. Use the most recent version (1.1.7) and take a screen shot of the error you are receiving. Even if it is in French I will be able to understand what the error is.

dziugo

  • No life
  • *
  • Posts: 1474
  • Karma: 3
    • View Profile
    • A new copy of FF7 thanks to Salk. Pack (zip/rar/etc) your saved game before sending it to me.
Wall Market, FFVII KERNEL.BIN editor
« Reply #293 on: 2009-01-05 15:27:49 »
Hi !

Sorry but I have a big problem with the last Wallmarket version ... T___T

I used the 0.9.0.2 version of the program before and it functioned very well. When I test to use the program, the error message according to post:

" the application; did not succeed with s' to correctly initialize (0xc0000135)… "

Help me please T___T
Blind guess - you don't have .NET Framework installed.

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #294 on: 2009-01-05 21:24:05 »
http://img522.imageshack.us/img522/7997/charaiig6.png

Just to let ya'll know I'm still thinking about ya. ;)
Not complete, of course. I'm still trying to work out a way to determine if there IS a script there or not. Right now all it does is show an asterisk by the name and section of non-empty scripts.

ChickenWuss

  • Guest
Wall Market, FFVII KERNEL.BIN editor
« Reply #295 on: 2009-01-05 21:30:55 »
Just want to say to the designer of this...TOTAL BRILLIANCE :) Keep up the good work

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog

Akari

  • Freak
  • *
  • Posts: 761
  • Karma: 26
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #297 on: 2009-01-06 20:22:33 »
http://img522.imageshack.us/img522/7997/charaiig6.png

Just to let ya'll know I'm still thinking about ya. ;)
Not complete, of course. I'm still trying to work out a way to determine if there IS a script there or not. Right now all it does is show an asterisk by the name and section of non-empty scripts.

To tell you the truth - script totally uneditable this way. Try to replace some of standart constructs like this

Quote
0x12 0x70 0x20 0x02 0xA0 0x20 0x82 0x90 to SetRandomOpponentToAttack()
and
                if (GetU8(script_offset + pointer + 0)  == 0x60 &&
                    GetU8(script_offset + pointer + 2)  == 0x02 &&
                    GetU8(script_offset + pointer + 5) == 0x92)
                {
                    int action   = GetU8(script_offset + pointer + 1);
                    int address1 = GetU16LE(script_offset + pointer + 3) >> 3;
                    int bits1    = GetU16LE(script_offset + pointer + 3) & 7;

                    LOGGER->Log("RunCommand(0x%02x, h[0x%04x + 0x%02x]);\n", action, address1, bits1);
                    pointer += 6;
                    continue;
                }

I think it was something like this at the beginning and was transformed to this bite code during export.

NFITC1

  • No life
  • *
  • Posts: 2899
  • Karma: 72
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Wall Market, FFVII KERNEL.BIN editor
« Reply #298 on: 2009-01-06 20:41:57 »
http://img522.imageshack.us/img522/7997/charaiig6.png

Just to let ya'll know I'm still thinking about ya. ;)
Not complete, of course. I'm still trying to work out a way to determine if there IS a script there or not. Right now all it does is show an asterisk by the name and section of non-empty scripts.

To tell you the truth - script totally uneditable this way. Try to replace some of standart constructs like this

I know. Disassembling is very hard to put it into something resembling the original code. I can easily see it in my head when I look at the code, but getting a computer to do it is a little harder because I'd have to make conditions for all that logic. ATM, the scripts are just read-only. If I make them editable it will be for advanced scripters only. Making it so the average person can edit it is a bit harder. It's easier to go from a high-level code down to a low level code, but even that gets tricky because I can only program what is known.

Ex:
Code: [Select]
11 0000
60 70
01 3820
60 02
32
30
90
Becomes:
&0x0000 = (&0x2038 * 2) + 0x70

That's the first "line" of Vincent's main script and the value stored at 0x0000 eventually ends up being the attack he performs when in form [&0x2038]. Changing that 0x70 changes the attacks he attempts.

Problem is. I can't get the program to display that very well.

UPDATE: I'm too busy playing through CC to have done anything with this recently. Fear not, I'm close to the end. Man, that Costly Punch makes lots of the battles a breeze.

PS - "Hey Vegeta! What's the scouter say about this thread's view count?"
« Last Edit: 2009-01-09 13:15:07 by NFITC1 »

Kudistos Megistos

  • Banned
  • No life
  • *
  • Posts: 3936
  • Karma: 1
    • View Profile
Wall Market, FFVII KERNEL.BIN editor
« Reply #299 on: 2009-01-10 17:42:23 »
So, do you think that your work would be able to translate into an enemy AI editor? Of course, we have stat and attack editors, but editing the AI is what makes  the best mods ;-)