Author Topic: [PSX/PC] Battle editor - Proud Clod (1.5.0/FINAL)  (Read 410398 times)

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #50 on: 2009-06-05 20:14:58 »
the problem is that when using a relative boost/redux to alter stats with the ai when the def is auto boosted makes it hard to make the defense not cap out fast, or become too low compared to what it normally would. for example, i have GS adding 106 to the 150 (doubled to 300 in game without my initial def halving) to make it hit the normal 256 mdef at it's initial stage (no counter), def is the normal amount 20 (doubled to 40), and then adding another 128 when it goes to the countering stage (hitting 384 normally), and it's def adds 235 to hit 255 def (275 if i didn't halve them first). now, if i didn't set it's defense to halve (both), here is how things would look at different defense values:

initial stats
base def (b4 doubling) -> 20
base mdef -> 150
stage     def     mdef     half def     half mdef
normal    40      406      20            256
counter  275    534      255           384

an example of increased def through enemy editing
base def -> 128
base mdef -> 255
stage     def     mdef     half def     half mdef
normal    256    616       128          361
counter  491    744       363          489 (capped here)

max def run
stage     def    half def
normal    510    255
counter  745    490 (capped)

as you can see, with the innate def doubling, defense values get way too high for a relative defense boost mimicking the regular game's setup, and even if i reduced the initial mdef by 44 to hit 256 (300-44=256), it would still hit the max as soon as someone put the mdef to 214, and def would still eventually go over max as well. it could be made to reduce more as the base rose, but there would be gaps where the def didn't raise as much, and would take much more room in the ai. simply put, for how i am looking at it, removing the innate def doubling would be a great addition, because you can always toughen up the enemies without going past 255 defenses, as in making them level up, add more life, better ai, stronger hits, and then there is little need for a ton of defense.

not too many attacks would be going past 12000 damage a hit, and enemy hp can go extremely high (if all four bytes of hp for the enemies are able to be used, then they can have up to 4294967295 hp, otherwise it would cap at 16777215, either way, more than enough to not need massive defenses, especially since this isn't ffx where you are pretty much doing 100k a hit, and 16.5 million is a lot of hp, more than any good enemy in vii should ever need), so 500 defense is overkill anyway... if you want an enemy to be immune to a type of attack, you can always either make them null physical elements, or use the ai to turn certain immunities on. that's why i think the def should not be auto doubled, since we no longer need it enabled (didn't really help much anyway since enemies were normally weak anyway).

warbaque

  • *
  • Posts: 44
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #51 on: 2009-06-05 20:53:58 »
Orginal GS:
Def 40 (2x20)
Enemy data MDef value discarded, AI sets value 256 instead.
2nd Form
      Guard Scorpion's Def = 255
      Guard Scorpion's MDf = 384

Edited GS:
Def 40 (2x20)
MDef 256 (2x128)
2nd Form
      Guard Scorpion's Def = 255 (40+215)
      Guard Scorpion's MDf = 384 (256+128 OR 1,5x256)

Why won't this work? No need to halve Def/MDef


It takes about 1min to dish 1,44M damage. So it would take about 15 minutes to kill something with 16,8M HP :)
But once you get to that point, you have destroyed all the difficulty aspects anyway.
« Last Edit: 2009-06-05 21:09:35 by warbaque »

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #52 on: 2009-06-05 21:13:10 »
it wouldn't work because i am using the original stats, not lowering the initial mdef, and i am making it so that people can raise/lower it's defenses as they desire and still have it work fine, without ever making damage pretty much immune. so what i get is the original 20/40 def, 150/300 mdef, and have to make it work for ANY defense values entered by other people. if this wasnt added, def would always be:

1st - def = X (not changed until second, max 510), mdef = 256
2nd - def = 255 (possible reduction), mdef = 384

mine has a min/max of this in the forms:
1st - def = 0/255, mdef = 106/361
2nd - def = 235/490, mdef = 234/489

meaning that if i used your way, this is how things would be min/max:
1st - def = 0/510, mdef = 0/510
2nd - def = 215/725, mdef (+128) = 128/638, mdef (x1.5) = 0/765

if someone were to raise the defense using yours, they would definitely max out defenses in the second form, and the 1st form could get relatively high as well. i want the def to be raised to equal the normal setting, AND be able to be freely changed without maxing def (512+), and my way seems to work the best. the double def that the engine does is really annoying to me, since you have to work around it, and setting def to max pretty much assures a long, not necessarily hard, battle, where the initial def max would allow you to actually do a decent amount, and then it would make the editor think of other ways to pump up the enemy.

i really should start a topic of my own, so nfitc1 doesn't get flooded with things that aren't about his program... wait... too late :-P.

warbaque

  • *
  • Posts: 44
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #53 on: 2009-06-05 21:39:54 »
I see your reasoning now but I still don't see anyone putting 510 Def to GS's starting stat.

Quote
meaning that if i used your way, this is how things would be min/max:
1st - def = 0/510, mdef = 0/510
2nd - def = 215/725, mdef (+128) = 128/638, mdef (x1.5) = 0/765
I would have complete controll over it's normall stats.
And to prevent Def/MDef overflowing GS could have auto Barrier/MBarrier during 2nd stance.
That is after all the orginal intention of GS's AI.
= Halve all non-piercing damage during counter stance

If you wanted numbers
1st Form
      Guard Scorpion's Def = D (Min-Max 0-510) (Example 40)
      Guard Scorpion's MDf = M (Min-Max 0-510) (Example 256)
2nd Form
      Guard Scorpion's Def = D+((512-D)/2) (Min-Max 256-511) (Example 276)
      Guard Scorpion's MDf = M+((512-D)/2) (Min-Max 256-511) (Example 384)

This way there was no need for halving while keeping full controll over stats (0-510)

By the way, what happens when Def/MDef goes over 512? Do you start doing negative damage (instant death, similar to damage overflow)?
« Last Edit: 2009-06-05 21:49:41 by warbaque »

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #54 on: 2009-06-05 21:56:26 »
no defense doesn't become absorbed (damn >_>), you just act as if you have 512 def, since the amount of damage would always be lower than 1, and the game makes you deal one damage if damage < 1, and enemies weak to an element take double damage, so 2 damage :-P.

adding barrier defeats the purpose of my mod, since i am trying to give the enemies an exact replica of their ai/stats, just with bug fixes, things left out (sweepers smoke shot not adding blind, when blind was definitely intended as an example), and making stat changes hacker friendly. barrier is adding something not normally there. yes mbarrier/barrier would halve the damage, and would only really work for the second stage (a little more reduction for defense), but the first would still be off.

also, talk in my new thread, not here, so we keep his thread clean-ish :-P it is located here: http://forums.qhimm.com/index.php?topic=8513.0
« Last Edit: 2009-06-05 21:59:03 by secondadvent »

Chrysalis

  • ESUI Developer
  • Global moderator
  • *
  • Posts: 414
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #55 on: 2009-06-06 18:49:36 »
both def and mdef are doubled by the engine, and yes it is true that enemies would need less room to have their def to go up to 510, since it is doubled initially. but, the thing is, enemies shouldn't need to almost null damage (255, the base max for the defenses halves all damage, except def ignoring things, and 510, the doubled max, would take the damage to pretty much nothing, around 1-100 for powerful attacks, since the damage done is damage = damage * (512 - def) / 512, making 10000 damage taken down to  ~40 damage dealt, a really big decrease. if an enemy had that much defense, then it is likely that they wouldn't have much life, or the fight would be really unnecessarily long, especially since hp can go pretty damn high.

yes, an enemy with 400 defense (200 base) would still take plenty of damage, but if you had a good ai, great moves, and ample hp on it, then that high of defense wouldn't really be needed. the main problem with most of the vii fights, is that the enemy ai is too simple, and their moves too weak. many enemies are too low level to be doing a ton of damage, and some at very high levels would still be very easy since their ai sucks. if you balance out the game well, and make it hard from there, then mass def boosting isn't really necessary, just overkill, and making the fights much longer than needed to be.

i guess that the def doubling is good for now, and will still be needed when my first compressed ai scene.bin is done, since the enemies will still be essentially the same, but when i make my REAL difficulty hack (want this done so that i have plenty of breathing room, and so that psx version users can still enjoy my hack, since it should still fit into the original iso easily), i am hoping that i will have a way to stop the initial doubling, even though it is likely many enemies late-game will be hitting the higher stat marks, and the end game optional bosses will definitely be taking roids, so only a few enemies should need past 255 defense, if they even really need it at all. usually, if you know the enemy ai very well, and have a very nice setup, you should eventually win anyway, but my hack is going to be cruel to the users, so massive defense would just be too much :-P.

well it is a problem with too low hp/def/mdef, I defeated red dragon without it even getting one attack on me, so you could give red dragon very high attack stats and a brilliant AI but it means nothing if it doesnt get a move in, this red dragon I defeated in one move had triple HP over the default, as I triple HP'd most bosses in my game due to fights that way too short, generally speaking I can finish most non boss fights (before modding) without them even getting a turn and most boss fights within 2-3 turns which was just ridiculous, the game seemed to be designed that the player would just rush through it on low level weapons and with no levelling up whatsoever.

The way I see it, every single boss in the game should be capable of withstanding a omnislash attack, kotr should make fights easier but not finish boss's of in one move.  Red dragon I thought at level 54 had the rune blade and omnislash charged up at start of fight, used omnislash which did around 2k per hit, and its dead.  The boss after that which I read many people find hard??? I have never struggled on this boss although it does moderate damage it just dies far too quickly like most other bosses so usually only gets 3 or 4 attacks in at the most.  This boss has strong magic defense (very strong on my mod) however I still beat it fairly fast with physical attacks, it got 6 turns in and it had quadruple over default hp, a dexterity boost of 30 so it had faster charge.  To get level 54 I didnt do much levelling, I did item collecting where I fought battles to stock up on things like ethers and x potions and once I got these to high stock 80+ I then would carry on playing the game, I did a bit of gil saving in junon area, but not what I would call excessive, and this had me on level 54 at the temple of ancients.

So the solution could be to make enemies give way less exp so levelling up is slower and the time you meet bosses you are much lower level but this would then mean getting to the magical level 99 and level 60 points much harder and less likely in a normal game, I do agree enemy AI's need to be improved especially on bosses and of course stronger attacks ones that hurt enough so that you do actually have to heal in battles and even consider fighting on the back row/use sadness, but doing this alone is useless if the enemy gets no attacks in, and the best way to ensure they get attacks in is to boost their hp/dexterity and defenses.

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #56 on: 2009-06-06 19:48:45 »
this should have been a post in my thread, since i moved over there to keep his thread clean...

first off, i am not really changing any enemies at this point in time, but when i do change things, i plan on reworking a lot of things. for starters, the initial level would be 1, but other mods do that, but i am going to rework the stats to be much lower than normal, sans maybe hp/mp, and make sources harder to obtain (no easy morphing... if anything they would be a rare drop from strong enemies, possibly rare steals as well from other things, but no way to easily stock up). weapon power will take a hit as well, so even at higher levels things will be troublesome (and ultimate weapons will be losing their mass damage boosting, being replaced with normal or other attack mods, but with a higher atk than the rest, and added effects as well), and the enemies will be pumped up, so not only will they become stronger, you become weaker, making extreme damage unlikely.

kotr will also be severely cut down, making each attack weak separately, but will still add up to more than the other summons. enemies will not have guaranteed stats, since i plan on implementing a levl up system for them, automatically using their ai to boost their statuses (levels and such, giving a random amount per level, so each enemy will be different stat wise, and it is possible to fight enemies ranging a few levels below to a few above you, but with a definite minimum, similar to ffviii's levelling system, but i plan on making it better :-P), and change their ai patterns based on their levels. when i finish my true mod (this one i am doing is just for a base that will be easy for anybody to build from, and should always fit back into the psx version unless you massively change the ai, since the size will be significantly lower, allowing for more changes to be made), it should be in no way easy, and tweaking the game after that shouldn't be too hard to do, so if it isn't hard enough, just a few modifications and it will be >:D.

my mod will take a LONG time to complete, especially since i am doing this one first, but when i am done it should give you a challenge :-P. and yes, the enemies will be giving less experience as well, and hopefully i can find something in the ai to check/set the current steal/drop item, so that i can also change the items gotten at will, and possibly give multiple steals from enemies.

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #57 on: 2009-06-06 20:49:35 »
REQUEST FROM AUTHOR:

Can we keep this topic solely on PrC and its fixes/bugs please? It would be ever so helpful to me in finding issues that need to be resolved. Any AI Editing-related comment should be in a different thread. Please only post in here if you have a problem with PrC or would like to see something added. It is getting too crowded in here.

Thank you.

warbaque

  • *
  • Posts: 44
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #58 on: 2009-06-06 20:52:02 »
So the solution could be to make enemies give way less exp so levelling up is slower and the time you meet bosses you are much lower level but this would then mean getting to the magical level 99 and level 60 points much harder and less likely in a normal game, I do agree enemy AI's need to be improved especially on bosses and of course stronger attacks ones that hurt enough so that you do actually have to heal in battles and even consider fighting on the back row/use sadness, but doing this alone is useless if the enemy gets no attacks in, and the best way to ensure they get attacks in is to boost their hp/dexterity and defenses.

I started my balance/hard mod from completely different perspective. Average EXP/AP is multiplied by 2 and boss EXP/AP by 5. This way player is about lvl 90 when they reach The Northern Crater and difficulty isn't completely ruined for those who wish to max their levels.
Damage multipliers removed from UWs. I haven't yet decided should I replace it with some other effect or leave them as "normal" weapons.
If Shield protected against non-elemental magical damage I would make KotR hit everyone on the screen (your own party included). So if you wanted to cast it and survive you would need some preparations or final attack+restore/phoenix. In any case the effect can't be made a lot weaker since the animation takes forever so it has to dish some damage. It's the MP cost that is the problem. If it killed you everytime you summoned it requiring you to use final attack+restore for example that would make miming it a lot harder. Or alternatively (1-3)xShield 180-540MP for preparations but if I remember correctly Shield protected only against physical and elemental magic damage. Items excluded.

If you wanted harder battles enemies need to have a lot stronger attacks than they do in vanilla/unmodified game. AI needs to be smart and it needs to react players actions, for example use spells like dispel and debarrier.
What I personally find annoying are the enemies that have 1 basic attack and 1 stronger attack and they choose their attacks completely by change. After that difficulty of the battle becomes dependant on players luck. Does it use it's stronger attack or do I get lucky and it uses it's weaker attack multiple times in a row without using the stronger one. Of course if the attacks had a different Att% with stronger attack having smaller change hitting I could understand why it chooses weaker attack over stronger one.

By the way is it possible to make enemies not use certain spell afer certain events during fight.

Example
start.flag=0

if flag=0
  select all cast Fire3
  if damage > 0
    set flag 0
  else set flag 1
  endif
else chew bubblegum
endif

I haven't touched the actual AI-data yet so I don't know how it looks like or what commands it uses. That's way my crude example


edit: end of OT
spam secondadvent's topic insted from now on http://forums.qhimm.com/index.php?topic=8513.0
->
« Last Edit: 2009-06-06 20:54:46 by warbaque »

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #59 on: 2009-06-06 21:36:26 »
REQUEST FROM AUTHOR:

Can we keep this topic solely on PrC and its fixes/bugs please? It would be ever so helpful to me in finding issues that need to be resolved. Any AI Editing-related comment should be in a different thread. Please only post in here if you have a problem with PrC or would like to see something added. It is getting too crowded in here.

Thank you.
i was trying to... i even made my own thread and posted the link to it, but it seems that people like to crowd your topics :-P. something buggy i did notice is that when the scene lookup was off (from shrinking too much), and i allowed PrC to fix it, every time i saved it after that it kept popping up with the same message box, so i am guessing that the scene lookup fix isn't quite working, because when i opened it and updated via hojo and came back here, the scene lookup was apparently fixed. it could possibly be that it doesn't update the kernel as being fixed until after reopening the scene.bin, since i only reopened after coming back from hojo.

also, not directly related to PrC, when i updated a fresh kernel with my mod, the file size actually grew, so that it wouldn't fit into a psx iso (testing to see if def was doubled in the psx one... it is btw), but when i opened it with WM and just saved it, the size became SMALLER than it originally was... what is up with that?

everybody can spam me instead... i dont mind ^^.
« Last Edit: 2009-06-06 21:39:32 by secondadvent »

warbaque

  • *
  • Posts: 44
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #60 on: 2009-06-06 21:46:06 »
also, not directly related to PrC, when i updated a fresh kernel with my mod, the file size actually grew, so that it wouldn't fit into a psx iso (testing to see if def was doubled in the psx one... it is btw), but when i opened it with WM and just saved it, the size became SMALLER than it originally was... what is up with that?

I recall NFITC1 mentioning somewhere in WM thread about using more efficient compression method than default.

Kudistos Megistos

  • Banned
  • *
  • Posts: 3929
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #61 on: 2009-06-06 21:49:49 »
This is true; it's a good thing as well, since it means we can add quite a bit to the kernel and still make it fit into the PSX ISO.

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #62 on: 2009-06-06 21:52:36 »
hmm.. nfitc1 has a nice kernel compression, but the scene.bin compression isn't as good, but then again a ton of crap compressed is still a ton of compressed crap :-P. at least the kernel ai doesn't have to be messed with, though plenty can be taken out since cloud's ai for ally death is useless since the ally death thing doesn't work.

the best way to go for updating the kernel with a new scene.bin is either with PrC (if the bug, if it is a bug, is gone), or using hojo then opening/saving with WM. whatever works i guess.
« Last Edit: 2009-06-06 21:54:33 by secondadvent »

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #63 on: 2009-06-07 02:44:49 »
KERNEL.BIN look-up fix needs to be addressed. That's a feature that is very important to the function of the game so it'll need to work. It might be that the KERNEL.BIN you're trying to fix is read-only. By default, the PC's KERNEL.BIN is, but the kernel2.bin is not. I'm accounting for that in WM, but I'll have to check PrC and see what it's doing.

In regards to the compression of the scene.bin, I haven't really done much testing. Scene.bin is compressed with the highest level of GZip like the KERNEL.BIN is. The scene.bin doesn't ever get larger if small changes are made so I didn't bother to look at it.

On the subject of character AI, only Sephiroth's scripts and Vincent's Main script are important. That's all mentioned in the WM topic, though.

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #64 on: 2009-06-07 04:39:54 »
yeah, so if i added a good deal to the current materia stock, and it sent me over the psx file size limit somehow, i know where to remove from :-P.

no, my kernel is not read only, just checked it. i have had the scene.bin grow after editing only enemy stats/items up to the shinra building (grew at the 58th floor >_>), and is why i had to revert to the pc version (i did like the psx version more, but i m liking the pc one much more lately :-P). i kinda figured the scene.bin was as compressed as it could be, which is why i started my project XD.

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #65 on: 2009-06-07 18:03:59 »
ok, this post is to bump you up (since you only seem to read my additions to my posts if i make a whole new one :-P), and to say that i noticed another little bug. if you start one one scene file's ai editing, and move to another without closing it, the total script size remains that of the first scene visited, or at least it did when switching from eligor's scene, since the total size was still around 3200 for a total size of 700 in the scene i went to.

i think you should make a popup that asks if you want to keep your changes if you use the x to exit, or open a new scene, though you said it has bugs when switching scenes before, and make opening a new scene file remove the current ai editor (with popup warning) and open the new editor, which would fix the counting bug (refresh bug, since it doesn't refresh?). if you made it so that PrC would check to see if an editor was already open, and ask to keep the changes BEFORE allowing you to switch to a new scene at all, to prevent the overwriting bug. it could be a possibility, i just don't know how you'd do that, since i know more about coding in vii's enemy ai than i do in a real language :-P.

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #66 on: 2009-06-07 20:42:22 »
ok, this post is to bump you up (since you only seem to read my additions to my posts if i make a whole new one :-P), and to say that i noticed another little bug. if you start one one scene file's ai editing, and move to another without closing it, the total script size remains that of the first scene visited, or at least it did when switching from eligor's scene, since the total size was still around 3200 for a total size of 700 in the scene i went to.

i think you should make a popup that asks if you want to keep your changes if you use the x to exit, or open a new scene, though you said it has bugs when switching scenes before, and make opening a new scene file remove the current ai editor (with popup warning) and open the new editor, which would fix the counting bug (refresh bug, since it doesn't refresh?). if you made it so that PrC would check to see if an editor was already open, and ask to keep the changes BEFORE allowing you to switch to a new scene at all, to prevent the overwriting bug. it could be a possibility, i just don't know how you'd do that, since i know more about coding in vii's enemy ai than i do in a real language :-P.

I can't capture the "use X to exit" event because that's on the OS level and not on the program level. I just need to get rid of the X button all together. I also need to make a list of things that will need to get fixed. :) I could easily tell if an editor's open though by adding (yet another) invisible true/false value... I'll look into it.

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #67 on: 2009-06-07 21:06:43 »
ok, another thing now... i noticed that when you add a new move via PrC then go to the assign animations window, the newest move is in all of the boxes that should be empty. after saving my changes in that screen (with all the empty ones with the tentacle move, even though it shouldn't have been, with only the animation changed), and returning to it, the boxes were all empty, even the one that should have been the new tentacle move, i am guessing that it re-refreshed the contents after being reopened, and since i never actually set tentacle to any of them, it sent all of the boxes to an empty slot instead, but did not refresh the contents after clicking it the first time (after creating tentacle, the anim. editor wasn't opened before that).

i checked the hex with an editor for the changed scene, and all but the tentacle id itself were there, so that is working fine, just the editor itself is a little buggy :-P. maybe setting it to an always empty box (instead of one of the available attacks, making a 33rd move in the anim. editor only, that only signifies an FFFF value for the attack id (not an actual move, just for the null value), so that this could be prevented) could fix the problem?

also, i know other things do this, but making a little manipulated attack editor could be helpful for when you make a new move, so that you do not have to use another editor to change the moves, it doesn't even have to enable/disable the ability to manipulate them, just the moves that can be used if it is able to be manipulated. not really necessary, but would be a nice little addition.

edit: the second attempt did successfully add the new move to the atk id in the enemy data, it is just a bug with the window. i checked the next scene i added tentacle to, and it did the same thing. i manually changed the atk to a blank spot then returned it to tentacle, then saved, but when i checked after that (window does not update until after being saved/opening a new scene.bin/changing scenes apparently), it had reverted back to a blank spot, but saved this time after switching to tentacle.

also, with your attack editor (the main window), the attack name will not be saved unless you press enter on it, rather than updating as you type it in, so if i filled out everything on a move, then moved to another scene/move, the name would not save, though the other info would.
« Last Edit: 2009-06-07 21:21:45 by secondadvent »

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #68 on: 2009-06-08 15:53:06 »
I fixed quite a few of the attack animation-related bugs you've brought up and changed the format at little. Have a look.

Hopefully there will be another tab soon that will deal with formations, but that'll come later.

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #69 on: 2009-06-08 15:58:20 »
looks pretty good  :wink:. glad you added the manipulate thing as well :-P.

have you ever figured out what as wrong with the kernel updating?

right now i am trying to understand air buster's ai fully, i have most of it down, but some other things are plaguing me still... have to filter through the ai to see what is going on with them.

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #70 on: 2009-06-08 16:06:55 »
have you ever figured out what as wrong with the kernel updating?

Yes. I forgot that it doesn't directly fix the KERNEL.BIN, rather it makes a KERNEL.BINtest, or something like that, that needs to be renamed. This is mostly a "oops" on my part as I forgot to undo that. The KERNEL.BINtest should be correct, but I didn't test it very extensively (hence the "test" at the end). If you can confirm that it's correct I'll remove that "feature" (since it IS documented) and just rewrite the KERNEL.BIN instead of creating a new one.

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #71 on: 2009-06-08 16:16:05 »
i will compare it to an exact hojo copy that was resaved in WM and get back to you shortly (possibly create kernel files and manually check there, in case it somehow compresses differently) ;).

also, kind of a little thing for my stupid mistakes i make occasionally... could you add a disassemble check that returns an "error in code" message in the disassembled code if someone enters two values to the top of the stack then tries to use the 90 opcode? this makes it so that stupid errors like this are prevented, because you are supposed to store the first value into an ADDRESS, not a value, and i do this once in a while still :-P. it would also prevent those new (or doing my mistake) from making this error, so that they know to fix it when it is done. not necessary, but i was wondering if it could be added >:D.

also, where is a good site to upload files, so that i can up my files when i am ready? i know of a couple but wanted to know one that preferably allows you to update your files (instead of just upping a new file), and that doesn't require registration

ok i did a plain comparison (from a resaved kernel to the test kernel), and there were many places different, but i sort of expected that. i will first extract all of the files from each into a separate folder and compare them one at a time. i may also compare it to a freshly changed one from hojo's updater to see if it is just the compression of WM setting the differences.

ok, just by opening the test kernel in WM, it displayed this in the debugger:
Code: [Select]
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.OverflowException: Arithmetic operation resulted in an overflow.
   at WallMarket.Form1.GUnZip(Byte[]& byteCompressed)
   at WallMarket.Form1.SeparateFiles()
   at WallMarket.Form1.Open_KERNEL(Char kernel)
   at WallMarket.Form1.OpenKERNELBINToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
WallMarket
    Assembly Version: 1.2.1.0
    Win32 Version: 1.2.1.0
    CodeBase: file:///C:/Documents%20and%20Settings/ryu/Desktop/ffvii%20hacking%20tools/wall%20market/WallMarket.exe
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 8.0.0.0
    Win32 Version: 8.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
Microsoft.VisualBasic.PowerPacks
    Assembly Version: 9.0.0.0
    Win32 Version: 3.0.30214.0
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic.PowerPacks/9.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.PowerPacks.dll
----------------------------------------
Accessibility
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Core
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.1 built by: SP
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
i will try to make kernel pieces to possibly pinpoint the areas with problems.
« Last Edit: 2009-06-08 16:29:04 by secondadvent »

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #72 on: 2009-06-08 16:34:58 »
also, kind of a little thing for my stupid mistakes i make occasionally... could you add a disassemble check that returns an "error in code" message in the disassembled code if someone enters two values to the top of the stack then tries to use the 90 opcode? this makes it so that stupid errors like this are prevented, because you are supposed to store the first value into an ADDRESS, not a value, and i do this once in a while still :-P. it would also prevent those new (or doing my mistake) from making this error, so that they know to fix it when it is done. not necessary, but i was wondering if it could be added >:D.

I tried and tried and tried and got it to do this by adding two little lines in the handling of code 90h. Yeah, no big deal.

also, where is a good site to upload files, so that i can up my files when i am ready? i know of a couple but wanted to know one that preferably allows you to update your files (instead of just upping a new file), and that doesn't require registration

Good luck finding one. I use FileFront and they require you to register and you can't just update files (yet).

ok i did a plain comparison (from a resaved kernel to the test kernel), and there were many places different, but i sort of expected that. i will first extract all of the files from each into a separate folder and compare them one at a time. i may also compare it to a freshly changed one from hojo's updater to see if it is just the compression of WM setting the differences.

You'd really only need to compare the KERNEL.BIN2 files since that's where the scene look-up lies.

ok, just by opening the test kernel in WM, it displayed this in the debugger:
Code: [Select]
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.OverflowException: Arithmetic operation resulted in an overflow.
   at WallMarket.Form1.GUnZip(Byte[]& byteCompressed)
   at WallMarket.Form1.SeparateFiles()
   at WallMarket.Form1.Open_KERNEL(Char kernel)
   at WallMarket.Form1.OpenKERNELBINToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
WallMarket
    Assembly Version: 1.2.1.0
    Win32 Version: 1.2.1.0
    CodeBase: file:///C:/Documents%20and%20Settings/ryu/Desktop/ffvii%20hacking%20tools/wall%20market/WallMarket.exe
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 8.0.0.0
    Win32 Version: 8.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
Microsoft.VisualBasic.PowerPacks
    Assembly Version: 9.0.0.0
    Win32 Version: 3.0.30214.0
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic.PowerPacks/9.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.PowerPacks.dll
----------------------------------------
Accessibility
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Core
    Assembly Version: 3.5.0.0
    Win32 Version: 3.5.30729.1 built by: SP
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
i will try to make kernel pieces to possibly pinpoint the areas with problems.

Yikes! It failed to GUnZip?! That shouldn't be possible unless Hojo's writing it wrong.... Can you send me the Hojo'd KERNEL.BIN so I can test it please?

secondadvent

  • *
  • Posts: 287
    • View Profile
Official Proud Clod 1.0 Topic
« Reply #73 on: 2009-06-08 16:42:14 »
yeah, no prob, i'll send it to you shortly. this is what i got when i compared the two kb2 files: 0xf1d=3869 to 0xf3c=3900 (32 bytes), so there is a difference in that area. i do not know much about the kernel.bin, so i do not know what this area is.

i was planning on using filefront (everybody else here does :P) anyway, but i dont like to register >_>.

edit: ok, i sent the original hojo, the WM saved hojo, and the test versions to hopefully help narrow down the problem, and let you see the differences better.

i compared all of the files to check to see if something caused errors in the rest of the files, just in case some oddity happened somewhere, but luckily there were only changes in the kernel2 file.

oh, and once i finish my current version of my mod, i am going to focus on figuring out some of the unknowns in the ai, especially since there are many used in the ai at a later time (the closest i know being the sample boss in the shinra building). hopefully i can add more options to what we already have available >:D.

oh, and the debug message popped up when i opened the test kernel with WM... that is something caused by PrC's updating. hojo's files always open nicely without any errors, but the size is usually bigger because of the lesser compression used.

update: i found the other kernel0 file... it got mixed up with my other files where it extracted  :|
« Last Edit: 2009-06-08 18:30:42 by secondadvent »

nfitc1

  • *
  • Posts: 3010
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Official Proud Clod 1.0 Topic
« Reply #74 on: 2009-06-08 17:11:13 »
I see what you're saying now. PrC's test KERNEL is bad, not Hojo's. I was confused. :P

I'm looking at it now...Well, maybe after lunch. I'm hungry.